如何在通话期间通过GSM调制解调器发送和接收一些数据(Python和AT命令)
问题描述:
我编写了下面的Python程序来与我的D-Link DWM-156 GSM modem进行通信。该程序等待来电,并在收到提示时接收该呼叫。如何在通话期间通过GSM调制解调器发送和接收一些数据(Python和AT命令)
幸运的正常工作;)
方案:在运行过程中
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调制解调器接受它,并从那一点到最后,我们有一个活跃的校准湖
我的问题:
是否可以发送/这个通话过程中,接收的一些数据(SMS为例)?或者至少我可以在这个通话过程中在这个通道的另一端(即吉米手机的扬声器)发出噪音? (我不想送识别的声音,噪音是不够的。尽管有一种方法来发送识别声音真是再好不过了。)
2-为什么这个程序会检测来电,但没有探测到来袭短信?往下看。当Jimmy向我的GSM调制解调器发送3条短信时,您可以看到我的程序输出(并且他在我的手机中收到了所有这些通知“已发送”的通知)。
>>> ================================ RESTART ================================
>>>
b''
b''
b''
b''
b''
b''
b''
正如你看到的上面,我收到什么,而他送3条短信!为什么?
答
大多数GSM调制解调器将需要一些初始化,以便它们发送传入的SMS。 我相信这就是Khalil所指的。这些是在进入你的循环之前你应该发送的一组AT命令。
我以前用一些不同的GSM调制解调器品牌成功地完成了这项工作,并记得即使有一些设备特定的细节,您需要发送的一般命令也是一样的。
快速搜索导致我:
- http://www.testech-elect.com/enfora/tutorial_send_receive_sms_using_gsm_modem.htm
- http://www.smssolutions.net/tutorials/gsm/receivesmsat/
也许你可以把它们作为一个起点。
我还是不明白你想在通话过程中发送什么样的数据?......并且你说“噪声”足够了......为了什么目的? –
数据的类型无关紧要。在第一步中,我只想看看是否有可能在通话过程中收到一些数据。例如,当你使用手机给你的朋友打电话时,如果你的朋友突然按下其中一个按键(1,2 ....),你会听到一声蜂鸣声,对吧?我想收到这个嘟嘟声!什么目的?目的是编写一个处理这种命令的程序(命令后的命令。)你有没有经历过那些自动答案,对方的女人说:“按1按x,按2按y”等等?我几乎想写一个这样的程序(不完全) – Abraham
@ KhalilAmmour-خليلعمورI说我想发送“噪音”,因为:** 1 - **这些命令对于我们来说并不是真正可识别的声音,只是一些数字。 ** 2 - **我不想让问题变得复杂。 – Abraham