我几乎花了一个星期的时间来配置一个串口,以便能够用它来发送短信。让我解释一下我的情况:我使用的是一台装有 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"
为了能够发送 SMS,我尝试了许多不同的工具:
- 试过这个 PHP 脚本 https://gonzalo123.com/2011/03/21/howto-sendread-smss-using-a-gsm-modem-at-commands-and-php/ (没有用,脚本挂起,我没有返回任何输出);
smstools
和smsd
,使用apt-get install smstools
安装:我尝试将 SMS 文件放入/var/spool/sms/outgoing
:To: xxxxxxxxxxxx This is a test message.
SMS 文件是由
smsd
守护程序从/var/spool/sms/outgoing
收集的,但随后守护程序将其放入/var/spool/sms/failed
如果我查看文件,我会看到:收件人:xxxxxxxxxxxx 调制解调器:GSM1 IMSI: Fail_reason:调制解调器初始化失败 失败:16-07-03 17:10:03
这是一条测试消息。
这是 GSM1 设备的
/etc/smsd.conf
中的部分:[GSM1] init = "ATQ0 V1 E1 S0=0 &C1 &D2" 设备 =/dev/ttyACM0 传入 = 是 引脚 = xxxx 波特率 = 460800 smsc = yyyyyyyyyyyy
我也尝试指定没有
"
引号的 init 命令,仍然得到同样的错误。我认为 init 命令应该是wvdialconf
输出给我的命令(见上面),那么为什么它不起作用?此外,我尝试使用
cu -l/dev/ttyACM0
并键入原始 AT 命令,但我无法设置 SMSC 地址,因为当我键入AT+CSCA 时?
它输出我ERROR
:$ cu -l/dev/ttyACM0 ... AT+CSCA? 错误
AT+CSCA="yyyyyyyyyyyy" 错误
有人可以帮我解决我面临的这个问题吗?您遇到过和我一样的错误吗?
感谢关注。
最佳答案
关于linux - 串行端口 - 无法设置服务中心 SMSC 地址 - AT+CSCA?返回错误,smsd返回初始化错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38171604/