문제

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)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top