2015-12-15 22 views
5

Python dili kullanarak RPi'de SIM900 arabirimini uygularım. Ancak, dize port.write() işlevinde bir sorun var. İşte python seri olarak yazma dizisi Raspberrypi'deki bağlantı noktası

benim kodudur: Yukarıdaki satır iyi çalışıyor
# This line has to write on serial port 
port.write(b'AT+SAPBR=3,1,"APN","TATA.DOCOMO.INTERNET"\r\n') 

... Şimdi

benim gerekliliktir komut satırından okumak zorundadır ve bunu dize eklemek gerekir dize TATA.DOCOMO.INTERNET b'AT+SAPBR=3,1,"APN","xxxx"\r\n' ile.

Ben değişkene APN adını okumaya çalışıyorum ve bunu ekleme sonra çalışmıyor zaman, kod hatlarıdır

# 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 

şöyle piton bunun çıktısı:

AT+SAPBR=3,1,"APN","TATA.DOCOMO.INTERNET"\r\n' 

ihtiyacım hattı gibi görünüyor, ama bir hata veriyor gsm.write (t) 'de yazarken ben bile

gsm.write(byte(t)) 
gsm.write(t.encode()) 
0 ile çalıştı

Ancak, hala çalışmıyor.

+1

araçları "başarısız" ... ayrıca fiili temsil görmek için baskı (repr (t)) 'isteyebilirsiniz –

+0

AP çift tırnak içerir mi? aksi takdirde onları eklemeniz gerekir… – jsphpl

+0

AP dizesi, çift tırnak t3 = "AP" yi eklerseniz, AP'nin içeriği değil sadece AP! – cvk

cevap

0

Sen Python standart os modülü ile bu kodu kullanarak deneyebilirsiniz:

import os 

os.system(b'echo -e "AT+SAPBR=3,1,\"APN\",\"TATA.DOCOMO.INTERNET\"\r\n" >> ttyAMA0') 

Saygılarımızla kesinlikle görüyorsanız ... ve hangi hangi hata sağlamak gerekir

+0

Ayrıca, pyserial kullanabilirsiniz. –

İlgili konular