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.

War es hilfreich?

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
scroll top