Domanda

Il metodo

serial.write () in pyserial sembra inviare solo dati stringa. Ho matrici come [0xc0,0x04,0x00] e voglio essere in grado di inviarle / riceverle tramite la porta seriale? Esistono metodi separati per l'I / O non elaborato?

Penso che potrebbe essere necessario modificare le matrici in ['\ xc0', '\ x04', '\ x00'], tuttavia, il carattere null potrebbe rappresentare un problema.

È stato utile?

Soluzione

Devi convertire i tuoi dati in una stringa

"\xc0\x04\x00"

I caratteri null non sono un problema in Python: le stringhe non hanno terminazione nulla, il byte zero si comporta proprio come un altro byte " \ x00 " .

Un modo per farlo:

>>> import array
>>> array.array('B', [0xc0, 0x04, 0x00]).tostring()
'\xc0\x04\x00'

Altri suggerimenti

Un metodo alternativo, senza utilizzare il modulo array :

def a2s(arr):
    """ Array of integer byte values --> binary string
    """
    return ''.join(chr(b) for b in arr)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top