From 704aaf163c74d9f261c229b1388712b5f9319d52 Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Wed, 15 Aug 2018 21:05:15 +0300 Subject: [PATCH] docs: add mavlink packet structure example --- docs/mavlink.md | 147 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) diff --git a/docs/mavlink.md b/docs/mavlink.md index 5ba18e4e..c744f345 100644 --- a/docs/mavlink.md +++ b/docs/mavlink.md @@ -36,3 +36,150 @@ MAVLink-сообщение это отдельная "порция" данных Каждое устройство (дрон, базовая станция и т. д.) имеет ID в сети MAVLink. В PX4 MAVLink ID менятся с помощью параметра `MAV_SYS_ID`. Каждое MAVLink сообщение содержит поле с ID системы-отправителя. Кроме того, некоторые сообщения (например, `COMMAND_LONG`) содержат также ID системы-получателя. Помимо ID систем, сообщения могут содержать ID компонента-отправителя и компонента-получателя. Примеры компонентов системы: полетный контроллер, внешняя камера, управляющий бортовой компьютер (Raspberry Pi в случае Клевера) и т. д. + +### Пример пакета + +Пример структуры MAVLink-пакета с сообщением `COMMAND_LONG`: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ПолеДлинаИмяКомментарий
Заголовок
magic1 байтМетка начала0xFD для MAVLink 2.0
len1 байтРазмер данных
incompat_flags1 байтОбратно несовместимые флагиНа данный момент не используется
compat_flags1 байтОбратно совместимые флагиНа данный момент не используется
seq1 байтПорядковый номер сообщения
sysid1 байтID системы-отправителя
compid1 байтID компонента-отправителя
msgid3 байтаID сообщения
Данные (пример)
target_system1 байтID системы-получателя
target_component1 байтID компонента–получателя
command2 байтаID команды
confirmation1 байтНомер для подтверждения
param14 байтаПараметр 1Число с плавающей точкой одинарной точности
param24 байтаПараметр 2
param34 байтаПараметр 3
param44 байтаПараметр 4
param54 байтаПараметр 5
param64 байтаПараметр 6
param74 байтаПараметр 7
checksum2 байтаКонтрольная сумма
signature13 байтСигнатура (опционально)Позволяет убедиться, что пакет не был скомпроментирован. +Обычно не используется.
+ +Желтым цветом выделены поля данных (полезной нагрузки). Для каждого типа сообщения существует свой набор таких полей.