如何通过AT命令用Zoom 7.2m三频USB调制解调器发送短信?

1 投票
2 回答
2069 浏览
提问于 2025-04-16 10:35

我正在尝试在OSX 10.6.6上制作一个简单的Python 2.6应用程序,目的是通过我的Zoom 7.2m(3G)USB调制解调器发送和接收短信。

当我第一次插入USB调制解调器时,似乎没有创建任何TTY或CU会话。我必须运行调制解调器的软件来启动以下会话:

cu.LJADeviceInterface2621
cu.LJADiagConnector2620
cu.LJAMobileConnector2622
tty.LJADeviceInterface2621
tty.LJADiagConnector2620
tty.LJAMobileConnector2622

经过一番“折腾”,我发现我唯一可以读写的会话是“cu.LJADeviceInterface2621”。但是当我尝试连接到这个tty实例时,出现了一个错误:

serial.serialutil.SerialException: 无法打开端口 /dev/tty.LJADeviceInterface2621: [Errno 16] 资源忙: '/dev/tty.LJADeviceInterface2621'

不过没关系——至少我有一个可以使用的会话,就是cu的那个。

我的脚本如下:

            ser = serial.Serial("/dev/cu.LJADeviceInterface2621", 9600, timeout=1)

            print "Setting DTR..."
            ser.setDTR(True)

            sleep(3)
            print "Turning off DTR..."
            ser.setDTR(False)
            searching = True

            ser.setDTR(True)
            while searching:
                    print "Write instruction..."
                    txt=raw_input()
                    if txt.find("ZZ")>-1:
                            txt=txt.replace("ZZ",chr(13))
                    ser.write(txt)
                    
            ser.close()

现在,我还有另一个脚本在监控“cu.LJADeviceInterface2621”上的消息。这个脚本如下:

            ser = serial.Serial("/dev/cu.LJADeviceInterface2621", 9600, timeout=1)

            print "Attempting search."
            while True:
                    line = ser.readline()
                    print ">", line

当这两个脚本都在运行时,在写入代码的部分,我输入以下几行:

(注意:ZZ输入是通过上面的写入脚本替换为Ctrl-Z - chr(13))

AT+CMGF=1ZZ [按回车确认写入]

OK

AT+CMGW="+447725123123"\r\n [按回车确认写入]

ERROR

我应该写入消息的文本,然后跟上Ctrl-Z(chr(13)),但我却立即收到一个错误。

这个USB调制解调器有有效的SIM卡,并且有余额,信号也很好,我可以通过Zoom调制解调器软件发送短信(不过这只能在PDU模式下工作——但调制解调器确实支持文本模式,正如AT+CMGF=?命令所示),也能接收消息。

有什么想法吗?

如果需要更多信息,我很乐意提供,谢谢!
Stu

2 个回答

0

我从来没用过那个调制解调器,但我想它应该是用标准的GSM AT命令。AT+CMGW这个命令是错的。

你应该发送:AT+CMGS="+111111111"\r\n 短信内容 Ctrl-Z

这样应该就能正常工作了。

1

另外,记得有很多现成的项目可以帮你完成这个任务(比如pysms就是其中之一)

撰写回答