AT Befehle an ein Modem senden

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
manukura
User
Beiträge: 4
Registriert: Donnerstag 23. Mai 2013, 18:19

Moin moin,
ein Programm aus Pyhon 2 vom Raspberry Pi 2 muss auf Python 3 auf einem Raspberry Pi 3 laufen.
Nachdem jetzt fast alles klappt scheitert es hier:

AT Befehle an ein Modem senden:

Code: Alles auswählen

s = serial.Serial('/dev/ttyAMA0')
s.write("AT&F\r\n")
Fehlermeldung:

Code: Alles auswählen

  File "/usr/local/lib/python3.2/dist-packages/pyserial-3.0.1-py3.2.egg/serial/serialutil.py", line 58, in to_bytes
    raise TypeError('unicode strings are not supported, please encode to bytes: %r' % (seq,))
TypeError: unicode strings are not supported, please encode to bytes: 'AT&F\r\n'  
Frage:
wie muss ich das umcodieren damit es klappt, fragt verzweifelt,
Manukura
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Es werden Bytes erwartet und die schickst Unicode. Entweder du machst deinen String zu einem Byte-Literal `s.write(b'AT&F\r\n')` oder du gibst explizit ein encoding an: `s.write('AT&F\r\n'.encode('utf-8'))`. Natürlich muss das encoding auch das sein was von der anderen Seite erwartet wird, ein Byte-Literal macht im Grunde nur `.encode('ascii')`.
the more they change the more they stay the same
manukura
User
Beiträge: 4
Registriert: Donnerstag 23. Mai 2013, 18:19

Hallo Dav1d,
vielen Dank, habe .encode('utf-8') eingefügt,
und es klappt :-)
einen erholsamen Sonntag noch,
wünscht, Manukura
Antworten