0
私はC++で書かれたコードを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;
}
動作しません、私はPythonで書かれているコードを、このです:
rightWheel = bytearray(b'\xc000')
rightWheel[0] = rightWheel[0] + (rightWheelSteer & 0x1F)
rightWheel[1] = (rightWheelSteer >> 5) & 0x7F
rightWheel = bytes(rightWheel)
ser2.write(rightWheel)
rightWheelの最初のバイトは、正しいデータが含まれているようだが、2番目のバイトはありません。 rightWheel [1]に1バイトを格納したいが、それはしない。
どのようなPythonコードを使用すると、右に5ビットシフトされた変数を含む1バイトを設定し、0x7Fでビット単位でアンドされますか?
あなたは例の入力と出力を提供することができますか?あなたのコードは正しく見え、わたしにとっては賢明な結果が得られます。 – MisterMiyagi
コードを確認していただきありがとうございます。私はサンプルの入出力を作成するために行ったとき、問題を引き起こしていたテストコードに問題があることがわかりました。だから私のコードは確かに正しいです。 – Daanii
私の答えに記載されているように、問題はまだ残っていました。 – Daanii