我需要一段代碼來幫助我通過短信與華爲3G加密狗發送天氣預報。AT命令在python的短信文本中發送
它的工作,但這裏是我得到:
AT+CMGF=1
AT+CMGS="+12345678"
It's partly cloudy and 20C now in Wahren.
爲什麼我收到那些AT
字符串?
import pywapi
import string
import serial
weather_com_result = pywapi.get_weather_from_weather_com('AGXX0006')
sms_text = "It's " + string.lower(weather_com_result['current_conditions']['text']) + " and " + weather_com_result['current_conditions']['temperature'] + "C now in Wahren.\n\n"
dongle = serial.Serial(port="COM6",baudrate=460800,timeout=0,rtscts=0,xonxoff=0)
def sendatcmd():
number = "+12345678"
dongle.write('AT+CMGF=1\r')
dongle.write('AT+CMGS="' +number+'"\r')
dongle.write(str(sms_text)+"\r")
dongle.write(chr(26))
dongle.close()
print "sent"
sendatcmd()
Python如何獲得對此類處理器的訪問權限(以便它可以讀取/寫入AT命令)。在Android中,該訪問由無線接口層(RIL)提供,並且用戶可以*不*有權訪問它。 – jww
由於操作系統將USB視爲COM端口,並且正在使用python串行庫,所以我不認爲主控處理器正在處理AT命令,而只是將其轉發到串行/ USB接口作爲僅由加密狗解釋的數據,就像任何其他串行數據一樣。 – stanri
SMS短信需要後回車嗎? http://www.diafaan.com/sms-tutorials/gsm-modem-tutorial/at-cmgs-text-mode/表示否則。這可能會使解析器混淆。 – stanri