2016-04-14 4 views
1

Ich mache ein Arduino-Projekt, das Strings sendet und empfängt.pyserial Senden von Unicode-String als Byte-Array

Es sendet mir eine Zeichenfolge, die eine durch Komma getrennte Liste von Zahlen ist, die ich in der Datei speichern. Ich versuche dann, die Datei zu lesen und die Zeichenfolge auf die gleiche Weise zurückzusenden, wie ich sie erhalten habe.

Dies funktioniert gut, wenn ich dies über den seriellen arduino-Monitor, aber ich kann nicht scheinen, pyserial zu senden/encodieren die Zeichenfolge in der gleichen Weise wie es erhalten wurde.

Ich habe versucht, Code wie folgt verwendet:

for b in bytearray("10,20","UTF-8"): 
    ser.write(str(b).encode("latin_1")) 

ser.flush() 

aber haben kein Glück gehabt bekommen es durch korrekt gesendet.

+0

Ist das Python 2 oder 3? – Paul

Antwort

1

Sie verwenden Python Unter der Annahme, 3, können Sie einfach:

ser.write("10,20".encode()) 

Für Python 2, glaube ich Strings direkt an ser.write() weitergegeben werden können sie ohne codieren.

1

Was ich am Ende Arbeits immer war:

ba = bytes("10,20\n", encoding="ascii") 
ser.write(ba)