Mavlink - Micro Air Apance Message Bybarry Marshalling.
Mavlink-это очень легкая библиотека сообщений только для заголовков для связи между беспилотниками и/или наземными станциями управления. Он состоит в основном из спецификаций набора сообщений для различных систем («диалектов»), определенных в файлах XML, и инструментов Python, которые преобразуют их в соответствующий исходный код для поддерживаемых языков. Существуют дополнительные сценарии Python, ведущие примеры и утилиты для работы с данными Mavlink.
Tip Mavlink очень хорошо подходит для приложений с очень ограниченной пропускной способностью. Его эталонная реализация в C очень оптимизирована для систем, ограниченных ресурсами с ограниченной памятью ОЗУ и флэш-памяти. Он проверен на поле и развернут во многих продуктах, где он служит интерфейсом взаимодействия между компонентами различных производителей.
Чтобы установить минимальную среду Mavlink на Ubuntu LTS 20.04 или 22.04, введите следующее на терминале:
# Dependencies
sudo apt install python3-pip
# Clone mavlink into the directory of your choice
git clone https://github.com/mavlink/mavlink.git --recursive
cd mavlink
python3 -m pip install -r pymavlink/requirements.txt
Затем вы можете построить C-library C для /mavlink
для message_definitions/v1.0/common.xml
python3 -m pymavlink.tools.mavgen --lang=C --wire-protocol=2.0 --output=generated/include/mavlink/v2.0 message_definitions/v1.0/common.xml
Чтобы включить заголовки в Cmake, установите их локально, например, в install
каталога:
cmake -Bbuild -H. -DCMAKE_INSTALL_PREFIX=install -DMAVLINK_DIALECT=common -DMAVLINK_VERSION=2.0
cmake --build build --target install
Затем используйте find_package
, чтобы получить зависимость в CMakeLists.txt
:
find_package(MAVLink REQUIRED)
add_executable(my_program my_program.c)
target_link_libraries(my_program PRIVATE MAVLink::mavlink)
И передайте локальный каталог установки в Cmake (адаптируйтесь к структуре каталога):
cd ../my_program
cmake -Bbuild -H. -DCMAKE_PREFIX_PATH=../mavlink/install
Для получения полного примера проверьте примеры/c.
Примечание. Несмотря на то, что мы используем target_link_libraries
в Cmake, на самом деле это не «ссылка» на Mavlink, поскольку это просто библиотека только для заголовков.
Инструкции по использованию библиотек C затем рассматриваются при использовании библиотек C Mavlink (Mavgen).
Примечание. Установка Mavlink Toolchain объясняет, как установить Mavlink на других платформах и окнах Ubunt Субсоны использования библиотек Mavlink объясняют, как использовать сгенерированные библиотеки.