MAVkit — это набор инструментов C++ для MAVLink 2.0 в командной строке.
Он может отображать , перенаправлять , транслировать , регистрировать , воспроизводить данные из и в различные типы интерфейсов ( последовательный , UDP , TCP , файловый ).
MAVkit также является основой для программистов MAVLink. Он построен на модульной архитектуре, где каждый модуль может использоваться независимо в других проектах. В этом случае он предоставляет простой блок MAVLink, который можно заменить в зависимости от коммуникационного оборудования.
Разработанный с учетом низкой задержки, он защищает буферы ввода-вывода от переполнения (приводящего к потере данных) за счет использования двухпоточного цикла обработки для каждого интерфейса (быстрое чтение и обработка).
Примечание. Обязательно используйте следующую рекурсивную команду: в mavlink есть два уровня подмодулей.
git submodule update --init --recursive
Зависимости : обычные зависимости Boost + MAVLink.
mkdir build
cd build
cmake ..
make
Mavkit организован в виде модулей, называемых мессенджерами . Мессенджер может получать и отправлять сообщения другим людям полностью одновременно.
Каждый мессенджер может представлять собой последовательный канал, сокет UDP, файл журнала...
на роль мастера необходимо указать хотя бы один мессенджер (первый). Этот конкретный будет дуплексно соединен со всеми остальными мессенджерами, созданными тогда. Напротив, между ними не будут связаны вторичные мессенджеры.
Вот пример двух экземпляров MAVkit, состоящих соответственно из 4 и 2 мессенджеров и связанных между собой через UDP. Обратите внимание, что мастера подключены ко всем остальным мессенджерам, а те между собой не связаны.
После того, как вы его создали, вы можете запустить MAVKit из командной строки, указав мессенджеры один за другим.
Первый посланник возьмет на себя роль хозяина.
Аргументы:
пример: --tty /dev/ttyUSB0 57600
Аргументы:
пример: --udp_server 14550
Аргументы:
--udp_client 192.168.1.10 14550
Аргументы:
пример: --tcp_server 14550
Аргументы:
--tcp_client 192.168.1.10 14550
Сохраняйте полученные сообщения в файлах .raw и .ts (.raw содержит необработанные данные mavlink, .ts содержит метку времени для каждого сообщения).
Никаких аргументов.
--log
Воспроизведение содержимого файлов .raw и .ts.
Аргументы:
пример: --file ../myLog 2.0 50
Выводить сообщения на стандартный вывод.
Никаких аргументов.
--display
В командной строке вы можете объединить практически столько мессенджеров, сколько захотите.
Пример :
./mavkit --tty 57600 /dev/ttyACM0 --udp_server 14550 --display --log --tcp_client 127.0.0.1 14551