我几乎花了一个星期的时间来配置串行端口,以便能够使用它发送短信。让我解释一下我的情况:我用的是Ubuntu 16.04 LTS的笔记本电脑,机器有一个集成的GSM调制解调器,串口是/dev/ttyACM0
,这里是一些wvdialconf
输出:
$ sudo wvdialconf
...
ttyACM0<*1>: Modem Identifier: ATI -- Manufacturer: SAMSUNG ELECTRONICS CORPORATION
...
ttyACM0<*1>: Max speed is 460800; that should be safe.
Found an USB modem on /dev/ttyACM0.
Modem configuration written to /etc/wvdial.conf.
ttyACM0<Info>: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1 &D2"
为了能够发送短信,我尝试了许多不同的工具:
- 尝试这个PHP脚本https://gonzalo123.com/2011/03/21/howto-sendread-smss-using-a-gsm-modem-at-commands-and-php/(没有工作,脚本挂起,我没有返回任何输出);
smstools
和smsd
,安装了apt-get install smstools
:我试着把一个短信文件放入/var/spool/sms/outgoing
:To: xxxxxxxxxxxx This is a test message.
短信文件由
smsd
守护进程从/var/spool/sms/outgoing
收集,但随后守护进程将其放入/var/spool/sms/failed
,如果我查看该文件,我看到:: xxxxxxxxxxxx调制解调器:GSM1IMSI:Fail_reason: Modem初始化失败Failed: 16-07-03 17:10:03
这是一条测试信息。
这是
/etc/smsd.conf
中GSM1设备的部分:[GSM1]init = "ATQ0 V1 E1 S0=0 &C1 &D2"device =/dev/ttyACM0传入=是Pin = XXXX波特率= 460800SMSC = yyyyyyyyyy
我还试图指定init命令没有
"
引号,仍然得到相同的错误。我认为init命令应该是wvdialconf
输出给我的(见上文),那么为什么它不工作呢?另外,我尝试使用
cu -l /dev/ttyACM0
并键入原始AT命令,但我无法设置SMSC地址,因为当我输入AT+CSCA?
时,它输出我ERROR
:$ cu -l/dev/ttyACM0…在+ CSCA吗?误差
+ CSCA ="yyyyyyyyyyyy"误差
有人能帮我解决我所面临的这个问题吗?你也经历过和我一样的错误吗?
运行
可以获得比ERROR
更具体的错误响应AT+CMEE=2
参见第9章,移动终端错误在27.007中获得更多关于命令和错误码的详细信息。