mavlinkio

Соединитесь с клиентами MAVLink, чтобы обмениваться сообщениями

Описание

mavlinkio возразите подключениям с клиентами MAVLink через порты UDP, чтобы обмениваться сообщениями с БПЛА (беспилотные воздушные транспортные средства) использование протоколов связи MAVLink.

Создание

Описание

mavlink = mavlinkio(msgDefinitions) создает интерфейс, чтобы соединиться с клиентами MAVLink, использующими вход mavlinkdialect объект, который задает определения сообщения. Этот объект диалекта установлен непосредственно в Dialect свойство.

пример

mavlink = mavlinkio(dialectXML) непосредственно задает XML-файл для определений сообщения как имя файла. mavlinkdialect создается с помощью этого XML-файла и устанавливается в Dialect свойство

mavlink = mavlinkio(dialectXML,version) дополнительно задает версию протокола MAVLink как любой 1 или 2.

mavlink = mavlinkio(___,Name,Value) дополнительно задает аргументы с помощью следующих пар "имя-значение".

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

Пары "имя-значение" непосредственно устанавливают информацию о клиенте MAVLink в LocalClient свойство. Смотрите LocalClient для большего количества информации о том, какие значения могут быть установлены.

Свойства

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

Диалект MAVLink в виде mavlinkdialect объект. Диалект задает структуру сообщения для протокола MAVLink.

Это свойство доступно только для чтения.

Локальная информация о клиенте в виде структуры. Локальный клиент является настройкой в MATLAB®, чтобы связаться с другими клиентами MAVLink. Структура содержит следующие поля:

  • SystemID

  • ComponentID

  • ComponentType

  • AutopilotType

Устанавливать эти значения при создании mavlinkio объект, используйте пары "имя-значение". Например:

mavlink = mavlinkio("common.xml","SystemID",1,"ComponentID",1)

Это свойство является ненастраиваемым, когда вы соединяетесь с клиентом MAVLink. Для получения дополнительной информации смотрите mavlinkclient.

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

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

connectСоединитесь с клиентами MAVLink через порт UDP
disconnectРазъединитесь от клиентов MAVLink
sendmsgОтправьте сообщение MAVLink
sendudpmsgОтправьте сообщение MAVLink в порт UDP
serializemsgСериализируйте сообщение MAVLink к бинарному буферу
listConnectionsПеречислите все активные связи MAVLink
listClientsПеречислите все соединили клиенты MAVLink
listTopicsПеречислите все темы, полученные клиентом MAVLink

Примеры

свернуть все

Соединитесь с клиентом MAVLink.

mavlink = mavlinkio("common.xml");
connect(mavlink,"UDP");

Создайте объект для того, чтобы хранить клиентскую информацию. Задайте систему и ID компонента.

client = mavlinkclient(mavlink,1,1)
client = 
  mavlinkclient with properties:

         SystemID: 1
      ComponentID: 1
    ComponentType: "Unknown"
    AutopilotType: "Unknown"

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

disconnect(mavlink)

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

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

Соединитесь с клиентом MAVLink, использующим "common.xml" диалект. Этот локальный клиент связывается с любыми другими клиентами через порт UDP.

dialect = mavlinkdialect("common.xml");
mavlink = mavlinkio(dialect);
connect(mavlink,"UDP")
ans = 
"Connection1"

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

listClients(mavlink)
ans=1×4 table
    SystemID    ComponentID    ComponentType          AutopilotType     
    ________    ___________    ______________    _______________________

      255            1         "MAV_TYPE_GCS"    "MAV_AUTOPILOT_INVALID"

listConnections(mavlink)
ans=1×2 table
    ConnectionName      ConnectionInfo   
    ______________    ___________________

    "Connection1"     "UDP@0.0.0.0:38489"

listTopics(mavlink)
ans =

  0x5 empty table

Создайте подписчика для получения сообщений на клиенте. Этот подписчик прислушивается к "HEARTBEAT" передайте тему с ID, равным 0.

sub = mavlinksub(mavlink,0);

Создайте "HEARTBEAT" сообщение с помощью mavlinkdialect объект. Укажите информацию полезной нагрузки и отправьте сообщение по клиенту MAVLink.

msg = createmsg(dialect,"HEARTBEAT");
msg.Payload.type(:) = enum2num(dialect,'MAV_TYPE','MAV_TYPE_QUADROTOR');
sendmsg(mavlink,msg)

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

disconnect(mavlink)
Введенный в R2019a