0
저는 Python으로 번역하는 C++로 작성된 코드를 가지고 있습니다.Python에서 직렬 연결을 통해 데이터를 설정하고 전송하기
이WriteBuffer[0] = unsigned char (0xc0 + (Steer & 0x1F)); // change the signal to conform to jrk motor controller
WriteBuffer[1] = unsigned char (Steer >> 5) & 0x7F; // two-word feedback signal
if(!WriteFile(hSerial[1], &WriteBuffer, 2, &BytesWritten, NULL)){
//error occurred. Report to user.
cout<<"error writing T2 \n";
cout<<BytesWritten;
}
나는이 작동하지 않는 파이썬에서 작성한 코드는, 이것이다 : :이 C++ 코드는
가rightWheel = bytearray(b'\xc000')
rightWheel[0] = rightWheel[0] + (rightWheelSteer & 0x1F)
rightWheel[1] = (rightWheelSteer >> 5) & 0x7F
rightWheel = bytes(rightWheel)
ser2.write(rightWheel)
rightWheel의 첫 번째 바이트가 올바른 데이터를 포함 할 것 같다,하지만 두 번째 바이트는 그렇지 않습니다. rightWheel [1]에 1 바이트를 포함 시키길 원하지만, 그렇지 않습니다.
어떤 Python 코드를 사용하면 오른쪽으로 5 비트 이동 한 다음 0x7F로 비트 단위로 이동 한 단일 바이트를 설정할 수 있습니까?
당신은 예를 들어, 입력과 출력을 제공 할 수 있습니까? 귀하의 코드가 올바르게 보이고 나에게 합리적인 결과를 만들어냅니다. – MisterMiyagi
코드를 확인해 주셔서 대단히 감사드립니다. 예제 입출력을 만들려고 할 때 문제를 일으키는 테스트 코드에 문제가 있음을 발견했습니다. 그래서 내 코드가 실제로 맞습니다. – Daanii
아래의 답변에 언급 된 바와 같이 여전히 문제가있었습니다. – Daanii