我试过这个:
echo -e "ATD123456789;r" > /dev/smd0
然后当我跑步时:
cat /dev/smd0
我得到了这个输出:
ATD123456789;
这就是我应该看到的吗?电话没有响应命令。
更新:当我使用 smd7 或 smd11 时,手机拨打了电话。问题是我正在尝试使用 AT+CMGS 发送短信,但它不起作用。
更新2:我运行以下命令:cat /dev/smd7 & echo -e "AT+CMGS=24;r" > /dev/smd7
。 然后我输入PDU消息,得到这个:/system/bin/sh: 079...771B: not found
您可能知道,命令
ATD<number>;r
对目标号码执行语音呼叫<number>
(如果没有分号;
呼叫类型将取决于AT+FCLASS
命令的当前设置(。
默认情况下,OK
结果代码将在开始远程振铃后立即收到,因此在几秒钟后。但是,如果存在网络问题或远程号码不可用/不存在,则需要更多时间。
语音呼叫期间ATD
命令的默认超时为 30 秒,可以通过发出ATS7
命令来更改。例如,要设置 1 分钟超时:
ATS7=60
你得到的答案是命令回显:事实上,默认情况下,调制解调器会回显发送到其 AT 端口的每个字符(回显可以通过ATE0
命令禁用,并使用ATE1
再次启用(。接收它**是调制解调器已正确通电和正确通信的证明。
所以,即使我知道这不是你期望看到的唯一东西(你想看到一个答案!(,你实际上应该看到它。
为了得到你的答案,一些建议:
- 开始提供具有更短超时的更简单的命令。例如非常基本的
AT
. - 确保至少等待最大命令超时
- 在后台和开始提供命令之前设置
cat
命令:
cat /dev/smd0 &
echo -e "ATr" > /dev/smd0
OK
注意:我不知道cat命令中有任何超时。
要进行交互式会话,您可以使用:strace 2>/dev/null -e inject=ioctl:retval=0 microcom /dev/smdXX
如果没有 strace 命令,microcom 会返回一个 ioctl error.
Strace 使 microcom 认为 ioctl 成功,因此它允许它继续运行。