MAVLink Deserializer

Преобразуйте сериализировал uint8 Поток данных MAVLink к Simulink невиртуальная шина

  • Библиотека:
  • UAV Toolbox / MAVLink

Описание

Блок MAVLink Deserializer получает uint8 буферизуйте и декодирует буфер для сообщений MAVLink. Если блок получает сообщение MAVLink для выбранного типа сообщения MAVLink, блок выводит Simulink® невиртуальная шина, представляющая пакет MAVLink, содержащий Идентификатор сообщения, Системный ID, ID Компонента, Последовательность и информацию о Полезной нагрузке, соответствующую выбранному типу сообщения MAVLink.

В каждом шаге симуляции блок декодирует вход uint8 буферизуйте и получает сообщения MAVLink, которые получены после декодирования. Если новое сообщение для выбранного типа сообщения MAVLink было получено, блок получает то сообщение из списка полученных сообщений и преобразует его в Simulink невиртуальный сигнал шины.

Декодирование MAVLink логики в блоке заботится о сценариях, где пакет MAVLink был получен частично от канала связи. Блок MAVLink Deserializer внутренне хранит текущее состояние парсинга и продолжает декодировать от предыдущего шага, когда новый буфер был получен по каналу связи. Если полный пакет MAVLink был получен, и полученная контрольная сумма совпадает с вычисленной контрольной суммой для полученных байтов, то это указывает, что сообщение MAVLink было получено. Хранение состояния парсинга гарантирует, что блок может декодировать пакеты MAVLink, полученные в нескольких частях.

По умолчанию блок выводит последнее полученное сообщение MAVLink для выбранного типа сообщения MAVLink (если получено). Это поведение может быть изменено путем выбора параметра Queue Messages in output. В этом случае все полученные сообщения MAVLink для желаемого типа ставятся в очередь и в каждом Шаге симуляции, блок выводит самое старое сообщение.

Порты

Входной параметр

развернуть все

uint8 поток байтов, который содержит сериализированные пакеты MAVLink. Поток байтов обычно получается по каналу связи, такому как UDP, TCP, или Последовательный. В каждом шаге расчета канал связи получает данные и возвращает поток байтов, который содержит один или несколько пакетов MAVLink. Поток байтов может также возвратить пакет MAVLink частично в по нескольким шагам расчета. Этот входной порт принимает сигналы переменной длины.

Типы данных: uint8

Дополнительный входной порт, чтобы включать длину допустимых данных MAVLink. Чтобы включить этот порт, выберите параметр Input data stream length is available. Используйте эту опцию, когда вы будете знать точную длину допустимых данных MAVLink в потоке данных.

Эта опция полезна, когда у вас есть канал связи, получают периферийное устройство, что выходные параметры частично принятые данные, которые содержат конечные нули. Такие периферийные устройства также выводят длину фактического количества допустимых полученных байтов данных. Можно соединить длину выход периферийного устройства непосредственно с входным портом Length блока MAVLink Deserializer, так, чтобы конечные нули во входном потоке байтов не влияли на логику декодирования.

Типы данных: uint16

Вывод

развернуть все

Новые MAVLink передают индикатор, возвращенный как логическое. Значение 1 указывает, что новое сообщение доступно, поскольку последняя выборка была получена блоком. Этот выход может использоваться, чтобы инициировать подсистемы, чтобы обработать новые сообщения, полученные от блока MAVLink Deserializer.

Типы данных: Boolean

Пакет MAVLink, возвращенный как невиртуальная шина. Тип Полезной нагрузки в пакете MAVLink является шиной Simulink, соответствующей сообщению MAVLink, заданному в параметре типа сообщения MAVLink. Блок выходные параметры очищает сообщения, пока он не получает сообщение на имени сообщения, что вы задаете. Выходы порта Msg это новое сообщение. Если новое сообщение не доступно, оно выводит последнее полученное сообщение MAVLink. Если сообщение не было получено начиная с запуска симуляции, выходы порта Msg пустое сообщение MAVLink.

Типы данных: bus

Параметры

развернуть все

Основной

Источник для определения MAVLink передает определение имя XML в виде одного из следующего:

  • Select from standard MAVLink dialects - Используйте эту опцию, чтобы выбрать определение xml среди 12 обычно используемых определений сообщения имена XML, перечисленные в параметре MAVLink dialect.

  • Specify your own - Введите имя XML в текстовом поле, которое появляется для параметра MAVLink dialect.

MAVLink передают файл определения (.xml) проанализировать для MAVLink обменивается сообщениями в виде строки.

Если параметр MAVLink dialect source устанавливается на Select from standard MAVLink dialects, необходимо выбрать определение сообщения среди доступных имен определения сообщения из выпадающего списка.

Если параметр параметр MAVLink dialect source устанавливается на Specify your own, необходимо задать файл определения сообщения (.xml) это находится на текущем пути MATLAB, или можно обеспечить полный путь XML-файла.

Версия протокола MAVLink, что использование блока, чтобы сериализировать и десериализовать сообщения MAVLink.

MAVLink обмениваются сообщениями в виде строки. Нажмите Select, чтобы выбрать из полного списка доступных сообщений MAVLink. Список варьируется на основе значений, которые вы выбрали для параметров MAVLink version и MAVLink dialect.

Типы данных: string

Усовершенствованный

Когда вы выбираете эту опцию, блок MAVLink Deserializer обеспечивает дополнительный входной порт под названием Length. Этот входной порт может использоваться, чтобы передать фактическую длину данных MAVLink (если известный) во входном потоке байтов. Входной поток байтов обрезается для этой длины.

Эта опция полезна, когда у вас есть канал связи, получают периферийное устройство, что выходные параметры частично принятые данные, которые содержат конечные нули. Такие периферийные устройства также выводят длину фактического количества допустимых полученных байтов данных. Можно соединить длину выход периферийного устройства непосредственно к входному порту Length блока MAVLink Deserializer так, чтобы конечные нули во входном потоке байтов не влияли на логику декодирования.

Выберите эту опцию, чтобы отфильтровать полученные сообщения MAVLink для Системного Значения идентификатора, упомянутого в параметре System ID. Эта опция помогает вам отфильтровать полученные сообщения и Системным ID и ID Компонента.

Задайте Системное Значение идентификатора, чтобы использовать при фильтрации декодируемых сообщений MAVLink. Блок выводит полученные сообщения MAVLink, Системный ID которых совпадает с заданным значением и чей Идентификатор сообщения совпадает с сообщением MAVLink (выбранный в параметре MAVLink Message type).

Зависимости

Чтобы включить этот параметр, выберите Filter Output MAVLink messages by System ID.

Выберите эту опцию, чтобы отфильтровать полученные сообщения MAVLink для и Системный ID и ID Компонента, упомянутый в System ID и параметрах Component ID, соответственно.

Зависимости

Этот параметр появляется, только если вы выбираете параметр Filter output MAVLink messages by System ID.

Задайте Значение идентификатора Компонента, чтобы использовать при фильтрации декодируемых сообщений MAVLink. Блок выводит те полученные сообщения MAVLink, Системный ID которых и Значения идентификаторов Компонента совпадают с заданными значениями в System ID и параметрах Component ID, соответственно, и чей Идентификатор сообщения совпадает с сообщением MAVLink (выбранный в параметре MAVLink Message type).

Зависимости

Чтобы включить этот параметр, выберите Filter Output MAVLink messages by Component ID.

Выберите эту опцию на выходные сигналы с помощью шаблона метода "первым пришел - первым вышел". Если вы не выбираете эту опцию, блок MAVLink Deserializer выводит последнее полученное сообщение MAVLink для выбранного MAVLink message type (и с соответствием с Системным ID и ID Компонента, если те параметры выбраны) в каждом шаге симуляции. Если больше чем одно сообщение совпадает с данными параметрами, которые получены в шаге симуляции, последнее сообщение передается, как выведено, и остальные отбрасываются. Можно инвертировать это поведение путем выбирания этой опции.

Когда вы выбираете этот параметр, поведение блока MAVLink Deserializer в каждом шаге симуляции:

  • Блок хранит декодируемые сообщения MAVLink, совпадающие с выбранным типом сообщения MAVLink (и совпадающий с Системным ID и ID Компонента, если те параметры выбраны) в очереди. Если нет никаких сообщений среди полученных сообщений, которые совпадают с обязательными параметрами, никакие сообщения не ставятся в очередь.

  • Если очередь не пуста, первое сообщение в очереди отправляется как выход сначала, и сигнал в порте IsNew установлен в 1.

Выбор параметра Queue MAVLink messages in output делает параметр Number of messages to be queued видимым. Можно зафиксировать размер очереди путем устанавливания значения этого параметра.

Задайте размер очереди, чтобы использоваться, чтобы хранить полученные сообщения MAVLink, совпадающие с желаемыми параметрами.

Зависимости

Чтобы включить этот параметр, выберите Queue MAVLink messages in output.

Советы

Чтобы ускорить преобразование полученных сериализированных данных, рекомендуется, чтобы вы применялись, следующие настройки в канале связи получают блок:

  • Считайте данные на самом высоком уровне, возможном гарантировать, что никакие пакеты не пропущены. Используйте IsNew выход MAVLink Deserializer наряду с логикой, чтобы использовать сообщения MAVLink, чтобы знать, является ли выход блока новым сообщением или нет.

  • Если получить блок выходные параметры какое-либо количество байтов, которые получены независимо от размера данных, который требуют (частичный получают), упомяните размер чтения данных как большое количество и используйте длину фактического количества байтов, полученных как вход с блоком MAVLink Deserializer (используйте входной порт Length).

Расширенные возможности

Введенный в R2020b