Os dados binários com pyserial porta serial (python)
-
19-08-2019 - |
Pergunta
serial.write () em pyserial parece enviar apenas dados de cadeia. Eu tenho matrizes como [0xc0,0x04,0x00] e quero ser capaz de enviar / recebê-los através da porta serial? Existem quaisquer métodos separados para raw I / O?
Eu acho que talvez seja necessário alterar as matrizes para [ '\ xc0', '\ x04', '\ x00'], ainda, caráter nulo pode representar um problema.
Solução
Você precisa converter seus dados para uma string
"\xc0\x04\x00"
caracteres nulos não são um problema em Python - cordas não são os comporta de zero bytes como outra "\x00"
byte terminada em null
Uma maneira de fazer isso:
>>> import array
>>> array.array('B', [0xc0, 0x04, 0x00]).tostring()
'\xc0\x04\x00'
Outras dicas
Um método alternativo, sem utilizar o módulo de array
:
def a2s(arr):
""" Array of integer byte values --> binary string
"""
return ''.join(chr(b) for b in arr)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow