Seite 1 von 1

AT Befehle an ein Modem senden

Verfasst: Sonntag 4. September 2016, 14:09
von manukura
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

Re: AT Befehle an ein Modem senden

Verfasst: Sonntag 4. September 2016, 14:44
von Dav1d
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')`.

Re: AT Befehle an ein Modem senden

Verfasst: Sonntag 4. September 2016, 15:59
von manukura
Hallo Dav1d,
vielen Dank, habe .encode('utf-8') eingefügt,
und es klappt :-)
einen erholsamen Sonntag noch,
wünscht, Manukura