Binärdaten mit pyserial (Python serielle Schnittstelle)
-
19-08-2019 - |
Frage
serial.write () -Methode in pyserial scheint nur String-Daten zu senden. Ich habe Arrays wie [0xc0,0x04,0x00] und will in der Lage sein, sie über die serielle Schnittstelle zum Senden / Empfangen? Gibt es verschiedene Methoden für Roh-I / O?
Ich glaube, ich könnte die Arrays ändern muß [ '\ XC0', '\ x04', '\ x00'], noch, null Charakter könnte ein Problem darstellen.
Lösung
Sie müssen Ihre Daten in eine Zeichenfolge konvertieren
"\xc0\x04\x00"
Nullzeichen sind kein Problem in Python -. Strings sind nicht nullterminierten das Null-Byte verhält sich wie ein anderes Byte "\x00"
Eine Möglichkeit, dies zu tun:
>>> import array
>>> array.array('B', [0xc0, 0x04, 0x00]).tostring()
'\xc0\x04\x00'
Andere Tipps
Ein alternatives Verfahren, ohne die array
Modul:
def a2s(arr):
""" Array of integer byte values --> binary string
"""
return ''.join(chr(b) for b in arr)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow