mavlinksub

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

Описание

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

Примечание

Этот объект требует, чтобы вы установили Библиотеку UAV для Robotics System Toolbox™. Чтобы установить дополнения, используйте roboticsAddons и выберите желаемое дополнение.

Создание

Описание

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 вход является одним из имен свойства.

Задайте дополнительные разделенные запятой пары 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 – Системный ID клиента MAVLink, который отправил сообщение.

  • ComponentID– ID компонента клиента MAVLink, который отправил сообщение.

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

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

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

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

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

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

Примеры

свернуть все

ПРИМЕЧАНИЕ: Этот пример требует, чтобы вы установили Библиотеку UAV для Robotics System Toolbox®. Вызовите roboticsAddons открыть Проводник Дополнений и установить библиотеку.

Соединитесь с клиентом 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');

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

latestmsgs(heartbeat,1)
ans = 

  1x0 empty struct array with fields:

    MsgID
    SystemID
    ComponentID
    Payload
    Seq

Разъединитесь от клиента.

disconnect(mavlink)

Введенный в R2019a

Для просмотра документации необходимо авторизоваться на сайте