2015-01-05 5 views
0

나는 파이썬에서 시리얼 장치와 통신하려고하는데이 장치는 동기화 바이트를 필요로한다.이 경우에는 "변하기"라고하는 다른 바이트를 255로 바꾼다 내 코드에이 코드가있다. 잘파이썬 3 및 pyserial 2.7

serial.write(b '255') 
serial.write(b '55') 
serial.write(b '69') 

이 잘 작동하지만 그것은이 옵션을 사용할 수없는 것처럼 보인다

serial.write(b '255') 
serial.write(b varA) 
serial.write(b varB) 

에서 같은 변수의 마지막 두 숫자를 대체 할 수없는 것.

답변

1

b'255' 실제로 아스키 문자열 "255"의 이진 표현 밖으로 도와주세요 제발. 255 바이트를 정확히 전달하려면 serial.write(255)으로 간단하게 작성할 수 있습니다. 그리고이 경우 변수는 바이트로 할당되어야합니다 (0부터 255까지의 범위의 int).


는 실제로 ASCII 문자열의 이진 표현을해야하는 경우

serial.write(255) 
serial.write(55) 
serial.write(69) 

varA = 55 
varB = 69 
serial.write(255) 
serial.write(varA) 
serial.write(varB) 

는 (왜?)와 VARA \ varB는 바이트 배열로 변환 할 수 있습니다, 문자열입니다. varA = '255'; varA.encode('ascii')b'255'과 동일합니다.