exponenta event banner

mavlinksub

Получение сообщений MAVLink

Описание

mavlinksub подписывается на разделы подключенных клиентов MAVLink с помощью mavlinkio объект. Используйте mavlinksub объект для получения последних принятых сообщений и функции вызова для обработки вновь принятых сообщений.

Создание

Описание

sub = mavlinksub(mavlink) подписывается на все разделы из всех клиентов, подключенных через mavlinkio объект. Этот синтаксис задает Client свойство для "Any".

sub = mavlinksub(mavlink,topic) подписывается на определенный раздел, указанный как строка или целое число, от всех клиентов, подключенных через mavlinkio объект. Функция устанавливает topic входные данные для Topic собственность.

sub = mavlinksub(mavlink,client) подписывается на все разделы клиента, указанного как mavlinkclient объект. Функция устанавливает Client для этого клиента ввода.

пример

sub = mavlinksub(mavlink,client,topic) подписывается на определенный раздел на определенном клиенте. Функция устанавливает Client и Topic свойства.

sub = mavlinksub(___,Name,Value) дополнительно определяет BuffferSize или NewMessageFcn с использованием пар имя-значение и предыдущих синтаксисов. Name input - одно из имен свойств.

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Свойства

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

Клиентская информация о принятом сообщении, указанная как mavlinkclient объект. Значение по умолчанию "Any" означает, что абонент прослушивает всех клиентов, подключенных через mavlinkio объект.

Имя темы, которую прослушивает подписчик, указанное как строка. Значение по умолчанию "Any" означает, что абонент прослушивает все темы на клиенте.

Пример: "HEARTBEAT"

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

Длина буфера сообщений, заданная как положительное целое число. Это значение является максимальным количеством сообщений, которое может быть сохранено в этом абоненте.

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

Функция обратного вызова для новых сообщений, заданная как дескриптор функции. Эта функция вызывается при получении клиентом нового сообщения. Дескриптор функции имеет следующий синтаксис:

callback(sub,msg)
sub - структура с полями для Client, Topic, и BufferSize свойства mavlinksub объект. msg - это сообщение, полученное в виде структуры с полями:

  • MsgID - Положительное целое число для идентификатора сообщения.

  • SystemID -- Идентификатор системы клиента MAVLink, отправившего сообщение.

  • ComponentID-- Идентификатор компонента клиента MAVLink, отправившего сообщение.

  • Payload - Структура, содержащая поля на основе определения сообщения.

  • Seq - Положительное целое число для последовательности сообщений.

Payload - структура, определяемая определением сообщения для диалекта MAVLink.

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

Функции объекта

latestmsgsПолучены сообщения от абонента MAVLink

Примеры

свернуть все

Подключение к клиенту MAVLink.

mavlink = mavlinkio("common.xml")
mavlink = 
  mavlinkio with properties:

        Dialect: [1x1 mavlinkdialect]
    LocalClient: [1x1 struct]

connect(mavlink,"UDP")
ans = 
"Connection1"

Получить сведения о клиенте.

client = mavlinkclient(mavlink,1,1);

Подпишитесь на "HEARTBEAT" тема.

heartbeat = mavlinksub(mavlink,client,'HEARTBEAT');

Получите последнее сообщение. Необходимо дождаться получения сообщения. В настоящее время сообщение пульса не получено на mavlink объект.

latestmsgs(heartbeat,1)
ans = 

  1x0 empty struct array with fields:

    MsgID
    SystemID
    ComponentID
    Payload
    Seq

Отключить от клиента.

disconnect(mavlink)
Представлен в R2019a