pyserial (Python Serial Port)이있는 이진 데이터
-
19-08-2019 - |
문제
pyserial의 serial.write () 메소드는 문자열 데이터 만 보내는 것 같습니다. [0xc0,0x04,0x00]과 같은 배열이 있고 직렬 포트를 통해이를 보내거나받을 수 있기를 원하십니까? 원시 I/O에 대한 별도의 방법이 있습니까?
배열을 [ ' xc0', ' x04', ' x00']로 변경해야 할 수도 있다고 생각합니다. 여전히 Null 캐릭터가 문제를 일으킬 수 있습니다.
해결책
데이터를 문자열로 변환해야합니다
"\xc0\x04\x00"
널 문자는 파이썬에서 문제가되지 않습니다-문자열은 무효가 끝나지 않습니다. 다른 바이트처럼 제로 바이트 동작 "\x00"
.
이것을하는 한 가지 방법 :
>>> import array
>>> array.array('B', [0xc0, 0x04, 0x00]).tostring()
'\xc0\x04\x00'
다른 팁
사용하지 않고 대체 방법 array
기준 치수:
def a2s(arr):
""" Array of integer byte values --> binary string
"""
return ''.join(chr(b) for b in arr)
제휴하지 않습니다 StackOverflow