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

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