如何通过python-gsmmodem

时间:2015-04-26 16:23:15

标签: python linux sms gsm

我是python的新手。我在Ubuntu 14.04中安装了python-gsmmodem来通过GSM加密狗发送和接收短信。然后在我的/usr/local/bin文件夹中有3个名为

的脚本
  1. gsmterm.py
  2. identify-modem.py
  3. sendsms.py
  4. 我成功地使用这些脚本发送短信,识别调制解调器,就像他们的名字所暗示的一样。

    但是 问题 我希望通过加密狗接收短信,并且无法弄清楚如何操作。当我将整个软件包下载为zip文件有一些脚本显示发送短信。

    除了 python-gsmmodem 之外,它还具有处理GSM调制解调器中大部分功能的功能,包括发送短信。

    需要帮助我使用相同的调制解调器接收短信。怎么解决这个问题?

1 个答案:

答案 0 :(得分:0)

您可以在python-gsmmodem回购邮件的tools/examples/中找到一些示例。有一个脚本examples/sms_handler_demo.py,通过说谢谢来收听收到的短信和回复短信。

我已经尝试过该脚本并且无限期地等待短信 - 在后台通过调制解调器接收短信并将其放入选定的存储空间,但脚本没有捕获任何短信通知从调制解调器和回复回调没有执行。看来我的华为调制解调器需要AT + CNMI命令的不同设置,或者需要一组专有的命令。

编辑:我发现了这个问题。我有一台华为E372调制解调器,可以创建3个串口

  • /dev/ttyUSB0 - 完整的AT命令集,仅查询/响应终端,无通知
  • /dev/ttyUSB1 - ? (无论如何都不需要)
  • /dev/ttyUSB2 - 完整的AT命令集,查询/响应控制台,包括接收状态消息,如^BOOT^RSSI^CSNR,呼叫通知(^RING) ,短信通知(^CMTI^CDSI)和USSD通知(^CUSD

一开始,我无法使用python连接到/dev/ttyUSB1/dev/ttyUSB2,因此我使用了/dev/ttyUSB0。脚本无限期等待,因为/dev/ttyUSB0端口上没有通知。 我发现我无法使用python" BrokenPipeError连接到/dev/ttyUSB2:[Errno 32] Broken pipe"由于pyserial 3.0.1中存在错误,因此请确保您已从git安装了最新的3.1a0版本。

现在它可以为我开箱即用。

确保

  • 您正在使用固定pyserial模块(v2.7或v3.1a0 +)
  • 您正在使用正确的串口
  • 使用串行控制台(screen /dev/ttyUSB2 115200python tools/gsmterm.py -b 115200 /dev/ttyUSB2)可以看到
  • 通知