MAVLINK RX
|
Страница в процессе разработки. |
Прием сообщений MAVLink.
Тип: EngeeFunction
|
Путь в библиотеке:
|
Описание
| Для работы с блоком установите/обновите пакет поддержки оборудования. |
Блок MAVLINK RX принимает сообщения MAVLink через общее соединение, созданное блоком MAVLINK Setup (дескриптор подается на вход conn), и раскладывает их по выходным шинам.
Блок работает в потоковом режиме: после подключения он непрерывно читает поток сообщений MAVLink, а на каждом шаге расчета берет из очереди свежий снимок буфера сообщений (последнее полученное сообщение каждого типа) и выдает его значения на выходные шины. Если в снимке для конкретного сообщения нет новых данных (с момента предыдущего шага для него не пришло ни одного сообщения), поля его шины сохраняют значения из последнего полученного сообщения, и это видно по шине Статус сообщений — соответствующий флаг равен false (подробнее см. раздел Статус сообщений). Блок не хранит прошлые значения между шагами: если на шаге расчета в очереди нет ни одного снимка, все шины выдаются нулевыми, а все флаги равны false. Если сообщение из массива еще ни разу не приходило, все поля его шины равны нулю
Набор принимаемых сообщений задается массивом имен в параметре MAVLink сообщения на приём:. Для каждого имени из массива блок автоматически разворачивает выходную шину с заранее заготовленным составом полей этого сообщения — имя выходного порта совпадает с именем сообщения, а состав полей приведен на странице Сообщения MAVLink. Дополнительно на выход всегда выдается шина Статус сообщений.
Статус сообщений
Дополнительный выход Статус сообщений — шина логических флагов, по одному флагу на каждое сообщение из массива MAVLink сообщения на приём:. Флаг показывает, актуальны ли данные для текущего шага расчета:
-
true— на этом шаге для конкретного сообщения пришли новые данные (в том числе при первом получении); -
false— новых данных на этом шаге не было: поля шины сообщения содержат значения из последнего снимка буфера (или нули, если на этом шаге снимка не было или сообщение еще ни разу не приходило).
Шину статусов удобно использовать для детектирования обновления телеметрии: например, запускать обработку данных только по факту прихода свежего пакета, не сравнивая значения полей вручную.
Порты
|
Состав выходных портов определяется массивом MAVLink сообщения на приём:. Для конфигурации по умолчанию выходы блока следующие: SIMSTATE, GLOBAL_POSITION_INT, HEARTBEAT, EKF_STATUS_REPORT. Описанные ниже составы полей шин соответствуют конфигурации по умолчанию. Если в параметре блока задать другие сообщения, вместо них будут развернуты шины этих сообщений. Порт Статус сообщений сохраняется при любой конфигурации блока, а состав его полей зависит от заданного массива: он всегда содержит по одному флагу на каждое сообщение из массива. Описания сообщений и их полей приведены в документации диалектов common и ardupilotmega, а также на странице Сообщения MAVLink. |
Вход
#
conn
—
дескриптор соединения MAVLink
скаляр
Details
| Типы данных |
|
| Поддержка комплексных чисел |
Нет |
Выход
#
SIMSTATE
—
состояние среды симуляции автопилота
шина
Details
| Типы данных |
|
| Поддержка комплексных чисел |
Нет |
#
GLOBAL_POSITION_INT
—
отфильтрованная глобальная позиция
шина
Details
| Типы данных |
|
| Поддержка комплексных чисел |
Нет |
#
HEARTBEAT
—
статус системы или компонента
шина
Details
| Типы данных |
|
| Поддержка комплексных чисел |
Нет |
#
EKF_STATUS_REPORT
—
статус расширенного фильтра Калмана (EKF)
шина
Details
| Типы данных |
|
| Поддержка комплексных чисел |
Нет |
#
Статус сообщений
—
шина логических флагов получения сообщений
шина
Details
| Типы данных |
|
| Поддержка комплексных чисел |
Нет |
Параметры
Main group
# MAVLink сообщения на приём: — массив имен принимаемых сообщений
Details
| Значение по умолчанию |
|
| Имя для программного использования |
|
| Настраиваемый |
Нет |
| Вычисляемый |
Да |
# Шаг расчёта, с: — шаг расчета блока для приема MAVLink-сообщений
Details
| Значение по умолчанию |
|
| Имя для программного использования |
|
| Настраиваемый |
Нет |
| Вычисляемый |
Да |
