2
직렬 포트에서받은 데이터를 테스트하려고하는데 제대로 된 것처럼 보이지 않습니다. 나는 패킷에받은 첫 번째 바이트 따라서 0xBE 있는지 확인해야합니다직렬 포트에서 테스팅 바이트
#ser is instance of pyserial serial object
data=ser.read(5)
print "serial RX: " + binascii.b2a_hex(data)
if data[0] != 0xBE:
print"wrong value"
항상 인쇄 : 인쇄를 ASCII로 바이너리가 올바른 값이 수신 된 것을 알 수
serial RX: beef000008
wrong value
에도 불구하고.
어디에서이 기본적인 작업을 잘못하고 있습니까?
감사합니다. 로빈. pyserial's documentation에서
왜 데이터 [0], 데이터 [1], 데이터 [2] 및 데이터 [3]를 인쇄하고 거기에 무엇이 있는지 확인하지 않으시겠습니까? –
만약 데이터를 인쇄하면 [0] 나는 chr (0xBE) 인 3/4 문자를 가지므로 올바른 값 (bin2ascii에 의해 확인 됨)이지만 serial.read()는 바이트 객체를 파이썬> = 2.4로 반환해야합니다 문서에 따르면. 아마 진짜 문자열일까요? – user2512377
바이트는 일종의 문자열이라고 생각합니다. 그냥 지금 그것에 대해 읽고. 하지만 어떤 경우에는 상황에 맞는 해결 방법은 데이터 [0]과 chr (0xbe)를 비교하는 것입니다. –