J'ai du code écrit en C++ que je traduis en Python. Le code C++ est:Configuration et envoi de données via une connexion série en 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;
}
Le code que je l'ai écrit en Python, ce qui ne fonctionne pas, est la suivante:
rightWheel = bytearray(b'\xc000')
rightWheel[0] = rightWheel[0] + (rightWheelSteer & 0x1F)
rightWheel[1] = (rightWheelSteer >> 5) & 0x7F
rightWheel = bytes(rightWheel)
ser2.write(rightWheel)
Le premier octet de rightWheel semble contenir les données correctes, mais le second octet ne fait pas. Je veux que rightWheel [1] contienne un seul octet, mais ce n'est pas le cas.
Quel code Python va me permettre de mettre en place un seul octet contenant une variable décalée de cinq bits de droite et ensuite bit à bit avec 0x7F?
Pouvez-vous fournir des commentaires d'exemple et de sortie? Votre code semble correct et produit des résultats sensibles pour moi. – MisterMiyagi
Merci beaucoup de vérifier le code. Quand je suis allé créer des exemples d'entrée et de sortie, j'ai trouvé un problème avec mon code de test qui causait le problème. Donc, mon code est en effet correct. – Daanii
Oups, il y avait toujours un problème, comme indiqué dans ma réponse ci-dessous. – Daanii