编程语言
首页 > 编程语言> > 如何使用Python中的AT命令拒绝或接受对我的GSM调制解调器的来电?

如何使用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