【发布时间】:2015-09-06 07:26:42
【问题描述】:
我编写了下面的 Python 程序来等待来电并接受或拒绝它们。根据this文档和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 命令如何,都会继续响铃。我的程序有什么问题?
请注意,我的调制解调器是 D-Link DWM-156,我可以在 Python 中使用它成功发送短信或拨打电话。 提前致谢。
【问题讨论】:
-
你有什么类型的GSM模块?
-
@KhalilAmmour-خليلعمور 这是D-Link DWM-156。
-
那么你应该参考它的手册以获得正确的AT命令!...让我看看
-
@KhalilAmmour-خليلعمور 每个调制解调器类型的 AT 命令是否不同?我被认为是所有 GSM 调制解调器的标准化。我错了吗?
-
不确定,但你自己为我们提供了不同的 AT 命令,不是吗?
标签: python gsm at-command pyserial modem