
Mac OS X 10.6.4にはデフォルトでPython 2.6がインストールされていますが、シリアルインターフェイスCOMモジュールがありません。 したがって、 Python Serial Port Extensionをダウンロードして解凍し(アーカイブ内のFinderをダブルクリック)、インストールします。
bash-3.2# cd /Users/memtew/Downloads/pyserial-2.5-rc2
bash-3.2# python setup.py install
MTSの例で残高と残りのトラフィックをチェックするためのスクリプト自体(このトピックで見つかったスクリプトをベースとして、残りのトラフィックをチェックするために少し変更しました):
#!/ usr / bin / env python
#-*-コーディング:utf-8-*-
輸入シリアル
インポート 文字列
輸入 OS
USBPORT = '/dev/tty.sierra05'
USBSPEED = 9600
MAXSTRINGLENGTH = 300
#USSD残高チェック番号
balcode = '* 100#'
#USSD MB残高チェック番号
mbcode = '* 100 * 1#'
「USSDリクエストを実行しています...」
s =シリアル。 シリアル ( USBPORT、USBSPEED、タイムアウト= 5 )
s。 書き込み ( 'ATZ \ 0 15' )
s。 書き込み ( 'AT + CUSD = 1、' + balcode + '、15 \ 0 15' )
バラン= ''
バラン[ 0 : 6 ] ! = '+ CUSD:' :
バラン= s。 readline ( MAXSTRINGLENGTH )
s。 書き込み ( 'AT + CUSD = 1、' + mbcode + '、15 \ 0 15' )
mb = ''
while mb [ 0 : 6 ] ! = '+ CUSD:' :
mb = s。 readline ( MAXSTRINGLENGTH )
s。 閉じる ( )
#応答行から選択+ CUSD:0、 "Balans:134.77r"、15 the amount of 134.77
balans = balans [ 17 : -8 ]
#応答行から選択+ CUSD:0、 "Ostatok:2070Mb。"、15 the number of mb-2070
mb = mb [ 19 : -9 ]
結果= 'アカウント残高:' +バラン+ 'r、残りのトラフィック:' + mb + 'mb'
印刷結果
このコードをファイルbalance.py (エンコードUTF-8)に保存します。 コードはあまり美しくて簡潔ではありませんが、その仕事はします。 他の演算子の場合、balcodeおよびmbcode変数(USSD要求番号)の値と、USSD応答から番号を抽出する行が変更されます。
#応答行から選択+ CUSD:0、 "Balans:134.77r"、15 the amount of 134.77
balans = balans [ 17 : -8 ]
#応答行から選択+ CUSD:0、 "Ostatok:2070Mb。"、15 the number of mb-2070
mb = mb [ 19 : -9 ]
「スライス」の使用方法は、 ここで非常に簡単に説明されています 。 スクリプトの結果は、最初のスクリーンショットに表示されます。 私のモデムはロシア語のUSSD要求を理解していないため、ロシア語に翻訳する必要があります。
テストモデムはSierra Wireless、モデルMC8780で使用されました。 モデムドライバーでは、6つのCOMポートがインストールされました。
/dev/cu.sierra02
/dev/cu.sierra04
/dev/cu.sierra05
/dev/tty.sierra02
/dev/tty.sierra04
/dev/tty.sierra05
ATコマンドポート-cu.sierra05 / tty.sierra05(それらのいずれか)が必要です。 screen /dev/tty.sierra05 115200コマンドを使用してポートに接続し、 ATI5を入力することにより、6つから目的のものを決定できます。その結果、モデムに関する情報が表示されます。