2012-04-11 12 views
1

私はPython 2.6で作業しています。私の携帯電話、すなわちNokia E-72がデータケーブル経由でPCに接続されているときにSMSをモバイルに送信したいと思います。データケーブル接続でPython 2.6でSMSを送信

モバイルはシリアルポート経由で接続されており、コードにも正しいポートが入力され、コードにエラーはありませんが、メッセージは送信されません。

import serial 
import time 
phone = serial.Serial() 
phone.baudrate = 38400 
phone.bytesize = 8 
phone.stopbits = 1 
phone.xonxoff = 0 
phone.rtscts = 0 
phone.timeout = 0 
phone.port = 4 #try different ports here, if this doesn't work. 
phone.parity=serial.PARITY_NONE 
phone.open() 
print phone.portstr 
recipient = "+923219409998" 
message = "We did it!" 
try: 
    time.sleep(0.5) 
    phone.write(b'ATZ\r') 
    time.sleep(0.5) 
    phone.write(b'AT+CMGF=1\r') 
    time.sleep(0.5) 
    phone.write(b'AT+CMGS="' + recipient.encode() + b'"\r') 
    time.sleep(0.5) 
    phone.write(message.encode() + b"\r") 
    time.sleep(0.5) 
    phone.write(bytes([26])) 
    time.sleep(0.5) 
    phone.readall() 
finally: 
    phone.close() 
+6

誰でも問題を見つけられるようになる前に、コードの書式を修正してください。 – Gangadhar

+0

電話機でも許可されているかどうかわかりませんが、シリアル接続であることを確認してください。 – Geoffroy

+0

はい、シリアル接続です。なぜあなたはこれを求めているのですか? – user1325702

答えて

0

あなたはSerial()に引数として接続パラメータを与える代わりに、後でそれらを追加してみました:次のように

私のコードはありますか?通常、だから、

  1. phone = serial.Serial(
        baudrate=38400, 
        bytesize=8, 
        stopbits=1, 
        xonxoff=0, 
        rtscts=0, 
        timeout=0, 
        port=4, #try different ports here, if this doesn't work. 
        parity=serial.PARITY_NONE, 
    ) 
    print phone.portstr 
    

    そうでない場合は、接続が意志のようなものを試してみてください...

    を接続がすぐに開かれた、と私は遅くopen()は全く効果的であるかどうかわからないですおそらくあなたが望むものではないデフォルトのパラメータで確立されるべきです。

    それはまだ動作しない場合は、

  2. リアルポートデバイス文字列("COM5""/dev/ttyS5")とポート番号を変更しようとすると、おそらく

  3. も、携帯電話の答えを解析します。これを行うには、接続パラメータにタイムアウトを定義するか、読み取り値をphone.inWaiting()によって返されたバイト数に制限する必要があります。


のほか

(それはスタイルの問題だ)

import contextlib 
with contextlib.closing(phone): 
    <do stuff with phone> 

代わりの

try: 
    <do stuff with phone> 
finally: 
    phone.close() 
を使用するには、使用のPythonのバージョンに応じ、それは滑らかな印象かもしれません

意味的には全く同じですが、よりよく見えます(IMHO)。

+0

が、SMSよりも送信されていません.... :( – user1325702

+0

@ user1325702番号付きの手順の後には動作しません。他の結果はどうなりますか? – glglgl

+0

プログラムはエラーを表示せず、ポート番号を表示します携帯電話が接続されている(これは正解です)。電話は最後に閉じますが、SMSは送信しません。 – user1325702

関連する問題