私はPython言語を使ってRPiにSIM900インターフェイスを実装しています。 しかし、port.write()関数で文字列を送信する際に問題があります。ここでPythonで文字列を書くserial Raspberrypiのポート
は私のコードです:上記の行がうまく機能
# This line has to write on serial port
port.write(b'AT+SAPBR=3,1,"APN","TATA.DOCOMO.INTERNET"\r\n')
...
は今私の要件は、コマンドラインから読み取る必要があり、文字列TATA.DOCOMO.INTERNET
であり、私はその文字列を追加する必要がありますb'AT+SAPBR=3,1,"APN","xxxx"\r\n'
となります。
しかし、私は変数にAPN名を読みしようとしていますし、次のように動作していない付加した後、コード行が
# AP ="TATA.DOCOMO.INTERNET"-string read from serial input
AP = gsm.read()
t1 = "AT+SAPBR=3,1,"
t2 = '"APN",'
t3 = AP
t4 = '\r\n'
t = t1 + t2 + t3 + t4
あるPythonで、それの出力は次のとおりです。
AT+SAPBR=3,1,"APN","TATA.DOCOMO.INTERNET"\r\n'
は、それは私が必要とするラインのように見えますが、私はそれがエラーになります gsm.write(T)に書くとき、私も
gsm.write(byte(t))
gsm.write(t.encode())
0で試してみました
しかし、それでも動作しません。
あなたは確かにあなたが見ているものを誤り提供する必要があるだろう...と何が手段を「失敗しました」 ...実際の表示を見るには 'print(repr(t))'したいかもしれません –
二重引用符をAPが含んでいますか?そうでない場合は、それらを追加する必要があります... – jsphpl
APは文字列です。二重引用符を使用すると、「AP」はAPの内容ではなくAPのみを保存します。 – cvk