mavlinkdialect

Проанализируйте и сохраните диалект MAVLink XML

Описание

Объект mavlinkdialect анализирует и хранит сообщение и перечислимые определения, извлеченные из файла определения сообщения MAVLink (.xml). Файлы определения сообщения задают сообщения, поддержанные для этого определенного диалекта. Структура определений сообщения задана протоколом сообщения MAVLink.

Примечание

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

Создание

Синтаксис

dialect = mavlinkdialect("common.xml")
dialect = mavlinkdialect(dialectXML)
dialect = mavlinkdialect(dialectXML,version)

Описание

пример

dialect = mavlinkdialect("common.xml") создает диалект MAVLink с помощью файла common.xml для стандартных сообщений MAVLink.

dialect = mavlinkdialect(dialectXML) задает XML-файл для парсинга определений сообщения. Вход устанавливает свойство DialectXML.

dialect = mavlinkdialect(dialectXML,version) дополнительно задает версию протокола MAVLink. Входные параметры устанавливают свойства DialectXML и Version, соответственно.

Свойства

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

Имя диалекта MAVLink, заданное как строка. Это имя основано на имени XML-файла.

Пример: "ardupilotmega"

Типы данных: char | string

Версия протокола MAVLink, заданная как или 1 или 2.

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

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

createcmdСоздайте сообщение команды MAVLink
createmsgСоздайте сообщение MAVLink
deserializemsgДесериализуйте сообщение MAVLink от бинарного буфера
msginfoПередайте определение для идентификатора сообщения
enuminfoПеречислимое определение для перечислимого ID
enum2numПеречисление значений для данной записи
num2enumПеречислимая запись для данного значения

Примеры

свернуть все

Этот пример показывает, как проанализировать XML-файл MAVLink и создать сообщения и команды из определений.

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

Проанализируйте и сохраните диалект MAVLink XML. Задайте путь XML. Диалект "common.xml" по умолчанию обеспечивается. Этот XML-файл содержит все сообщение и перечислимые определения.

dialect = mavlinkdialect("common.xml");

Создайте команду MAVLink из перечисления MAV_CMD, которое является перечислением команд MAVLink, чтобы отправить к UAV. Задайте установку как "int" или "long" и тип как целое число или строка.

cmdMsg = createcmd(dialect,"long",22)
cmdMsg = struct with fields:
      MsgID: 76
    Payload: [1x1 struct]

Проверьте название команды с помощью num2enum. Команда 22 является командой взлета для UAV. Можно преобразовать назад в ID с помощью enum2num. Ваш диалект может содержать много различных перечислений с различными именами и идентификаторами.

cmdName = num2enum(dialect,"MAV_CMD",22)
cmdName = 
"MAV_CMD_NAV_TAKEOFF"
cmdID = enum2num(dialect,"MAV_CMD",cmdName)
cmdID = 22

Используйте enuminfo, чтобы просмотреть таблицу записей перечисления MAV_CMD.

info = enuminfo(dialect,"MAV_CMD");
info.Entries{:}
ans=133×3 table
                    Name                     Value                                                                                                                                                                              Description                                                                                                                                                                          
    _____________________________________    _____    _______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

    "MAV_CMD_NAV_WAYPOINT"                    16      "Navigate to waypoint."                                                                                                                                                                                                                                                                                                                                        
    "MAV_CMD_NAV_LOITER_UNLIM"                17      "Loiter around this waypoint an unlimited amount of time"                                                                                                                                                                                                                                                                                                      
    "MAV_CMD_NAV_LOITER_TURNS"                18      "Loiter around this waypoint for X turns"                                                                                                                                                                                                                                                                                                                      
    "MAV_CMD_NAV_LOITER_TIME"                 19      "Loiter around this waypoint for X seconds"                                                                                                                                                                                                                                                                                                                    
    "MAV_CMD_NAV_RETURN_TO_LAUNCH"            20      "Return to launch location"                                                                                                                                                                                                                                                                                                                                    
    "MAV_CMD_NAV_LAND"                        21      "Land at location"                                                                                                                                                                                                                                                                                                                                             
    "MAV_CMD_NAV_TAKEOFF"                     22      "Takeoff from ground / hand"                                                                                                                                                                                                                                                                                                                                   
    "MAV_CMD_NAV_LAND_LOCAL"                  23      "Land at local position (local frame only)"                                                                                                                                                                                                                                                                                                                    
    "MAV_CMD_NAV_TAKEOFF_LOCAL"               24      "Takeoff from local position (local frame only)"                                                                                                                                                                                                                                                                                                               
    "MAV_CMD_NAV_FOLLOW"                      25      "Vehicle following, i.e. this waypoint represents the position of a moving vehicle"                                                                                                                                                                                                                                                                            
    "MAV_CMD_NAV_CONTINUE_AND_CHANGE_ALT"     30      "Continue on the current course and climb/descend to specified altitude. When the altitude is reached continue to the next command (i.e., don't proceed to the next command until the desired altitude is reached."                                                                                                                                            
    "MAV_CMD_NAV_LOITER_TO_ALT"               31      "Begin loiter at the specified Latitude and Longitude. If Lat=Lon=0, then loiter at the current position. Don't consider the navigation command complete (don't leave loiter) until the altitude has been reached. Additionally, if the Heading Required parameter is non-zero the aircraft will not leave the loiter until heading toward the next waypoint. "
    "MAV_CMD_DO_FOLLOW"                       32      "Being following a target"                                                                                                                                                                                                                                                                                                                                     
    "MAV_CMD_DO_FOLLOW_REPOSITION"            33      "Reposition the MAV after a follow target command has been sent"                                                                                                                                                                                                                                                                                               
    "MAV_CMD_DO_ORBIT"                        34      "Start orbiting on the circumference of a circle defined by the parameters. Setting any value NaN results in using defaults."                                                                                                                                                                                                                                  
    "MAV_CMD_NAV_ROI"                         80      "Sets the region of interest (ROI) for a sensor set or the vehicle itself. This can then be used by the vehicles control system to control the vehicle attitude and the attitude of various sensors such as cameras."                                                                                                                                          
      ⋮

Запросите диалект для определенного идентификатора сообщения. Создайте пустое сообщение MAVLink с помощью идентификатора сообщения.

info = msginfo(dialect,"HEARTBEAT")
info=1×4 table
    MessageID    MessageName                                                                                                                                Description                                                                                                                                  Fields   
    _________    ___________    ___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________    ___________

        0        "HEARTBEAT"    "The heartbeat message shows that a system is present and responding. The type of the MAV and Autopilot hardware allow the receiving system to treat further messages from this system appropriate (e.g. by laying out the user interface based on the autopilot)."    [6x6 table]

msg = createmsg(dialect,info.MessageID);

Введенный в R2019a