我编写了下面的Python程序来等待来电并接受或拒绝它们。根据{{3}}文档和this文档,接受来电的相应AT命令为ATA
或ATS0
或ATS0<n>
。此外,拒绝来电的相应命令是ATH
或AT H
。
我尝试了以上所有命令,但是来电既没有回答也没有被拒绝!
我的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'
如上所示,GSM调制解调器无论我发送给它的AT命令如何,都会继续振铃。我的计划有什么问题?
请注意,我的调制解调器是this,我可以在Python中使用它成功发送短信或拨打电话。 提前谢谢。
答案 0 :(得分:3)
在每个AT
命令的末尾添加 CR ,使其成为有效的AT
命令
答案 1 :(得分:0)
我们无法直接拒绝来电。要拒绝来电,我们应配置语音挂断控制命令
AT + CVHU(语音挂机命令)。
ATH命令取决于AT + CVHU。
答案 2 :(得分:0)
phone = serial.Serial("/dev/ttyAMA0", baudrate=9600, timeout=1)
try:
time.sleep(1)
while(1):
x = phone.readline()
print(x)
if (x == b'RING\r\n'):
phone.write('ATH'+'\r\n')
time.sleep(2)
finally:
phone.close()