Kommunikation zwischen AOK und PC-Tools
Die Kommunikation zwischen PC und AOK erfolgt über die serielle Schnittstelle. Dabei wird 38400,8,N,1 als Kommunikationsparameter genutzt. Eine Verbindung über die USB-Schnittstelle des AOK ist nicht möglich. Beim Anschluss darauf achten, dass der PC RS-232-Pegel, der AOK aber TTL-Pegel (auf dem äußeren UART-Anschluss) hat. Es ist also ein Pegelwandler zwingend erforderlich. Hierzu kann die kleine Zusatzplatine aus dem AOK-Shop benutzt werden.
Der AOK sendet ständig Debug-Werte über UART. Es wird mit maximal möglicher Rate gesendet. Da über die Konfigurationsvariablen DEBUG1..6 ein Bitfeld der zu sendenden Debug-Werte gelegt werden kann, kann man so
Der Wert Flightstatus (also die Nummer 86) wird immer gesendet.
Jeder Debug-Wert kommt als Frame vom AOK. Die Übertragung ist binär.
Der PC kann mit den folgenden 2-Byte-Befehlen das Senden der Debug-Werte aus-, bzw. einschalten:
Der AOK kann mittels
zurückgesetzt werden. Es hat sich bewährt, vorher ein Debug-Off zu senden.
Parameter werden wie folgt gesetzt (also ins AOK-RAM geschrieben)
Der AOK bestätigt einen korrekten Empfang mit einem 'O' (0x4F), einen Fehler mit einem 'E' (0x45), ist das Inflight-Parameterflag nicht gesetzt aber der Kopter fliegt, wird ein I (0x49) gesendet.
Zum Lesen der Parameter und beim Übertragen sonstiger Informationen ist der Debug-Modus des AOK immer vorübergehend auszuschalten. Das sollte die Kommunikationssoftware auf PC-Seite berücksichtigen. Sie muss außerdem sicherstellen, das die aktuell im Buffer befindlichen Werte verarbeitet sind. Aufgrund von Verzögerungen kann es auch sein, dass nach dem Senden von Debug-Off an den AOK noch der eine oder andere Wert übertragen wird. Also aufpassen!
Ein Parameterwert (aus dem RAM) wird durch
angefordert.
Der AOK sendet daraufhin (bis Version 0.30)
Der AOK sendet (ab Version 0.31) daraufhin
Ab Version 0.35 gibt es auch einen Bulk-Read, anstatt 0x67 NUM schickt man 0x47 NUM, woraufhin der AOK 16 Antwortpakete für die Parameter NUM bis NUM+15 schickt.
Hoffe, dass ich alles richtig eingetippt habe. Nicht drauf verlassen, dass alles genau so funktioniert. Benutzung der Infos auf eigene Gefahr. Die mit der aktuellen Firmware ausgelieferten legends-Dateien enthalten die Namen der Debug-Werte bzw. Parameter in aufsteigender Reihenfolge.
Im Moment ist der Motortest so:
Dabei ist crc jeweils
usw.
Ein gesetzter Wert bleibt 500ms im Kopter erhalten, d.h. wird er nicht mehr gesendet, ist der Motortest automatisch nach 500ms beendet.
Waypoint 31 (POI im Flash) wird in den Waypoint 254 (POI RAM geladen)
Waypoint 254 (POI im RAM) überschreibt den Waypoint 31 (POI Flash)
Parameter werden wie folgt gesetzt (also ins AOK-RAM geschrieben)
Der AOK bestätigt einen korrekten Empfang mit einem 'O' (0x4F), einen Fehler mit einem 'E'.
Beim Abfliegen einer Mission wird diese beim ersten Waypoint der die Koordinaten 0/0 oder -1/-1 hat, abgebrochen.
Ein Waypoint wird durch
angefordert.
Der AOK sendet daraufhin