MAVkit est une boîte à outils C++ pour MAVLink 2.0 en ligne de commande.
Il peut afficher , rediriger , diffuser , enregistrer , rejouer des données depuis et vers différents types d'interface ( Série , UDP , TCP , Fichier ).
MAVkit est également un framework pour les programmeurs MAVLink. Il est construit sur une architecture modulaire où chaque module peut être utilisé indépendamment dans d'autres projets. Dans ce cas, il fournit un simple bloc MAVLink qui peut être remplacé en fonction du matériel de communication.
Conçu dans un souci de faible latence, il protège les tampons d'E/S des débordements (entraînant une perte de données) en utilisant une boucle de traitement à double thread par interface (lecture et traitement rapides).
Remarque : Assurez-vous d'utiliser la commande récursive suivante, il existe deux niveaux de sous-modules dans mavlink.
git submodule update --init --recursive
Dépendances : Dépendances habituelles Boost + MAVLink
mkdir build
cd build
cmake ..
make
Mavkit est organisé en modules appelés messagers . Un messager peut recevoir et envoyer des messages à d’autres de manière totalement simultanée.
Chaque messager peut être soit une liaison série, soit une socket UDP, un fichier journal,...
vous devez désigner au moins un messager (le premier) pour le rôle de maître . Celui-ci sera connecté en duplex à tous les autres messagers créés à ce moment-là. Au contraire, les messagers secondaires ne seront pas connectés entre eux.
Voici un exemple de deux instances MAVkit, composées respectivement de 4 et 2 messagers et reliées entre elles via UDP. Notez que les maîtres sont connectés à tous les autres messagers, alors que ceux-ci ne sont pas liés entre eux.
Une fois que vous l'avez construit, vous pouvez exécuter MAVKit depuis la ligne de commande en spécifiant les messagers les uns après les autres.
Le premier messager assumera le rôle de maître.
Arguments :
ex : --tty /dev/ttyUSB0 57600
Arguments :
ex : --udp_server 14550
Arguments :
--udp_client 192.168.1.10 14550
Arguments :
ex : --tcp_server 14550
Arguments :
--tcp_client 192.168.1.10 14550
Enregistrez les messages reçus dans les fichiers .raw et .ts (.raw contient les données brutes mavlink, .ts contient l'horodatage pour chaque message).
Aucun argument.
--log
Rejouez le contenu des fichiers .raw et .ts.
Arguments :
ex : --file ../myLog 2.0 50
Afficher les messages sur la sortie standard.
Aucun argument.
--display
Vous pouvez combiner presque autant de messagers que vous le souhaitez en ligne de commande.
Exemple :
./mavkit --tty 57600 /dev/ttyACM0 --udp_server 14550 --display --log --tcp_client 127.0.0.1 14551