mavlinkio

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

Описание

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

Создание

Описание

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

пример

mavlink = mavlinkio(dialectXML) непосредственно задает XML-файл для определений сообщений в качестве имени файла. A 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");

Создайте объект для хранения информации о клиенте. Укажите систему и идентификатор компонента.

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

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

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

disconnect(mavlink)

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

ПРИМЕЧАНИЕ. Этот пример требует установки библиотеки БПЛА для 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" тема сообщения с идентификатором, равным 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