2012-11-26 25 views
0

我想在vodafone上使用huawei e220調制解調器以編程方式發送和接收python中的txt消息。使用PyGSM從華爲e220發短信

editedit: 我得到它的工作,需要將smsc設置爲*****。 我需要知道的是,是什麼命令來設置它? EG AT + ????

如何使用serial.Serial模塊做到這一點? 我很難過。

是PyGSM最好的模塊嗎? 我該如何使用它? 我找不到任何地方的文檔,但我也找不到更好的模塊。

Daisy13_on_D1="/dev/ttyUSB0" 

gsm = GsmModem(port=Daisy13_on_D1,baudrate=115200,logger=GsmModem.debug_logger).boot() 

s = gsm.wait_for_network() 

gsm.send_sms(642723243,"Hey, what's up") 

給我這個輸出

debug Booting 
    debug Connecting 
    write 'ATE0\r' 
    read '\r\n' 
    read 'OK\r\n' 
    write 'AT+CMEE=1\r' 
    read '\r\n' 
    read 'OK\r\n' 
    write 'AT+WIND=0\r' 
    read '\r\n' 
    read 'COMMAND NOT SUPPORT\r\n' 
    write 'AT+CMGF=1\r' 
    read '\r\n' 
    read 'OK\r\n' 
    write 'AT+CSQ\r' 
    read '\r\n' 
    read '+CSQ: 19,99\r\n' 
    read '\r\n' 
    read 'OK\r\n' 
    write 'AT+CMGS="642723243"\r' 
    read '\r\n' 
    read '+CMS ERROR: 330\r\n' 
    write '\x1b 

我也想太沒有運氣現在使用的sms0.4模塊。

import sms 

m = sms.Modem("/dev/ttyUSB0") 

m.send('64272923243','This works YO') 
print m.conn.sent() 

結果:

Traceback (most recent call last): File "testSMSMODULE.py", line 5, in <module> 
    m.send('0272923243','This works YO') File "/usr/local/lib/python2.7/dist-packages/sms-0.4-py2.7.egg/sms/__init__.py", line 61, in send 
    self._command('AT+CMGS="%s"' % number) File "/usr/local/lib/python2.7/dist-packages/sms-0.4-py2.7.egg/sms/__init__.py", line 109, in _command 
    raise ModemError(results) sms.ModemError: ['\r\n', '+CMS ERROR: 330\r\n'] 

回答

1

據我所知,你想要做什麼是所謂SMSLib,它是用Java編寫的最好的免費圖書館。準備解決許多特定於您的硬件的問題,但總的來說,它工作正常。

有一個名爲「ActiveXperts Mobile Messaging Toolkit」的商業解決方案,您可以從Python通過COM綁定使用該解決方案。沒有嘗試過自己(當我需要的時候,我已經實現了自己的解決方案),但是互聯網上的人們說它工作正常。

AFAIK其餘的都是廢話。

+0

Unfortunatley我已經看過那個庫,但我需要它在python中,所以我可以維護它。 你知道發送它所需的AT + CMGS代碼嗎? 另一種選擇是我只需要編寫一個android應用程序,併購買一個android手機,這會比找到一個python庫容易嗎? – straykiwi

+0

1. Here:http://depositfiles.com/files/qif38zuo8問題是,很少設備支持文本模式的消息。而且,文本模式也有其侷限性。很可能你必須以PDU模式發送它們,這更難,尤其是,如果你必須處理多部分和/或Unicode消息。 2.不知道,對Android幾乎沒有經驗。 – Soonts

+0

如果您要在Python中實現您自己的解決方案,下面是在C#中創建相同文檔時使用的完整文檔集:http://depositfiles.com/files/sznrcdm73最有用的是ubinetics-at- command-set.pdf - 它適用於某些隨機設備,但該特定設備符合標準,且文檔很好。 – Soonts

1

sms模塊似乎輕鬆了許多使用方法: http://pypi.python.org/pypi/sms

總之,要通過GSM調制解調器的串行接口在Python發送短信:

#!env python 
import serial 
m = serial.Serial('/dev/ttyUSB0', 115200, timeout=1) 
m.write('ATZ\r') 
m.write('AT+CMGF=1\r\n') 
m.write('AT+CMGS="%s"\r\n' % '+phone_number_here') 
m.write('this is the text message here') 
m.write(chr(26)) 
m.close() 

的AT命令來設置SMSC是:AT+CSCA="+smsc_number_here",145。請參閱http://www.developershome.com/sms/cscaCommand.asp