如何使用Python中的AT命令拒绝或接受对我的GSM调制解调器的来电?
作者:互联网
我已经编写了下面的Python程序来等待来电并接受或拒绝.基于this文档和this文档,用于接受呼入呼叫的适当的AT命令是ATA或ATS0或ATS0&n.而且,拒绝来电的适当命令是ATH或ATH.
我尝试了上述所有命令,但是来电既未应答也未拒绝!
我的Python程式:
import time
import serial
phone = serial.Serial("COM10", 115200, timeout=5)
try:
time.sleep(1)
while(1):
x = phone.readline()
print(x)
if (x == b'RING\r\n'):
phone.write(b'AT H') # I replaced this 'AT H' with all the above
# commands, but nothing changed about the
# incoming call. It always ringing.
time.sleep(2)
finally:
phone.close()
AT H的结果:
>>> ================================ RESTART ================================
>>>
b''
b''
b'\r\n'
b'RING\r\n'
b'AT H\r\n'
b'RING\r\n'
b'AT H\r\n'
b'RING\r\n'
b'AT H\r\n'
b'RING\r\n'
b'AT H\r\n'
b'RING\r\n'
ATH的结果:
>>> ================================ RESTART ================================
>>>
b''
b''
b''
b'\r\n'
b'RING\r\n'
b'ATH\r\n'
b'RING\r\n'
b'ATH\r\n'
b'RING\r\n'
b'ATH\r\n'
b'RING\r\n'
ATA的结果:
>>> ================================ RESTART ================================
>>>
b''
b''
b''
b'\r\n'
b'RING\r\n'
b'ATA\r\n'
b'RING\r\n'
b'ATA\r\n'
b'RING\r\n'
b'ATA\r\n'
b'RING\r\n'
ATS0的结果:
>>> ================================ RESTART ================================
>>>
b''
b''
b''
b'\r\n'
b'RING\r\n'
b'ATS0\r\n'
b'RING\r\n'
b'ATS0\r\n'
b'RING\r\n'
如上所示,无论我发送给它的AT命令如何,GSM调制解调器都会继续响铃.我的程序怎么了?
请注意,我的调制解调器是D-Link DWM-156,可以在Python中使用它成功发送短信或拨打电话.
提前致谢.
解决方法:
在每个AT命令的末尾添加一个CR,以使其成为有效的AT命令
标签:pyserial,gsm,at-command,modem,python 来源: https://codeday.me/bug/20191120/2041619.html