mavlinksub

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

Описание

The 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 свойства с использованием пар "имя-значение" и предыдущих синтаксисов. The Name вход является одним из имен свойства.

Задайте необязательные разделенные разделенными запятой парами 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 - Положительное целое число для последовательности сообщений.

The 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