4

对于我正在做的一些工作,我想要一个模拟的 GSM 调制解调器,它将通过 Unix 套接字与 Android-x86 虚拟机进行通信。VM 应该将模拟器视为真正的调制解调器,并使用它来发送 SMS(作为功能的第一步)。

到目前为止,我已经把一些东西放在一起处理一些 AT 命令,然后对所有其他命令回复“OK”。对于某些命令,例如“AT+CRSM”,我只有一张通过运行官方 Android 模拟器和查看无线电日志收集的响应表。对于其他人,我保持一些状态并构建答案;这些命令包括:

CFUN?
CPIN?
CGREG?
CGREG?
COPS?
CGREG=
CREG=
CPIN=
COPS=
CRSM=
CSMS=
CGSN
CIMI
CSQ

Android 将启动,并向我的模拟调制解调器发送命令,它会回答,但它似乎并没有完全正常工作。Android 不会检测任何无线电信号强度,例如,仅在信号栏中显示“x”。

有谁知道类似的项目,或者只是为了获得一些基本功能绝对需要哪些 AT 命令?

4

1 回答 1

4

好吧,我会回答我自己的另一个问题,这样更容易。

我最终实现了一个维护一些状态的模拟器,例如是否启用了未经请求的 CREG 和 CGREG 消息、网络注册状态和网络名称格式(对于 COPS 命令)以及 SMS 的消息引用计数器。

它支持以下命令:

CFUN?
CPIN?
CGREG?
CREG?
COPS?
CGREG=
CREG=
CPIN=
COPS=
CRSM=
CSMS=
CMGS=
CGSN
CIMI
CSQ

所有其他消息只会得到“OK”响应。

使用带有“-radio unix:/tmp/phone”开关的模拟器中运行的库存 AOSP Android 源代码,我可以发送 SMS 消息并将二进制 PDU 解码为真实消息。我将继续添加功能,以便可以将 SMS 消息注入回 Android,并希望在某个时候开源代码。

于 2012-07-17T20:53:59.817 回答