Binary Communication Protocol richtig übersetzten
Verfasst: Mittwoch 26. Januar 2011, 09:02
Hallo,
vielleicht kennen von euch ein paar das Projekt "ArduPilot Mega" von "DIY Drones". Ich wollte mir dazu eine eigene Groundstatation Programmieren, jedoch hab ich mit dem Binary Communication Protocol ein paar probleme.
Wenn ich z.b. das Packet mit der Message ID 0x02 übersetzte passt alles, so lange die Werte positiv sind. Sobald die Werte negativ werden müssten, zeigt die Ausgabe in der Shell eine Art überlauf.
hier mal der Teil der die Message ID 0x02 übersetzt:
scheinbar hab ich ein Problem mit signed und unsigned. Aber wie regelt das Python? ich hab leider noch keine Projekte gehabt in denen ich auf so ein Problem gestossen bin und hab deshalb auch keine Ahnung was da falsch läuft.
Über ein paar Tipps würd ich mich sehr freuen
greetz,
draufunddran
vielleicht kennen von euch ein paar das Projekt "ArduPilot Mega" von "DIY Drones". Ich wollte mir dazu eine eigene Groundstatation Programmieren, jedoch hab ich mit dem Binary Communication Protocol ein paar probleme.
Wenn ich z.b. das Packet mit der Message ID 0x02 übersetzte passt alles, so lange die Werte positiv sind. Sobald die Werte negativ werden müssten, zeigt die Ausgabe in der Shell eine Art überlauf.
hier mal der Teil der die Message ID 0x02 übersetzt:
Code: Alles auswählen
if ord(msg[0]) == 2:
print ord(msg[0])
attitude[0] = ord(msg[3]) << 8
attitude[0] = attitude[0] + ord(msg[2])
attitude[1] = ord(msg[5]) << 8
attitude[1] = attitude[1] + ord(msg[4])
attitude[2] = ord(msg[7]) << 8
attitude[2] = attitude[2] + ord(msg[6])
attitude[0] = float(attitude[0]) / 100
attitude[1] = float(attitude[1]) / 100
attitude[2] = float(attitude[2]) / 100Über ein paar Tipps würd ich mich sehr freuen
greetz,
draufunddran