2015-06-20 20 views
7

我編寫了下面的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條短信!爲什麼?

+0

我還是不明白你想在通話過程中發送什麼樣的數據?......並且你說「噪聲」足夠了......爲了什麼目的? –

+0

數據的類型無關緊要。在第一步中,我只想看看是否有可能在通話過程中收到一些數據。例如,當你使用手機給你的朋友打電話時,如果你的朋友突然按下其中一個按鍵(1,2 ....),你會聽到一聲蜂鳴聲,對吧?我想收到這個嘟嘟聲!什麼目的?目的是編寫一個處理這種命令的程序(命令後的命令。)你有沒有經歷過那些自動答案,對方的女人說:「按1按x,按2按y」等等?我幾乎想寫一個這樣的程序(不完全) – Abraham

+0

@ KhalilAmmour-خليلعمورI說我想發送「噪音」,因爲:** 1 - **這些命令對於我們來說並不是真正可識別的聲音,只是一些數字。 ** 2 - **我不想讓問題變得複雜。 – Abraham

回答

0

大多數GSM調制解調器將需要一些初始化,以便它們發送傳入的SMS。 我相信這就是Khalil所指的。這些是在進入你的循環之前你應該發送的一組AT命令。

我以前用一些不同的GSM調制解調器品牌成功地完成了這項工作,並記得即使有一些設備特定的細節,您需要發送的一般命令也是一樣的。

快速搜索導致我:

也許你可以把它們作爲一個起點。

相關問題