串口—无法设置Service center SMSC地址—AT+CSCA?返回错误,SMSD返回初始化错误



我几乎花了一个星期的时间来配置串行端口,以便能够使用它发送短信。让我解释一下我的情况:我用的是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/(没有工作,脚本挂起,我没有返回任何输出);
  • smstoolssmsd,安装了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中获得更多关于命令和错误码的详细信息。

最新更新