我编写了以下Python程序来与我的D-Link DWM-156 GSM调制解调器通信。这个程序等待来电,当它接收到RING提示时,接受该电话。
幸运的是,它工作得很好 ;)
程序代码:
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'ATA\r')
time.sleep(0.5)
finally:
phone.close()
运行过程中的输出:
>>> ================================ RESTART ================================
>>>
b''
b''
b''
b'\r\n'
b'RING\r\n' #Here, my friend (named "Jimmy",for example), called me.
b'OK\r\n'
b''
b''
b''
b''
b''
正如您在上面看到的那样,在接收到来电后,GSM调制解调器会立即接受它,并从那一点到结束,我们有一个活动通话。
我的问题:
1- 在这个活动通话期间是否可以发送/接收一些数据(例如短信)?或者至少我可以在这个活动通话的另一端(即Jimmy手机的扬声器上)发出噪音吗?(我不想发送可识别的声音,有一些噪音就足够了。虽然有一种方法可以发送可识别的语音真的更好。)
2- 为什么这个程序可以检测到来电,但无法检测到来信?请看下面。您可以看到我的程序在Jimmy向我的GSM调制解调器发了3条短信时的输出(他的手机收到了所有短信的“已送达”通知)。
>>> ================================ RESTART ================================
>>>
b''
b''
b''
b''
b''
b''
b''
如上所示,我什么也没收到,而他发送了3条短信!为什么?