MAVkit ist eine C++-Toolbox für MAVLink 2.0 in der Befehlszeile.
Es kann Daten von und zu verschiedenen Schnittstellentypen ( seriell , UDP , TCP , Datei ) anzeigen , umleiten , übertragen , protokollieren und wiedergeben .
MAVkit ist auch ein Framework für MAVLink-Programmierer. Es basiert auf einer modularen Architektur, bei der jedes Modul unabhängig in anderen Projekten verwendet werden kann. In diesem Fall stellt es einen einfachen MAVLink-Block bereit, der je nach Kommunikationshardware ersetzt werden kann.
Es wurde im Hinblick auf eine geringe Latenz entwickelt und schützt E/A-Puffer vor Überläufen (die zu Datenverlusten führen), indem es eine Dual-Thread-Verarbeitungsschleife pro Schnittstelle verwendet (schnelles Lesen und Verarbeiten).
Hinweis: Verwenden Sie unbedingt den folgenden rekursiven Befehl, da es in mavlink zwei Submodulebenen gibt.
git submodule update --init --recursive
Abhängigkeiten : Boost + MAVLink übliche Abhängigkeiten
mkdir build
cd build
cmake ..
make
Mavkit ist in Modulen namens Messenger organisiert. Ein Messenger kann Nachrichten vollständig gleichzeitig empfangen und an andere senden.
Jeder Messenger kann entweder eine serielle Verbindung, ein UDP-Socket, eine Protokolldatei usw. sein.
Sie müssen mindestens einen Messenger (den ersten) für die Rolle des Masters angeben. Dieser spezielle wird dann mit jedem anderen erstellten Messenger duplex verbunden. Im Gegenteil, sekundäre Boten werden nicht zwischen ihnen verbunden.
Hier ist ein Beispiel für zwei MAVkit-Instanzen, die aus 4 bzw. 2 Messengern bestehen und über UDP miteinander verbunden sind. Beachten Sie, dass Master mit allen anderen Messenger verbunden sind, während diese nicht zwischen ihnen verbunden sind.
Sobald Sie es erstellt haben, können Sie MAVKit über die Befehlszeile ausführen, indem Sie nacheinander Messenger angeben.
Der erste Bote übernimmt die Rolle des Meisters.
Argumente:
Beispiel: --tty /dev/ttyUSB0 57600
Argumente:
Beispiel: --udp_server 14550
Argumente:
--udp_client 192.168.1.10 14550
Argumente:
Beispiel: --tcp_server 14550
Argumente:
--tcp_client 192.168.1.10 14550
Speichern Sie empfangene Nachrichten in der .raw- und .ts-Datei (.raw enthält die Mavlink-Rohdaten, .ts enthält den Zeitstempel für jede Nachricht).
Keine Argumente.
--log
Inhalte von .raw- und .ts-Dateien wiedergeben.
Argumente:
Beispiel: --file ../myLog 2.0 50
Nachrichten an stdout ausgeben.
Keine Argumente.
--display
Sie können in der Befehlszeile fast so viele Messenger kombinieren, wie Sie möchten.
Beispiel :
./mavkit --tty 57600 /dev/ttyACM0 --udp_server 14550 --display --log --tcp_client 127.0.0.1 14551