Commit 7d6be862 authored by PX4BuildBot's avatar PX4BuildBot

autogenerated headers for rev...

autogenerated headers for rev https://github.com/mavlink/mavlink/tree/a5e3138d15461f951b701582dd23c304b5a3bc01
parent 96fa1921
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#ifndef MAVLINK_VERSION_H #ifndef MAVLINK_VERSION_H
#define MAVLINK_VERSION_H #define MAVLINK_VERSION_H
#define MAVLINK_BUILD_DATE "Fri Aug 28 2020" #define MAVLINK_BUILD_DATE "Mon Aug 31 2020"
#define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0"
#define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255 #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#ifndef MAVLINK_VERSION_H #ifndef MAVLINK_VERSION_H
#define MAVLINK_VERSION_H #define MAVLINK_VERSION_H
#define MAVLINK_BUILD_DATE "Fri Aug 28 2020" #define MAVLINK_BUILD_DATE "Mon Aug 31 2020"
#define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0"
#define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255 #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#ifndef MAVLINK_VERSION_H #ifndef MAVLINK_VERSION_H
#define MAVLINK_VERSION_H #define MAVLINK_VERSION_H
#define MAVLINK_BUILD_DATE "Fri Aug 28 2020" #define MAVLINK_BUILD_DATE "Mon Aug 31 2020"
#define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0"
#define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255 #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255
......
...@@ -34,79 +34,6 @@ extern "C" { ...@@ -34,79 +34,6 @@ extern "C" {
// ENUM DEFINITIONS // ENUM DEFINITIONS
/** @brief Micro air vehicle / autopilot classes. This identifies the individual model. */
#ifndef HAVE_ENUM_MAV_AUTOPILOT
#define HAVE_ENUM_MAV_AUTOPILOT
typedef enum MAV_AUTOPILOT
{
MAV_AUTOPILOT_GENERIC=0, /* Generic autopilot, full support for everything | */
MAV_AUTOPILOT_RESERVED=1, /* Reserved for future use. | */
MAV_AUTOPILOT_SLUGS=2, /* SLUGS autopilot, http://slugsuav.soe.ucsc.edu | */
MAV_AUTOPILOT_ARDUPILOTMEGA=3, /* ArduPilot - Plane/Copter/Rover/Sub/Tracker, https://ardupilot.org | */
MAV_AUTOPILOT_OPENPILOT=4, /* OpenPilot, http://openpilot.org | */
MAV_AUTOPILOT_GENERIC_WAYPOINTS_ONLY=5, /* Generic autopilot only supporting simple waypoints | */
MAV_AUTOPILOT_GENERIC_WAYPOINTS_AND_SIMPLE_NAVIGATION_ONLY=6, /* Generic autopilot supporting waypoints and other simple navigation commands | */
MAV_AUTOPILOT_GENERIC_MISSION_FULL=7, /* Generic autopilot supporting the full mission command set | */
MAV_AUTOPILOT_INVALID=8, /* No valid autopilot, e.g. a GCS or other MAVLink component | */
MAV_AUTOPILOT_PPZ=9, /* PPZ UAV - http://nongnu.org/paparazzi | */
MAV_AUTOPILOT_UDB=10, /* UAV Dev Board | */
MAV_AUTOPILOT_FP=11, /* FlexiPilot | */
MAV_AUTOPILOT_PX4=12, /* PX4 Autopilot - http://px4.io/ | */
MAV_AUTOPILOT_SMACCMPILOT=13, /* SMACCMPilot - http://smaccmpilot.org | */
MAV_AUTOPILOT_AUTOQUAD=14, /* AutoQuad -- http://autoquad.org | */
MAV_AUTOPILOT_ARMAZILA=15, /* Armazila -- http://armazila.com | */
MAV_AUTOPILOT_AEROB=16, /* Aerob -- http://aerob.ru | */
MAV_AUTOPILOT_ASLUAV=17, /* ASLUAV autopilot -- http://www.asl.ethz.ch | */
MAV_AUTOPILOT_SMARTAP=18, /* SmartAP Autopilot - http://sky-drones.com | */
MAV_AUTOPILOT_AIRRAILS=19, /* AirRails - http://uaventure.com | */
MAV_AUTOPILOT_ENUM_END=20, /* | */
} MAV_AUTOPILOT;
#endif
/** @brief MAVLINK component type reported in HEARTBEAT message. Flight controllers must report the type of the vehicle on which they are mounted (e.g. MAV_TYPE_OCTOROTOR). All other components must report a value appropriate for their type (e.g. a camera must use MAV_TYPE_CAMERA). */
#ifndef HAVE_ENUM_MAV_TYPE
#define HAVE_ENUM_MAV_TYPE
typedef enum MAV_TYPE
{
MAV_TYPE_GENERIC=0, /* Generic micro air vehicle | */
MAV_TYPE_FIXED_WING=1, /* Fixed wing aircraft. | */
MAV_TYPE_QUADROTOR=2, /* Quadrotor | */
MAV_TYPE_COAXIAL=3, /* Coaxial helicopter | */
MAV_TYPE_HELICOPTER=4, /* Normal helicopter with tail rotor. | */
MAV_TYPE_ANTENNA_TRACKER=5, /* Ground installation | */
MAV_TYPE_GCS=6, /* Operator control unit / ground control station | */
MAV_TYPE_AIRSHIP=7, /* Airship, controlled | */
MAV_TYPE_FREE_BALLOON=8, /* Free balloon, uncontrolled | */
MAV_TYPE_ROCKET=9, /* Rocket | */
MAV_TYPE_GROUND_ROVER=10, /* Ground rover | */
MAV_TYPE_SURFACE_BOAT=11, /* Surface vessel, boat, ship | */
MAV_TYPE_SUBMARINE=12, /* Submarine | */
MAV_TYPE_HEXAROTOR=13, /* Hexarotor | */
MAV_TYPE_OCTOROTOR=14, /* Octorotor | */
MAV_TYPE_TRICOPTER=15, /* Tricopter | */
MAV_TYPE_FLAPPING_WING=16, /* Flapping wing | */
MAV_TYPE_KITE=17, /* Kite | */
MAV_TYPE_ONBOARD_CONTROLLER=18, /* Onboard companion controller | */
MAV_TYPE_VTOL_DUOROTOR=19, /* Two-rotor VTOL using control surfaces in vertical operation in addition. Tailsitter. | */
MAV_TYPE_VTOL_QUADROTOR=20, /* Quad-rotor VTOL using a V-shaped quad config in vertical operation. Tailsitter. | */
MAV_TYPE_VTOL_TILTROTOR=21, /* Tiltrotor VTOL | */
MAV_TYPE_VTOL_RESERVED2=22, /* VTOL reserved 2 | */
MAV_TYPE_VTOL_RESERVED3=23, /* VTOL reserved 3 | */
MAV_TYPE_VTOL_RESERVED4=24, /* VTOL reserved 4 | */
MAV_TYPE_VTOL_RESERVED5=25, /* VTOL reserved 5 | */
MAV_TYPE_GIMBAL=26, /* Gimbal | */
MAV_TYPE_ADSB=27, /* ADSB system | */
MAV_TYPE_PARAFOIL=28, /* Steerable, nonrigid airfoil | */
MAV_TYPE_DODECAROTOR=29, /* Dodecarotor | */
MAV_TYPE_CAMERA=30, /* Camera | */
MAV_TYPE_CHARGING_STATION=31, /* Charging station | */
MAV_TYPE_FLARM=32, /* FLARM collision avoidance system | */
MAV_TYPE_SERVO=33, /* Servo | */
MAV_TYPE_ODID=34, /* Open Drone ID. See https://mavlink.io/en/services/opendroneid.html. | */
MAV_TYPE_ENUM_END=35, /* | */
} MAV_TYPE;
#endif
/** @brief These values define the type of firmware release. These values indicate the first version or release of this type. For example the first alpha release would be 64, the second would be 65. */ /** @brief These values define the type of firmware release. These values indicate the first version or release of this type. For example the first alpha release would be 64, the second would be 65. */
#ifndef HAVE_ENUM_FIRMWARE_VERSION_TYPE #ifndef HAVE_ENUM_FIRMWARE_VERSION_TYPE
#define HAVE_ENUM_FIRMWARE_VERSION_TYPE #define HAVE_ENUM_FIRMWARE_VERSION_TYPE
...@@ -144,40 +71,6 @@ typedef enum HL_FAILURE_FLAG ...@@ -144,40 +71,6 @@ typedef enum HL_FAILURE_FLAG
} HL_FAILURE_FLAG; } HL_FAILURE_FLAG;
#endif #endif
/** @brief These flags encode the MAV mode. */
#ifndef HAVE_ENUM_MAV_MODE_FLAG
#define HAVE_ENUM_MAV_MODE_FLAG
typedef enum MAV_MODE_FLAG
{
MAV_MODE_FLAG_CUSTOM_MODE_ENABLED=1, /* 0b00000001 Reserved for future use. | */
MAV_MODE_FLAG_TEST_ENABLED=2, /* 0b00000010 system has a test mode enabled. This flag is intended for temporary system tests and should not be used for stable implementations. | */
MAV_MODE_FLAG_AUTO_ENABLED=4, /* 0b00000100 autonomous mode enabled, system finds its own goal positions. Guided flag can be set or not, depends on the actual implementation. | */
MAV_MODE_FLAG_GUIDED_ENABLED=8, /* 0b00001000 guided mode enabled, system flies waypoints / mission items. | */
MAV_MODE_FLAG_STABILIZE_ENABLED=16, /* 0b00010000 system stabilizes electronically its attitude (and optionally position). It needs however further control inputs to move around. | */
MAV_MODE_FLAG_HIL_ENABLED=32, /* 0b00100000 hardware in the loop simulation. All motors / actuators are blocked, but internal software is full operational. | */
MAV_MODE_FLAG_MANUAL_INPUT_ENABLED=64, /* 0b01000000 remote control input is enabled. | */
MAV_MODE_FLAG_SAFETY_ARMED=128, /* 0b10000000 MAV safety set to armed. Motors are enabled / running / can start. Ready to fly. Additional note: this flag is to be ignore when sent in the command MAV_CMD_DO_SET_MODE and MAV_CMD_COMPONENT_ARM_DISARM shall be used instead. The flag can still be used to report the armed state. | */
MAV_MODE_FLAG_ENUM_END=129, /* | */
} MAV_MODE_FLAG;
#endif
/** @brief These values encode the bit positions of the decode position. These values can be used to read the value of a flag bit by combining the base_mode variable with AND with the flag position value. The result will be either 0 or 1, depending on if the flag is set or not. */
#ifndef HAVE_ENUM_MAV_MODE_FLAG_DECODE_POSITION
#define HAVE_ENUM_MAV_MODE_FLAG_DECODE_POSITION
typedef enum MAV_MODE_FLAG_DECODE_POSITION
{
MAV_MODE_FLAG_DECODE_POSITION_CUSTOM_MODE=1, /* Eighth bit: 00000001 | */
MAV_MODE_FLAG_DECODE_POSITION_TEST=2, /* Seventh bit: 00000010 | */
MAV_MODE_FLAG_DECODE_POSITION_AUTO=4, /* Sixth bit: 00000100 | */
MAV_MODE_FLAG_DECODE_POSITION_GUIDED=8, /* Fifth bit: 00001000 | */
MAV_MODE_FLAG_DECODE_POSITION_STABILIZE=16, /* Fourth bit: 00010000 | */
MAV_MODE_FLAG_DECODE_POSITION_HIL=32, /* Third bit: 00100000 | */
MAV_MODE_FLAG_DECODE_POSITION_MANUAL=64, /* Second bit: 01000000 | */
MAV_MODE_FLAG_DECODE_POSITION_SAFETY=128, /* First bit: 10000000 | */
MAV_MODE_FLAG_DECODE_POSITION_ENUM_END=129, /* | */
} MAV_MODE_FLAG_DECODE_POSITION;
#endif
/** @brief Actions that may be specified in MAV_CMD_OVERRIDE_GOTO to override mission execution. */ /** @brief Actions that may be specified in MAV_CMD_OVERRIDE_GOTO to override mission execution. */
#ifndef HAVE_ENUM_MAV_GOTO #ifndef HAVE_ENUM_MAV_GOTO
#define HAVE_ENUM_MAV_GOTO #define HAVE_ENUM_MAV_GOTO
...@@ -212,162 +105,6 @@ typedef enum MAV_MODE ...@@ -212,162 +105,6 @@ typedef enum MAV_MODE
} MAV_MODE; } MAV_MODE;
#endif #endif
/** @brief */
#ifndef HAVE_ENUM_MAV_STATE
#define HAVE_ENUM_MAV_STATE
typedef enum MAV_STATE
{
MAV_STATE_UNINIT=0, /* Uninitialized system, state is unknown. | */
MAV_STATE_BOOT=1, /* System is booting up. | */
MAV_STATE_CALIBRATING=2, /* System is calibrating and not flight-ready. | */
MAV_STATE_STANDBY=3, /* System is grounded and on standby. It can be launched any time. | */
MAV_STATE_ACTIVE=4, /* System is active and might be already airborne. Motors are engaged. | */
MAV_STATE_CRITICAL=5, /* System is in a non-normal flight mode. It can however still navigate. | */
MAV_STATE_EMERGENCY=6, /* System is in a non-normal flight mode. It lost control over parts or over the whole airframe. It is in mayday and going down. | */
MAV_STATE_POWEROFF=7, /* System just initialized its power-down sequence, will shut down now. | */
MAV_STATE_FLIGHT_TERMINATION=8, /* System is terminating itself. | */
MAV_STATE_ENUM_END=9, /* | */
} MAV_STATE;
#endif
/** @brief Component ids (values) for the different types and instances of onboard hardware/software that might make up a MAVLink system (autopilot, cameras, servos, GPS systems, avoidance systems etc.).
Components must use the appropriate ID in their source address when sending messages. Components can also use IDs to determine if they are the intended recipient of an incoming message. The MAV_COMP_ID_ALL value is used to indicate messages that must be processed by all components.
When creating new entries, components that can have multiple instances (e.g. cameras, servos etc.) should be allocated sequential values. An appropriate number of values should be left free after these components to allow the number of instances to be expanded. */
#ifndef HAVE_ENUM_MAV_COMPONENT
#define HAVE_ENUM_MAV_COMPONENT
typedef enum MAV_COMPONENT
{
MAV_COMP_ID_ALL=0, /* Target id (target_component) used to broadcast messages to all components of the receiving system. Components should attempt to process messages with this component ID and forward to components on any other interfaces. Note: This is not a valid *source* component id for a message. | */
MAV_COMP_ID_AUTOPILOT1=1, /* System flight controller component ("autopilot"). Only one autopilot is expected in a particular system. | */
MAV_COMP_ID_USER1=25, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER2=26, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER3=27, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER4=28, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER5=29, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER6=30, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER7=31, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER8=32, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER9=33, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER10=34, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER11=35, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER12=36, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER13=37, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER14=38, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER15=39, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER16=40, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER17=41, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER18=42, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER19=43, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER20=44, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER21=45, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER22=46, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER23=47, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER24=48, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER25=49, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER26=50, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER27=51, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER28=52, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER29=53, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER30=54, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER31=55, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER32=56, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER33=57, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER34=58, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER35=59, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER36=60, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER37=61, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER38=62, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER39=63, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER40=64, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER41=65, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER42=66, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER43=67, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_TELEMETRY_RADIO=68, /* Telemetry radio (e.g. SiK radio, or other component that emits RADIO_STATUS messages). | */
MAV_COMP_ID_USER45=69, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER46=70, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER47=71, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER48=72, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER49=73, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER50=74, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER51=75, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER52=76, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER53=77, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER54=78, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER55=79, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER56=80, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER57=81, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER58=82, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER59=83, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER60=84, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER61=85, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER62=86, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER63=87, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER64=88, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER65=89, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER66=90, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER67=91, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER68=92, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER69=93, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER70=94, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER71=95, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER72=96, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER73=97, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER74=98, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER75=99, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_CAMERA=100, /* Camera #1. | */
MAV_COMP_ID_CAMERA2=101, /* Camera #2. | */
MAV_COMP_ID_CAMERA3=102, /* Camera #3. | */
MAV_COMP_ID_CAMERA4=103, /* Camera #4. | */
MAV_COMP_ID_CAMERA5=104, /* Camera #5. | */
MAV_COMP_ID_CAMERA6=105, /* Camera #6. | */
MAV_COMP_ID_SERVO1=140, /* Servo #1. | */
MAV_COMP_ID_SERVO2=141, /* Servo #2. | */
MAV_COMP_ID_SERVO3=142, /* Servo #3. | */
MAV_COMP_ID_SERVO4=143, /* Servo #4. | */
MAV_COMP_ID_SERVO5=144, /* Servo #5. | */
MAV_COMP_ID_SERVO6=145, /* Servo #6. | */
MAV_COMP_ID_SERVO7=146, /* Servo #7. | */
MAV_COMP_ID_SERVO8=147, /* Servo #8. | */
MAV_COMP_ID_SERVO9=148, /* Servo #9. | */
MAV_COMP_ID_SERVO10=149, /* Servo #10. | */
MAV_COMP_ID_SERVO11=150, /* Servo #11. | */
MAV_COMP_ID_SERVO12=151, /* Servo #12. | */
MAV_COMP_ID_SERVO13=152, /* Servo #13. | */
MAV_COMP_ID_SERVO14=153, /* Servo #14. | */
MAV_COMP_ID_GIMBAL=154, /* Gimbal #1. | */
MAV_COMP_ID_LOG=155, /* Logging component. | */
MAV_COMP_ID_ADSB=156, /* Automatic Dependent Surveillance-Broadcast (ADS-B) component. | */
MAV_COMP_ID_OSD=157, /* On Screen Display (OSD) devices for video links. | */
MAV_COMP_ID_PERIPHERAL=158, /* Generic autopilot peripheral component ID. Meant for devices that do not implement the parameter microservice. | */
MAV_COMP_ID_QX1_GIMBAL=159, /* Gimbal ID for QX1. | */
MAV_COMP_ID_FLARM=160, /* FLARM collision alert component. | */
MAV_COMP_ID_GIMBAL2=171, /* Gimbal #2. | */
MAV_COMP_ID_GIMBAL3=172, /* Gimbal #3. | */
MAV_COMP_ID_GIMBAL4=173, /* Gimbal #4 | */
MAV_COMP_ID_GIMBAL5=174, /* Gimbal #5. | */
MAV_COMP_ID_GIMBAL6=175, /* Gimbal #6. | */
MAV_COMP_ID_MISSIONPLANNER=190, /* Component that can generate/supply a mission flight plan (e.g. GCS or developer API). | */
MAV_COMP_ID_ONBOARD_COMPUTER=191, /* Component that lives on the onboard computer (companion computer) and has some generic functionalities, such as settings system parameters and monitoring the status of some processes that don't directly speak mavlink and so on. | */
MAV_COMP_ID_PATHPLANNER=195, /* Component that finds an optimal path between points based on a certain constraint (e.g. minimum snap, shortest path, cost, etc.). | */
MAV_COMP_ID_OBSTACLE_AVOIDANCE=196, /* Component that plans a collision free path between two points. | */
MAV_COMP_ID_VISUAL_INERTIAL_ODOMETRY=197, /* Component that provides position estimates using VIO techniques. | */
MAV_COMP_ID_PAIRING_MANAGER=198, /* Component that manages pairing of vehicle and GCS. | */
MAV_COMP_ID_IMU=200, /* Inertial Measurement Unit (IMU) #1. | */
MAV_COMP_ID_IMU_2=201, /* Inertial Measurement Unit (IMU) #2. | */
MAV_COMP_ID_IMU_3=202, /* Inertial Measurement Unit (IMU) #3. | */
MAV_COMP_ID_GPS=220, /* GPS #1. | */
MAV_COMP_ID_GPS2=221, /* GPS #2. | */
MAV_COMP_ID_ODID_TXRX_1=236, /* Open Drone ID transmitter/receiver (Bluetooth/WiFi/Internet). | */
MAV_COMP_ID_ODID_TXRX_2=237, /* Open Drone ID transmitter/receiver (Bluetooth/WiFi/Internet). | */
MAV_COMP_ID_ODID_TXRX_3=238, /* Open Drone ID transmitter/receiver (Bluetooth/WiFi/Internet). | */
MAV_COMP_ID_UDP_BRIDGE=240, /* Component to bridge MAVLink to UDP (i.e. from a UART). | */
MAV_COMP_ID_UART_BRIDGE=241, /* Component to bridge to UART (i.e. from UDP). | */
MAV_COMP_ID_TUNNEL_NODE=242, /* Component handling TUNNEL messages (e.g. vendor specific GUI of a component). | */
MAV_COMP_ID_SYSTEM_CONTROL=250, /* Component for handling system messages (e.g. to ARM, takeoff, etc.). | */
MAV_COMPONENT_ENUM_END=251, /* | */
} MAV_COMPONENT;
#endif
/** @brief These encode the sensors whose status is sent as part of the SYS_STATUS message. */ /** @brief These encode the sensors whose status is sent as part of the SYS_STATUS message. */
#ifndef HAVE_ENUM_MAV_SYS_STATUS_SENSOR #ifndef HAVE_ENUM_MAV_SYS_STATUS_SENSOR
#define HAVE_ENUM_MAV_SYS_STATUS_SENSOR #define HAVE_ENUM_MAV_SYS_STATUS_SENSOR
...@@ -2407,7 +2144,6 @@ typedef enum MAV_WINCH_STATUS_FLAG ...@@ -2407,7 +2144,6 @@ typedef enum MAV_WINCH_STATUS_FLAG
#endif #endif
// MESSAGE DEFINITIONS // MESSAGE DEFINITIONS
#include "./mavlink_msg_heartbeat.h"
#include "./mavlink_msg_sys_status.h" #include "./mavlink_msg_sys_status.h"
#include "./mavlink_msg_system_time.h" #include "./mavlink_msg_system_time.h"
#include "./mavlink_msg_ping.h" #include "./mavlink_msg_ping.h"
...@@ -2578,7 +2314,6 @@ typedef enum MAV_WINCH_STATUS_FLAG ...@@ -2578,7 +2314,6 @@ typedef enum MAV_WINCH_STATUS_FLAG
#include "./mavlink_msg_esc_info.h" #include "./mavlink_msg_esc_info.h"
#include "./mavlink_msg_esc_status.h" #include "./mavlink_msg_esc_status.h"
#include "./mavlink_msg_wifi_config_ap.h" #include "./mavlink_msg_wifi_config_ap.h"
#include "./mavlink_msg_protocol_version.h"
#include "./mavlink_msg_ais_vessel.h" #include "./mavlink_msg_ais_vessel.h"
#include "./mavlink_msg_uavcan_node_status.h" #include "./mavlink_msg_uavcan_node_status.h"
#include "./mavlink_msg_uavcan_node_info.h" #include "./mavlink_msg_uavcan_node_info.h"
...@@ -2622,7 +2357,7 @@ typedef enum MAV_WINCH_STATUS_FLAG ...@@ -2622,7 +2357,7 @@ typedef enum MAV_WINCH_STATUS_FLAG
#include "./mavlink_msg_open_drone_id_message_pack.h" #include "./mavlink_msg_open_drone_id_message_pack.h"
// base include // base include
#include "../minimal/minimal.h"
#undef MAVLINK_THIS_XML_IDX #undef MAVLINK_THIS_XML_IDX
#define MAVLINK_THIS_XML_IDX 1 #define MAVLINK_THIS_XML_IDX 1
......
#pragma once
// MESSAGE HEARTBEAT PACKING
#define MAVLINK_MSG_ID_HEARTBEAT 0
typedef struct __mavlink_heartbeat_t {
uint32_t custom_mode; /*< A bitfield for use for autopilot-specific flags*/
uint8_t type; /*< Vehicle or component type. For a flight controller component the vehicle type (quadrotor, helicopter, etc.). For other components the component type (e.g. camera, gimbal, etc.). This should be used in preference to component id for identifying the component type.*/
uint8_t autopilot; /*< Autopilot type / class. Use MAV_AUTOPILOT_INVALID for components that are not flight controllers.*/
uint8_t base_mode; /*< System mode bitmap.*/
uint8_t system_status; /*< System status flag.*/
uint8_t mavlink_version; /*< MAVLink version, not writable by user, gets added by protocol because of magic data type: uint8_t_mavlink_version*/
} mavlink_heartbeat_t;
#define MAVLINK_MSG_ID_HEARTBEAT_LEN 9
#define MAVLINK_MSG_ID_HEARTBEAT_MIN_LEN 9
#define MAVLINK_MSG_ID_0_LEN 9
#define MAVLINK_MSG_ID_0_MIN_LEN 9
#define MAVLINK_MSG_ID_HEARTBEAT_CRC 50
#define MAVLINK_MSG_ID_0_CRC 50
#if MAVLINK_COMMAND_24BIT
#define MAVLINK_MESSAGE_INFO_HEARTBEAT { \
0, \
"HEARTBEAT", \
6, \
{ { "type", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_heartbeat_t, type) }, \
{ "autopilot", NULL, MAVLINK_TYPE_UINT8_T, 0, 5, offsetof(mavlink_heartbeat_t, autopilot) }, \
{ "base_mode", NULL, MAVLINK_TYPE_UINT8_T, 0, 6, offsetof(mavlink_heartbeat_t, base_mode) }, \
{ "custom_mode", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_heartbeat_t, custom_mode) }, \
{ "system_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 7, offsetof(mavlink_heartbeat_t, system_status) }, \
{ "mavlink_version", NULL, MAVLINK_TYPE_UINT8_T, 0, 8, offsetof(mavlink_heartbeat_t, mavlink_version) }, \
} \
}
#else
#define MAVLINK_MESSAGE_INFO_HEARTBEAT { \
"HEARTBEAT", \
6, \
{ { "type", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_heartbeat_t, type) }, \
{ "autopilot", NULL, MAVLINK_TYPE_UINT8_T, 0, 5, offsetof(mavlink_heartbeat_t, autopilot) }, \
{ "base_mode", NULL, MAVLINK_TYPE_UINT8_T, 0, 6, offsetof(mavlink_heartbeat_t, base_mode) }, \
{ "custom_mode", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_heartbeat_t, custom_mode) }, \
{ "system_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 7, offsetof(mavlink_heartbeat_t, system_status) }, \
{ "mavlink_version", NULL, MAVLINK_TYPE_UINT8_T, 0, 8, offsetof(mavlink_heartbeat_t, mavlink_version) }, \
} \
}
#endif
/**
* @brief Pack a heartbeat message
* @param system_id ID of this system
* @param component_id ID of this component (e.g. 200 for IMU)
* @param msg The MAVLink message to compress the data into
*
* @param type Vehicle or component type. For a flight controller component the vehicle type (quadrotor, helicopter, etc.). For other components the component type (e.g. camera, gimbal, etc.). This should be used in preference to component id for identifying the component type.
* @param autopilot Autopilot type / class. Use MAV_AUTOPILOT_INVALID for components that are not flight controllers.
* @param base_mode System mode bitmap.
* @param custom_mode A bitfield for use for autopilot-specific flags
* @param system_status System status flag.
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_heartbeat_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint8_t type, uint8_t autopilot, uint8_t base_mode, uint32_t custom_mode, uint8_t system_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_HEARTBEAT_LEN];
_mav_put_uint32_t(buf, 0, custom_mode);
_mav_put_uint8_t(buf, 4, type);
_mav_put_uint8_t(buf, 5, autopilot);
_mav_put_uint8_t(buf, 6, base_mode);
_mav_put_uint8_t(buf, 7, system_status);
_mav_put_uint8_t(buf, 8, 3);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_HEARTBEAT_LEN);
#else
mavlink_heartbeat_t packet;
packet.custom_mode = custom_mode;
packet.type = type;
packet.autopilot = autopilot;
packet.base_mode = base_mode;
packet.system_status = system_status;
packet.mavlink_version = 3;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_HEARTBEAT_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_HEARTBEAT;
return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_HEARTBEAT_MIN_LEN, MAVLINK_MSG_ID_HEARTBEAT_LEN, MAVLINK_MSG_ID_HEARTBEAT_CRC);
}
/**
* @brief Pack a heartbeat message on a channel
* @param system_id ID of this system
* @param component_id ID of this component (e.g. 200 for IMU)
* @param chan The MAVLink channel this message will be sent over
* @param msg The MAVLink message to compress the data into
* @param type Vehicle or component type. For a flight controller component the vehicle type (quadrotor, helicopter, etc.). For other components the component type (e.g. camera, gimbal, etc.). This should be used in preference to component id for identifying the component type.
* @param autopilot Autopilot type / class. Use MAV_AUTOPILOT_INVALID for components that are not flight controllers.
* @param base_mode System mode bitmap.
* @param custom_mode A bitfield for use for autopilot-specific flags
* @param system_status System status flag.
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_heartbeat_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint8_t type,uint8_t autopilot,uint8_t base_mode,uint32_t custom_mode,uint8_t system_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_HEARTBEAT_LEN];
_mav_put_uint32_t(buf, 0, custom_mode);
_mav_put_uint8_t(buf, 4, type);
_mav_put_uint8_t(buf, 5, autopilot);
_mav_put_uint8_t(buf, 6, base_mode);
_mav_put_uint8_t(buf, 7, system_status);
_mav_put_uint8_t(buf, 8, 3);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_HEARTBEAT_LEN);
#else
mavlink_heartbeat_t packet;
packet.custom_mode = custom_mode;
packet.type = type;
packet.autopilot = autopilot;
packet.base_mode = base_mode;
packet.system_status = system_status;
packet.mavlink_version = 3;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_HEARTBEAT_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_HEARTBEAT;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_HEARTBEAT_MIN_LEN, MAVLINK_MSG_ID_HEARTBEAT_LEN, MAVLINK_MSG_ID_HEARTBEAT_CRC);
}
/**
* @brief Encode a heartbeat struct
*
* @param system_id ID of this system
* @param component_id ID of this component (e.g. 200 for IMU)
* @param msg The MAVLink message to compress the data into
* @param heartbeat C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_heartbeat_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_heartbeat_t* heartbeat)
{
return mavlink_msg_heartbeat_pack(system_id, component_id, msg, heartbeat->type, heartbeat->autopilot, heartbeat->base_mode, heartbeat->custom_mode, heartbeat->system_status);
}
/**
* @brief Encode a heartbeat struct on a channel
*
* @param system_id ID of this system
* @param component_id ID of this component (e.g. 200 for IMU)
* @param chan The MAVLink channel this message will be sent over
* @param msg The MAVLink message to compress the data into
* @param heartbeat C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_heartbeat_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_heartbeat_t* heartbeat)
{
return mavlink_msg_heartbeat_pack_chan(system_id, component_id, chan, msg, heartbeat->type, heartbeat->autopilot, heartbeat->base_mode, heartbeat->custom_mode, heartbeat->system_status);
}
/**
* @brief Send a heartbeat message
* @param chan MAVLink channel to send the message
*
* @param type Vehicle or component type. For a flight controller component the vehicle type (quadrotor, helicopter, etc.). For other components the component type (e.g. camera, gimbal, etc.). This should be used in preference to component id for identifying the component type.
* @param autopilot Autopilot type / class. Use MAV_AUTOPILOT_INVALID for components that are not flight controllers.
* @param base_mode System mode bitmap.
* @param custom_mode A bitfield for use for autopilot-specific flags
* @param system_status System status flag.
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_heartbeat_send(mavlink_channel_t chan, uint8_t type, uint8_t autopilot, uint8_t base_mode, uint32_t custom_mode, uint8_t system_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_HEARTBEAT_LEN];
_mav_put_uint32_t(buf, 0, custom_mode);
_mav_put_uint8_t(buf, 4, type);
_mav_put_uint8_t(buf, 5, autopilot);
_mav_put_uint8_t(buf, 6, base_mode);
_mav_put_uint8_t(buf, 7, system_status);
_mav_put_uint8_t(buf, 8, 3);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_HEARTBEAT, buf, MAVLINK_MSG_ID_HEARTBEAT_MIN_LEN, MAVLINK_MSG_ID_HEARTBEAT_LEN, MAVLINK_MSG_ID_HEARTBEAT_CRC);
#else
mavlink_heartbeat_t packet;
packet.custom_mode = custom_mode;
packet.type = type;
packet.autopilot = autopilot;
packet.base_mode = base_mode;
packet.system_status = system_status;
packet.mavlink_version = 3;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_HEARTBEAT, (const char *)&packet, MAVLINK_MSG_ID_HEARTBEAT_MIN_LEN, MAVLINK_MSG_ID_HEARTBEAT_LEN, MAVLINK_MSG_ID_HEARTBEAT_CRC);
#endif
}
/**
* @brief Send a heartbeat message
* @param chan MAVLink channel to send the message
* @param struct The MAVLink struct to serialize
*/
static inline void mavlink_msg_heartbeat_send_struct(mavlink_channel_t chan, const mavlink_heartbeat_t* heartbeat)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
mavlink_msg_heartbeat_send(chan, heartbeat->type, heartbeat->autopilot, heartbeat->base_mode, heartbeat->custom_mode, heartbeat->system_status);
#else
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_HEARTBEAT, (const char *)heartbeat, MAVLINK_MSG_ID_HEARTBEAT_MIN_LEN, MAVLINK_MSG_ID_HEARTBEAT_LEN, MAVLINK_MSG_ID_HEARTBEAT_CRC);
#endif
}
#if MAVLINK_MSG_ID_HEARTBEAT_LEN <= MAVLINK_MAX_PAYLOAD_LEN
/*
This varient of _send() can be used to save stack space by re-using
memory from the receive buffer. The caller provides a
mavlink_message_t which is the size of a full mavlink message. This
is usually the receive buffer for the channel, and allows a reply to an
incoming message with minimum stack space usage.
*/
static inline void mavlink_msg_heartbeat_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint8_t type, uint8_t autopilot, uint8_t base_mode, uint32_t custom_mode, uint8_t system_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char *buf = (char *)msgbuf;
_mav_put_uint32_t(buf, 0, custom_mode);
_mav_put_uint8_t(buf, 4, type);
_mav_put_uint8_t(buf, 5, autopilot);
_mav_put_uint8_t(buf, 6, base_mode);
_mav_put_uint8_t(buf, 7, system_status);
_mav_put_uint8_t(buf, 8, 3);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_HEARTBEAT, buf, MAVLINK_MSG_ID_HEARTBEAT_MIN_LEN, MAVLINK_MSG_ID_HEARTBEAT_LEN, MAVLINK_MSG_ID_HEARTBEAT_CRC);
#else
mavlink_heartbeat_t *packet = (mavlink_heartbeat_t *)msgbuf;
packet->custom_mode = custom_mode;
packet->type = type;
packet->autopilot = autopilot;
packet->base_mode = base_mode;
packet->system_status = system_status;
packet->mavlink_version = 3;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_HEARTBEAT, (const char *)packet, MAVLINK_MSG_ID_HEARTBEAT_MIN_LEN, MAVLINK_MSG_ID_HEARTBEAT_LEN, MAVLINK_MSG_ID_HEARTBEAT_CRC);
#endif
}
#endif
#endif
// MESSAGE HEARTBEAT UNPACKING
/**
* @brief Get field type from heartbeat message
*
* @return Vehicle or component type. For a flight controller component the vehicle type (quadrotor, helicopter, etc.). For other components the component type (e.g. camera, gimbal, etc.). This should be used in preference to component id for identifying the component type.
*/
static inline uint8_t mavlink_msg_heartbeat_get_type(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 4);
}
/**
* @brief Get field autopilot from heartbeat message
*
* @return Autopilot type / class. Use MAV_AUTOPILOT_INVALID for components that are not flight controllers.
*/
static inline uint8_t mavlink_msg_heartbeat_get_autopilot(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 5);
}
/**
* @brief Get field base_mode from heartbeat message
*
* @return System mode bitmap.
*/
static inline uint8_t mavlink_msg_heartbeat_get_base_mode(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 6);
}
/**
* @brief Get field custom_mode from heartbeat message
*
* @return A bitfield for use for autopilot-specific flags
*/
static inline uint32_t mavlink_msg_heartbeat_get_custom_mode(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint32_t(msg, 0);
}
/**
* @brief Get field system_status from heartbeat message
*
* @return System status flag.
*/
static inline uint8_t mavlink_msg_heartbeat_get_system_status(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 7);
}
/**
* @brief Get field mavlink_version from heartbeat message
*
* @return MAVLink version, not writable by user, gets added by protocol because of magic data type: uint8_t_mavlink_version
*/
static inline uint8_t mavlink_msg_heartbeat_get_mavlink_version(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 8);
}
/**
* @brief Decode a heartbeat message into a struct
*
* @param msg The message to decode
* @param heartbeat C-struct to decode the message contents into
*/
static inline void mavlink_msg_heartbeat_decode(const mavlink_message_t* msg, mavlink_heartbeat_t* heartbeat)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
heartbeat->custom_mode = mavlink_msg_heartbeat_get_custom_mode(msg);
heartbeat->type = mavlink_msg_heartbeat_get_type(msg);
heartbeat->autopilot = mavlink_msg_heartbeat_get_autopilot(msg);
heartbeat->base_mode = mavlink_msg_heartbeat_get_base_mode(msg);
heartbeat->system_status = mavlink_msg_heartbeat_get_system_status(msg);
heartbeat->mavlink_version = mavlink_msg_heartbeat_get_mavlink_version(msg);
#else
uint8_t len = msg->len < MAVLINK_MSG_ID_HEARTBEAT_LEN? msg->len : MAVLINK_MSG_ID_HEARTBEAT_LEN;
memset(heartbeat, 0, MAVLINK_MSG_ID_HEARTBEAT_LEN);
memcpy(heartbeat, _MAV_PAYLOAD(msg), len);
#endif
}
#pragma once
// MESSAGE PROTOCOL_VERSION PACKING
#define MAVLINK_MSG_ID_PROTOCOL_VERSION 300
typedef struct __mavlink_protocol_version_t {
uint16_t version; /*< Currently active MAVLink version number * 100: v1.0 is 100, v2.0 is 200, etc.*/
uint16_t min_version; /*< Minimum MAVLink version supported*/
uint16_t max_version; /*< Maximum MAVLink version supported (set to the same value as version by default)*/
uint8_t spec_version_hash[8]; /*< The first 8 bytes (not characters printed in hex!) of the git hash.*/
uint8_t library_version_hash[8]; /*< The first 8 bytes (not characters printed in hex!) of the git hash.*/
} mavlink_protocol_version_t;
#define MAVLINK_MSG_ID_PROTOCOL_VERSION_LEN 22
#define MAVLINK_MSG_ID_PROTOCOL_VERSION_MIN_LEN 22
#define MAVLINK_MSG_ID_300_LEN 22
#define MAVLINK_MSG_ID_300_MIN_LEN 22
#define MAVLINK_MSG_ID_PROTOCOL_VERSION_CRC 217
#define MAVLINK_MSG_ID_300_CRC 217
#define MAVLINK_MSG_PROTOCOL_VERSION_FIELD_SPEC_VERSION_HASH_LEN 8
#define MAVLINK_MSG_PROTOCOL_VERSION_FIELD_LIBRARY_VERSION_HASH_LEN 8
#if MAVLINK_COMMAND_24BIT
#define MAVLINK_MESSAGE_INFO_PROTOCOL_VERSION { \
300, \
"PROTOCOL_VERSION", \
5, \
{ { "version", NULL, MAVLINK_TYPE_UINT16_T, 0, 0, offsetof(mavlink_protocol_version_t, version) }, \
{ "min_version", NULL, MAVLINK_TYPE_UINT16_T, 0, 2, offsetof(mavlink_protocol_version_t, min_version) }, \
{ "max_version", NULL, MAVLINK_TYPE_UINT16_T, 0, 4, offsetof(mavlink_protocol_version_t, max_version) }, \
{ "spec_version_hash", NULL, MAVLINK_TYPE_UINT8_T, 8, 6, offsetof(mavlink_protocol_version_t, spec_version_hash) }, \
{ "library_version_hash", NULL, MAVLINK_TYPE_UINT8_T, 8, 14, offsetof(mavlink_protocol_version_t, library_version_hash) }, \
} \
}
#else
#define MAVLINK_MESSAGE_INFO_PROTOCOL_VERSION { \
"PROTOCOL_VERSION", \
5, \
{ { "version", NULL, MAVLINK_TYPE_UINT16_T, 0, 0, offsetof(mavlink_protocol_version_t, version) }, \
{ "min_version", NULL, MAVLINK_TYPE_UINT16_T, 0, 2, offsetof(mavlink_protocol_version_t, min_version) }, \
{ "max_version", NULL, MAVLINK_TYPE_UINT16_T, 0, 4, offsetof(mavlink_protocol_version_t, max_version) }, \
{ "spec_version_hash", NULL, MAVLINK_TYPE_UINT8_T, 8, 6, offsetof(mavlink_protocol_version_t, spec_version_hash) }, \
{ "library_version_hash", NULL, MAVLINK_TYPE_UINT8_T, 8, 14, offsetof(mavlink_protocol_version_t, library_version_hash) }, \
} \
}
#endif
/**
* @brief Pack a protocol_version message
* @param system_id ID of this system
* @param component_id ID of this component (e.g. 200 for IMU)
* @param msg The MAVLink message to compress the data into
*
* @param version Currently active MAVLink version number * 100: v1.0 is 100, v2.0 is 200, etc.
* @param min_version Minimum MAVLink version supported
* @param max_version Maximum MAVLink version supported (set to the same value as version by default)
* @param spec_version_hash The first 8 bytes (not characters printed in hex!) of the git hash.
* @param library_version_hash The first 8 bytes (not characters printed in hex!) of the git hash.
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_protocol_version_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint16_t version, uint16_t min_version, uint16_t max_version, const uint8_t *spec_version_hash, const uint8_t *library_version_hash)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_PROTOCOL_VERSION_LEN];
_mav_put_uint16_t(buf, 0, version);
_mav_put_uint16_t(buf, 2, min_version);
_mav_put_uint16_t(buf, 4, max_version);
_mav_put_uint8_t_array(buf, 6, spec_version_hash, 8);
_mav_put_uint8_t_array(buf, 14, library_version_hash, 8);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_PROTOCOL_VERSION_LEN);
#else
mavlink_protocol_version_t packet;
packet.version = version;
packet.min_version = min_version;
packet.max_version = max_version;
mav_array_memcpy(packet.spec_version_hash, spec_version_hash, sizeof(uint8_t)*8);
mav_array_memcpy(packet.library_version_hash, library_version_hash, sizeof(uint8_t)*8);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_PROTOCOL_VERSION_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_PROTOCOL_VERSION;
return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_PROTOCOL_VERSION_MIN_LEN, MAVLINK_MSG_ID_PROTOCOL_VERSION_LEN, MAVLINK_MSG_ID_PROTOCOL_VERSION_CRC);
}
/**
* @brief Pack a protocol_version message on a channel
* @param system_id ID of this system
* @param component_id ID of this component (e.g. 200 for IMU)
* @param chan The MAVLink channel this message will be sent over
* @param msg The MAVLink message to compress the data into
* @param version Currently active MAVLink version number * 100: v1.0 is 100, v2.0 is 200, etc.
* @param min_version Minimum MAVLink version supported
* @param max_version Maximum MAVLink version supported (set to the same value as version by default)
* @param spec_version_hash The first 8 bytes (not characters printed in hex!) of the git hash.
* @param library_version_hash The first 8 bytes (not characters printed in hex!) of the git hash.
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_protocol_version_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint16_t version,uint16_t min_version,uint16_t max_version,const uint8_t *spec_version_hash,const uint8_t *library_version_hash)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_PROTOCOL_VERSION_LEN];
_mav_put_uint16_t(buf, 0, version);
_mav_put_uint16_t(buf, 2, min_version);
_mav_put_uint16_t(buf, 4, max_version);
_mav_put_uint8_t_array(buf, 6, spec_version_hash, 8);
_mav_put_uint8_t_array(buf, 14, library_version_hash, 8);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_PROTOCOL_VERSION_LEN);
#else
mavlink_protocol_version_t packet;
packet.version = version;
packet.min_version = min_version;
packet.max_version = max_version;
mav_array_memcpy(packet.spec_version_hash, spec_version_hash, sizeof(uint8_t)*8);
mav_array_memcpy(packet.library_version_hash, library_version_hash, sizeof(uint8_t)*8);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_PROTOCOL_VERSION_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_PROTOCOL_VERSION;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_PROTOCOL_VERSION_MIN_LEN, MAVLINK_MSG_ID_PROTOCOL_VERSION_LEN, MAVLINK_MSG_ID_PROTOCOL_VERSION_CRC);
}
/**
* @brief Encode a protocol_version struct
*
* @param system_id ID of this system
* @param component_id ID of this component (e.g. 200 for IMU)
* @param msg The MAVLink message to compress the data into
* @param protocol_version C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_protocol_version_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_protocol_version_t* protocol_version)
{
return mavlink_msg_protocol_version_pack(system_id, component_id, msg, protocol_version->version, protocol_version->min_version, protocol_version->max_version, protocol_version->spec_version_hash, protocol_version->library_version_hash);
}
/**
* @brief Encode a protocol_version struct on a channel
*
* @param system_id ID of this system
* @param component_id ID of this component (e.g. 200 for IMU)
* @param chan The MAVLink channel this message will be sent over
* @param msg The MAVLink message to compress the data into
* @param protocol_version C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_protocol_version_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_protocol_version_t* protocol_version)
{
return mavlink_msg_protocol_version_pack_chan(system_id, component_id, chan, msg, protocol_version->version, protocol_version->min_version, protocol_version->max_version, protocol_version->spec_version_hash, protocol_version->library_version_hash);
}
/**
* @brief Send a protocol_version message
* @param chan MAVLink channel to send the message
*
* @param version Currently active MAVLink version number * 100: v1.0 is 100, v2.0 is 200, etc.
* @param min_version Minimum MAVLink version supported
* @param max_version Maximum MAVLink version supported (set to the same value as version by default)
* @param spec_version_hash The first 8 bytes (not characters printed in hex!) of the git hash.
* @param library_version_hash The first 8 bytes (not characters printed in hex!) of the git hash.
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_protocol_version_send(mavlink_channel_t chan, uint16_t version, uint16_t min_version, uint16_t max_version, const uint8_t *spec_version_hash, const uint8_t *library_version_hash)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_PROTOCOL_VERSION_LEN];
_mav_put_uint16_t(buf, 0, version);
_mav_put_uint16_t(buf, 2, min_version);
_mav_put_uint16_t(buf, 4, max_version);
_mav_put_uint8_t_array(buf, 6, spec_version_hash, 8);
_mav_put_uint8_t_array(buf, 14, library_version_hash, 8);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PROTOCOL_VERSION, buf, MAVLINK_MSG_ID_PROTOCOL_VERSION_MIN_LEN, MAVLINK_MSG_ID_PROTOCOL_VERSION_LEN, MAVLINK_MSG_ID_PROTOCOL_VERSION_CRC);
#else
mavlink_protocol_version_t packet;
packet.version = version;
packet.min_version = min_version;
packet.max_version = max_version;
mav_array_memcpy(packet.spec_version_hash, spec_version_hash, sizeof(uint8_t)*8);
mav_array_memcpy(packet.library_version_hash, library_version_hash, sizeof(uint8_t)*8);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PROTOCOL_VERSION, (const char *)&packet, MAVLINK_MSG_ID_PROTOCOL_VERSION_MIN_LEN, MAVLINK_MSG_ID_PROTOCOL_VERSION_LEN, MAVLINK_MSG_ID_PROTOCOL_VERSION_CRC);
#endif
}
/**
* @brief Send a protocol_version message
* @param chan MAVLink channel to send the message
* @param struct The MAVLink struct to serialize
*/
static inline void mavlink_msg_protocol_version_send_struct(mavlink_channel_t chan, const mavlink_protocol_version_t* protocol_version)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
mavlink_msg_protocol_version_send(chan, protocol_version->version, protocol_version->min_version, protocol_version->max_version, protocol_version->spec_version_hash, protocol_version->library_version_hash);
#else
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PROTOCOL_VERSION, (const char *)protocol_version, MAVLINK_MSG_ID_PROTOCOL_VERSION_MIN_LEN, MAVLINK_MSG_ID_PROTOCOL_VERSION_LEN, MAVLINK_MSG_ID_PROTOCOL_VERSION_CRC);
#endif
}
#if MAVLINK_MSG_ID_PROTOCOL_VERSION_LEN <= MAVLINK_MAX_PAYLOAD_LEN
/*
This varient of _send() can be used to save stack space by re-using
memory from the receive buffer. The caller provides a
mavlink_message_t which is the size of a full mavlink message. This
is usually the receive buffer for the channel, and allows a reply to an
incoming message with minimum stack space usage.
*/
static inline void mavlink_msg_protocol_version_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint16_t version, uint16_t min_version, uint16_t max_version, const uint8_t *spec_version_hash, const uint8_t *library_version_hash)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char *buf = (char *)msgbuf;
_mav_put_uint16_t(buf, 0, version);
_mav_put_uint16_t(buf, 2, min_version);
_mav_put_uint16_t(buf, 4, max_version);
_mav_put_uint8_t_array(buf, 6, spec_version_hash, 8);
_mav_put_uint8_t_array(buf, 14, library_version_hash, 8);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PROTOCOL_VERSION, buf, MAVLINK_MSG_ID_PROTOCOL_VERSION_MIN_LEN, MAVLINK_MSG_ID_PROTOCOL_VERSION_LEN, MAVLINK_MSG_ID_PROTOCOL_VERSION_CRC);
#else
mavlink_protocol_version_t *packet = (mavlink_protocol_version_t *)msgbuf;
packet->version = version;
packet->min_version = min_version;
packet->max_version = max_version;
mav_array_memcpy(packet->spec_version_hash, spec_version_hash, sizeof(uint8_t)*8);
mav_array_memcpy(packet->library_version_hash, library_version_hash, sizeof(uint8_t)*8);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PROTOCOL_VERSION, (const char *)packet, MAVLINK_MSG_ID_PROTOCOL_VERSION_MIN_LEN, MAVLINK_MSG_ID_PROTOCOL_VERSION_LEN, MAVLINK_MSG_ID_PROTOCOL_VERSION_CRC);
#endif
}
#endif
#endif
// MESSAGE PROTOCOL_VERSION UNPACKING
/**
* @brief Get field version from protocol_version message
*
* @return Currently active MAVLink version number * 100: v1.0 is 100, v2.0 is 200, etc.
*/
static inline uint16_t mavlink_msg_protocol_version_get_version(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 0);
}
/**
* @brief Get field min_version from protocol_version message
*
* @return Minimum MAVLink version supported
*/
static inline uint16_t mavlink_msg_protocol_version_get_min_version(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 2);
}
/**
* @brief Get field max_version from protocol_version message
*
* @return Maximum MAVLink version supported (set to the same value as version by default)
*/
static inline uint16_t mavlink_msg_protocol_version_get_max_version(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 4);
}
/**
* @brief Get field spec_version_hash from protocol_version message
*
* @return The first 8 bytes (not characters printed in hex!) of the git hash.
*/
static inline uint16_t mavlink_msg_protocol_version_get_spec_version_hash(const mavlink_message_t* msg, uint8_t *spec_version_hash)
{
return _MAV_RETURN_uint8_t_array(msg, spec_version_hash, 8, 6);
}
/**
* @brief Get field library_version_hash from protocol_version message
*
* @return The first 8 bytes (not characters printed in hex!) of the git hash.
*/
static inline uint16_t mavlink_msg_protocol_version_get_library_version_hash(const mavlink_message_t* msg, uint8_t *library_version_hash)
{
return _MAV_RETURN_uint8_t_array(msg, library_version_hash, 8, 14);
}
/**
* @brief Decode a protocol_version message into a struct
*
* @param msg The message to decode
* @param protocol_version C-struct to decode the message contents into
*/
static inline void mavlink_msg_protocol_version_decode(const mavlink_message_t* msg, mavlink_protocol_version_t* protocol_version)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
protocol_version->version = mavlink_msg_protocol_version_get_version(msg);
protocol_version->min_version = mavlink_msg_protocol_version_get_min_version(msg);
protocol_version->max_version = mavlink_msg_protocol_version_get_max_version(msg);
mavlink_msg_protocol_version_get_spec_version_hash(msg, protocol_version->spec_version_hash);
mavlink_msg_protocol_version_get_library_version_hash(msg, protocol_version->library_version_hash);
#else
uint8_t len = msg->len < MAVLINK_MSG_ID_PROTOCOL_VERSION_LEN? msg->len : MAVLINK_MSG_ID_PROTOCOL_VERSION_LEN;
memset(protocol_version, 0, MAVLINK_MSG_ID_PROTOCOL_VERSION_LEN);
memcpy(protocol_version, _MAV_PAYLOAD(msg), len);
#endif
}
...@@ -12,78 +12,19 @@ extern "C" { ...@@ -12,78 +12,19 @@ extern "C" {
#ifndef MAVLINK_TEST_ALL #ifndef MAVLINK_TEST_ALL
#define MAVLINK_TEST_ALL #define MAVLINK_TEST_ALL
static void mavlink_test_minimal(uint8_t, uint8_t, mavlink_message_t *last_msg);
static void mavlink_test_common(uint8_t, uint8_t, mavlink_message_t *last_msg); static void mavlink_test_common(uint8_t, uint8_t, mavlink_message_t *last_msg);
static void mavlink_test_all(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) static void mavlink_test_all(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{ {
mavlink_test_minimal(system_id, component_id, last_msg);
mavlink_test_common(system_id, component_id, last_msg); mavlink_test_common(system_id, component_id, last_msg);
} }
#endif #endif
#include "../minimal/testsuite.h"
static void mavlink_test_heartbeat(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_HEARTBEAT >= 256) {
return;
}
#endif
mavlink_message_t msg;
uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
uint16_t i;
mavlink_heartbeat_t packet_in = {
963497464,17,84,151,218,3
};
mavlink_heartbeat_t packet1, packet2;
memset(&packet1, 0, sizeof(packet1));
packet1.custom_mode = packet_in.custom_mode;
packet1.type = packet_in.type;
packet1.autopilot = packet_in.autopilot;
packet1.base_mode = packet_in.base_mode;
packet1.system_status = packet_in.system_status;
packet1.mavlink_version = packet_in.mavlink_version;
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
// cope with extensions
memset(MAVLINK_MSG_ID_HEARTBEAT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_HEARTBEAT_MIN_LEN);
}
#endif
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_heartbeat_encode(system_id, component_id, &msg, &packet1);
mavlink_msg_heartbeat_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_heartbeat_pack(system_id, component_id, &msg , packet1.type , packet1.autopilot , packet1.base_mode , packet1.custom_mode , packet1.system_status );
mavlink_msg_heartbeat_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_heartbeat_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.type , packet1.autopilot , packet1.base_mode , packet1.custom_mode , packet1.system_status );
mavlink_msg_heartbeat_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_to_send_buffer(buffer, &msg);
for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
comm_send_ch(MAVLINK_COMM_0, buffer[i]);
}
mavlink_msg_heartbeat_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_heartbeat_send(MAVLINK_COMM_1 , packet1.type , packet1.autopilot , packet1.base_mode , packet1.custom_mode , packet1.system_status );
mavlink_msg_heartbeat_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
}
static void mavlink_test_sys_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) static void mavlink_test_sys_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{ {
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
...@@ -10451,64 +10392,6 @@ static void mavlink_test_wifi_config_ap(uint8_t system_id, uint8_t component_id, ...@@ -10451,64 +10392,6 @@ static void mavlink_test_wifi_config_ap(uint8_t system_id, uint8_t component_id,
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
} }
static void mavlink_test_protocol_version(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_PROTOCOL_VERSION >= 256) {
return;
}
#endif
mavlink_message_t msg;
uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
uint16_t i;
mavlink_protocol_version_t packet_in = {
17235,17339,17443,{ 151, 152, 153, 154, 155, 156, 157, 158 },{ 175, 176, 177, 178, 179, 180, 181, 182 }
};
mavlink_protocol_version_t packet1, packet2;
memset(&packet1, 0, sizeof(packet1));
packet1.version = packet_in.version;
packet1.min_version = packet_in.min_version;
packet1.max_version = packet_in.max_version;
mav_array_memcpy(packet1.spec_version_hash, packet_in.spec_version_hash, sizeof(uint8_t)*8);
mav_array_memcpy(packet1.library_version_hash, packet_in.library_version_hash, sizeof(uint8_t)*8);
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
// cope with extensions
memset(MAVLINK_MSG_ID_PROTOCOL_VERSION_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_PROTOCOL_VERSION_MIN_LEN);
}
#endif
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_protocol_version_encode(system_id, component_id, &msg, &packet1);
mavlink_msg_protocol_version_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_protocol_version_pack(system_id, component_id, &msg , packet1.version , packet1.min_version , packet1.max_version , packet1.spec_version_hash , packet1.library_version_hash );
mavlink_msg_protocol_version_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_protocol_version_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.version , packet1.min_version , packet1.max_version , packet1.spec_version_hash , packet1.library_version_hash );
mavlink_msg_protocol_version_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_to_send_buffer(buffer, &msg);
for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
comm_send_ch(MAVLINK_COMM_0, buffer[i]);
}
mavlink_msg_protocol_version_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_protocol_version_send(MAVLINK_COMM_1 , packet1.version , packet1.min_version , packet1.max_version , packet1.spec_version_hash , packet1.library_version_hash );
mavlink_msg_protocol_version_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
}
static void mavlink_test_ais_vessel(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) static void mavlink_test_ais_vessel(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{ {
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 #ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
...@@ -13000,7 +12883,6 @@ static void mavlink_test_open_drone_id_message_pack(uint8_t system_id, uint8_t c ...@@ -13000,7 +12883,6 @@ static void mavlink_test_open_drone_id_message_pack(uint8_t system_id, uint8_t c
static void mavlink_test_common(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) static void mavlink_test_common(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{ {
mavlink_test_heartbeat(system_id, component_id, last_msg);
mavlink_test_sys_status(system_id, component_id, last_msg); mavlink_test_sys_status(system_id, component_id, last_msg);
mavlink_test_system_time(system_id, component_id, last_msg); mavlink_test_system_time(system_id, component_id, last_msg);
mavlink_test_ping(system_id, component_id, last_msg); mavlink_test_ping(system_id, component_id, last_msg);
...@@ -13171,7 +13053,6 @@ static void mavlink_test_common(uint8_t system_id, uint8_t component_id, mavlink ...@@ -13171,7 +13053,6 @@ static void mavlink_test_common(uint8_t system_id, uint8_t component_id, mavlink
mavlink_test_esc_info(system_id, component_id, last_msg); mavlink_test_esc_info(system_id, component_id, last_msg);
mavlink_test_esc_status(system_id, component_id, last_msg); mavlink_test_esc_status(system_id, component_id, last_msg);
mavlink_test_wifi_config_ap(system_id, component_id, last_msg); mavlink_test_wifi_config_ap(system_id, component_id, last_msg);
mavlink_test_protocol_version(system_id, component_id, last_msg);
mavlink_test_ais_vessel(system_id, component_id, last_msg); mavlink_test_ais_vessel(system_id, component_id, last_msg);
mavlink_test_uavcan_node_status(system_id, component_id, last_msg); mavlink_test_uavcan_node_status(system_id, component_id, last_msg);
mavlink_test_uavcan_node_info(system_id, component_id, last_msg); mavlink_test_uavcan_node_info(system_id, component_id, last_msg);
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#ifndef MAVLINK_VERSION_H #ifndef MAVLINK_VERSION_H
#define MAVLINK_VERSION_H #define MAVLINK_VERSION_H
#define MAVLINK_BUILD_DATE "Fri Aug 28 2020" #define MAVLINK_BUILD_DATE "Mon Aug 31 2020"
#define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0"
#define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255 #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#ifndef MAVLINK_VERSION_H #ifndef MAVLINK_VERSION_H
#define MAVLINK_VERSION_H #define MAVLINK_VERSION_H
#define MAVLINK_BUILD_DATE "Fri Aug 28 2020" #define MAVLINK_BUILD_DATE "Mon Aug 31 2020"
#define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0"
#define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 46 #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 46
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#ifndef MAVLINK_VERSION_H #ifndef MAVLINK_VERSION_H
#define MAVLINK_VERSION_H #define MAVLINK_VERSION_H
#define MAVLINK_BUILD_DATE "Fri Aug 28 2020" #define MAVLINK_BUILD_DATE "Mon Aug 31 2020"
#define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0"
#define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255 #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255
......
<?xml version="1.0"?> <?xml version="1.0"?>
<mavlink> <mavlink>
<include>minimal.xml</include>
<version>3</version> <version>3</version>
<dialect>0</dialect> <dialect>0</dialect>
<enums> <enums>
<enum name="MAV_AUTOPILOT">
<description>Micro air vehicle / autopilot classes. This identifies the individual model.</description>
<entry value="0" name="MAV_AUTOPILOT_GENERIC">
<description>Generic autopilot, full support for everything</description>
</entry>
<entry value="1" name="MAV_AUTOPILOT_RESERVED">
<description>Reserved for future use.</description>
</entry>
<entry value="2" name="MAV_AUTOPILOT_SLUGS">
<description>SLUGS autopilot, http://slugsuav.soe.ucsc.edu</description>
</entry>
<entry value="3" name="MAV_AUTOPILOT_ARDUPILOTMEGA">
<description>ArduPilot - Plane/Copter/Rover/Sub/Tracker, https://ardupilot.org</description>
</entry>
<entry value="4" name="MAV_AUTOPILOT_OPENPILOT">
<description>OpenPilot, http://openpilot.org</description>
</entry>
<entry value="5" name="MAV_AUTOPILOT_GENERIC_WAYPOINTS_ONLY">
<description>Generic autopilot only supporting simple waypoints</description>
</entry>
<entry value="6" name="MAV_AUTOPILOT_GENERIC_WAYPOINTS_AND_SIMPLE_NAVIGATION_ONLY">
<description>Generic autopilot supporting waypoints and other simple navigation commands</description>
</entry>
<entry value="7" name="MAV_AUTOPILOT_GENERIC_MISSION_FULL">
<description>Generic autopilot supporting the full mission command set</description>
</entry>
<entry value="8" name="MAV_AUTOPILOT_INVALID">
<description>No valid autopilot, e.g. a GCS or other MAVLink component</description>
</entry>
<entry value="9" name="MAV_AUTOPILOT_PPZ">
<description>PPZ UAV - http://nongnu.org/paparazzi</description>
</entry>
<entry value="10" name="MAV_AUTOPILOT_UDB">
<description>UAV Dev Board</description>
</entry>
<entry value="11" name="MAV_AUTOPILOT_FP">
<description>FlexiPilot</description>
</entry>
<entry value="12" name="MAV_AUTOPILOT_PX4">
<description>PX4 Autopilot - http://px4.io/</description>
</entry>
<entry value="13" name="MAV_AUTOPILOT_SMACCMPILOT">
<description>SMACCMPilot - http://smaccmpilot.org</description>
</entry>
<entry value="14" name="MAV_AUTOPILOT_AUTOQUAD">
<description>AutoQuad -- http://autoquad.org</description>
</entry>
<entry value="15" name="MAV_AUTOPILOT_ARMAZILA">
<description>Armazila -- http://armazila.com</description>
</entry>
<entry value="16" name="MAV_AUTOPILOT_AEROB">
<description>Aerob -- http://aerob.ru</description>
</entry>
<entry value="17" name="MAV_AUTOPILOT_ASLUAV">
<description>ASLUAV autopilot -- http://www.asl.ethz.ch</description>
</entry>
<entry value="18" name="MAV_AUTOPILOT_SMARTAP">
<description>SmartAP Autopilot - http://sky-drones.com</description>
</entry>
<entry value="19" name="MAV_AUTOPILOT_AIRRAILS">
<description>AirRails - http://uaventure.com</description>
</entry>
</enum>
<enum name="MAV_TYPE">
<description>MAVLINK component type reported in HEARTBEAT message. Flight controllers must report the type of the vehicle on which they are mounted (e.g. MAV_TYPE_OCTOROTOR). All other components must report a value appropriate for their type (e.g. a camera must use MAV_TYPE_CAMERA).</description>
<entry value="0" name="MAV_TYPE_GENERIC">
<description>Generic micro air vehicle</description>
</entry>
<entry value="1" name="MAV_TYPE_FIXED_WING">
<description>Fixed wing aircraft.</description>
</entry>
<entry value="2" name="MAV_TYPE_QUADROTOR">
<description>Quadrotor</description>
</entry>
<entry value="3" name="MAV_TYPE_COAXIAL">
<description>Coaxial helicopter</description>
</entry>
<entry value="4" name="MAV_TYPE_HELICOPTER">
<description>Normal helicopter with tail rotor.</description>
</entry>
<entry value="5" name="MAV_TYPE_ANTENNA_TRACKER">
<description>Ground installation</description>
</entry>
<entry value="6" name="MAV_TYPE_GCS">
<description>Operator control unit / ground control station</description>
</entry>
<entry value="7" name="MAV_TYPE_AIRSHIP">
<description>Airship, controlled</description>
</entry>
<entry value="8" name="MAV_TYPE_FREE_BALLOON">
<description>Free balloon, uncontrolled</description>
</entry>
<entry value="9" name="MAV_TYPE_ROCKET">
<description>Rocket</description>
</entry>
<entry value="10" name="MAV_TYPE_GROUND_ROVER">
<description>Ground rover</description>
</entry>
<entry value="11" name="MAV_TYPE_SURFACE_BOAT">
<description>Surface vessel, boat, ship</description>
</entry>
<entry value="12" name="MAV_TYPE_SUBMARINE">
<description>Submarine</description>
</entry>
<entry value="13" name="MAV_TYPE_HEXAROTOR">
<description>Hexarotor</description>
</entry>
<entry value="14" name="MAV_TYPE_OCTOROTOR">
<description>Octorotor</description>
</entry>
<entry value="15" name="MAV_TYPE_TRICOPTER">
<description>Tricopter</description>
</entry>
<entry value="16" name="MAV_TYPE_FLAPPING_WING">
<description>Flapping wing</description>
</entry>
<entry value="17" name="MAV_TYPE_KITE">
<description>Kite</description>
</entry>
<entry value="18" name="MAV_TYPE_ONBOARD_CONTROLLER">
<description>Onboard companion controller</description>
</entry>
<entry value="19" name="MAV_TYPE_VTOL_DUOROTOR">
<description>Two-rotor VTOL using control surfaces in vertical operation in addition. Tailsitter.</description>
</entry>
<entry value="20" name="MAV_TYPE_VTOL_QUADROTOR">
<description>Quad-rotor VTOL using a V-shaped quad config in vertical operation. Tailsitter.</description>
</entry>
<entry value="21" name="MAV_TYPE_VTOL_TILTROTOR">
<description>Tiltrotor VTOL</description>
</entry>
<!-- Entries up to 25 reserved for other VTOL airframes -->
<entry value="22" name="MAV_TYPE_VTOL_RESERVED2">
<description>VTOL reserved 2</description>
</entry>
<entry value="23" name="MAV_TYPE_VTOL_RESERVED3">
<description>VTOL reserved 3</description>
</entry>
<entry value="24" name="MAV_TYPE_VTOL_RESERVED4">
<description>VTOL reserved 4</description>
</entry>
<entry value="25" name="MAV_TYPE_VTOL_RESERVED5">
<description>VTOL reserved 5</description>
</entry>
<entry value="26" name="MAV_TYPE_GIMBAL">
<description>Gimbal</description>
</entry>
<entry value="27" name="MAV_TYPE_ADSB">
<description>ADSB system</description>
</entry>
<entry value="28" name="MAV_TYPE_PARAFOIL">
<description>Steerable, nonrigid airfoil</description>
</entry>
<entry value="29" name="MAV_TYPE_DODECAROTOR">
<description>Dodecarotor</description>
</entry>
<entry value="30" name="MAV_TYPE_CAMERA">
<description>Camera</description>
</entry>
<entry value="31" name="MAV_TYPE_CHARGING_STATION">
<description>Charging station</description>
</entry>
<entry value="32" name="MAV_TYPE_FLARM">
<description>FLARM collision avoidance system</description>
</entry>
<entry value="33" name="MAV_TYPE_SERVO">
<description>Servo</description>
</entry>
<entry value="34" name="MAV_TYPE_ODID">
<description>Open Drone ID. See https://mavlink.io/en/services/opendroneid.html.</description>
</entry>
</enum>
<enum name="FIRMWARE_VERSION_TYPE"> <enum name="FIRMWARE_VERSION_TYPE">
<description>These values define the type of firmware release. These values indicate the first version or release of this type. For example the first alpha release would be 64, the second would be 65.</description> <description>These values define the type of firmware release. These values indicate the first version or release of this type. For example the first alpha release would be 64, the second would be 65.</description>
<entry value="0" name="FIRMWARE_VERSION_TYPE_DEV"> <entry value="0" name="FIRMWARE_VERSION_TYPE_DEV">
...@@ -238,60 +67,6 @@ ...@@ -238,60 +67,6 @@
<description>Mission failure.</description> <description>Mission failure.</description>
</entry> </entry>
</enum> </enum>
<enum name="MAV_MODE_FLAG" bitmask="true">
<description>These flags encode the MAV mode.</description>
<entry value="128" name="MAV_MODE_FLAG_SAFETY_ARMED">
<description>0b10000000 MAV safety set to armed. Motors are enabled / running / can start. Ready to fly. Additional note: this flag is to be ignore when sent in the command MAV_CMD_DO_SET_MODE and MAV_CMD_COMPONENT_ARM_DISARM shall be used instead. The flag can still be used to report the armed state.</description>
</entry>
<entry value="64" name="MAV_MODE_FLAG_MANUAL_INPUT_ENABLED">
<description>0b01000000 remote control input is enabled.</description>
</entry>
<entry value="32" name="MAV_MODE_FLAG_HIL_ENABLED">
<description>0b00100000 hardware in the loop simulation. All motors / actuators are blocked, but internal software is full operational.</description>
</entry>
<entry value="16" name="MAV_MODE_FLAG_STABILIZE_ENABLED">
<description>0b00010000 system stabilizes electronically its attitude (and optionally position). It needs however further control inputs to move around.</description>
</entry>
<entry value="8" name="MAV_MODE_FLAG_GUIDED_ENABLED">
<description>0b00001000 guided mode enabled, system flies waypoints / mission items.</description>
</entry>
<entry value="4" name="MAV_MODE_FLAG_AUTO_ENABLED">
<description>0b00000100 autonomous mode enabled, system finds its own goal positions. Guided flag can be set or not, depends on the actual implementation.</description>
</entry>
<entry value="2" name="MAV_MODE_FLAG_TEST_ENABLED">
<description>0b00000010 system has a test mode enabled. This flag is intended for temporary system tests and should not be used for stable implementations.</description>
</entry>
<entry value="1" name="MAV_MODE_FLAG_CUSTOM_MODE_ENABLED">
<description>0b00000001 Reserved for future use.</description>
</entry>
</enum>
<enum name="MAV_MODE_FLAG_DECODE_POSITION" bitmask="true">
<description>These values encode the bit positions of the decode position. These values can be used to read the value of a flag bit by combining the base_mode variable with AND with the flag position value. The result will be either 0 or 1, depending on if the flag is set or not.</description>
<entry value="128" name="MAV_MODE_FLAG_DECODE_POSITION_SAFETY">
<description>First bit: 10000000</description>
</entry>
<entry value="64" name="MAV_MODE_FLAG_DECODE_POSITION_MANUAL">
<description>Second bit: 01000000</description>
</entry>
<entry value="32" name="MAV_MODE_FLAG_DECODE_POSITION_HIL">
<description>Third bit: 00100000</description>
</entry>
<entry value="16" name="MAV_MODE_FLAG_DECODE_POSITION_STABILIZE">
<description>Fourth bit: 00010000</description>
</entry>
<entry value="8" name="MAV_MODE_FLAG_DECODE_POSITION_GUIDED">
<description>Fifth bit: 00001000</description>
</entry>
<entry value="4" name="MAV_MODE_FLAG_DECODE_POSITION_AUTO">
<description>Sixth bit: 00000100</description>
</entry>
<entry value="2" name="MAV_MODE_FLAG_DECODE_POSITION_TEST">
<description>Seventh bit: 00000010</description>
</entry>
<entry value="1" name="MAV_MODE_FLAG_DECODE_POSITION_CUSTOM_MODE">
<description>Eighth bit: 00000001</description>
</entry>
</enum>
<enum name="MAV_GOTO"> <enum name="MAV_GOTO">
<description>Actions that may be specified in MAV_CMD_OVERRIDE_GOTO to override mission execution.</description> <description>Actions that may be specified in MAV_CMD_OVERRIDE_GOTO to override mission execution.</description>
<entry value="0" name="MAV_GOTO_DO_HOLD"> <entry value="0" name="MAV_GOTO_DO_HOLD">
...@@ -344,425 +119,6 @@ ...@@ -344,425 +119,6 @@
<description>UNDEFINED mode. This solely depends on the autopilot - use with caution, intended for developers only.</description> <description>UNDEFINED mode. This solely depends on the autopilot - use with caution, intended for developers only.</description>
</entry> </entry>
</enum> </enum>
<enum name="MAV_STATE">
<entry value="0" name="MAV_STATE_UNINIT">
<description>Uninitialized system, state is unknown.</description>
</entry>
<entry name="MAV_STATE_BOOT">
<description>System is booting up.</description>
</entry>
<entry name="MAV_STATE_CALIBRATING">
<description>System is calibrating and not flight-ready.</description>
</entry>
<entry name="MAV_STATE_STANDBY">
<description>System is grounded and on standby. It can be launched any time.</description>
</entry>
<entry name="MAV_STATE_ACTIVE">
<description>System is active and might be already airborne. Motors are engaged.</description>
</entry>
<entry name="MAV_STATE_CRITICAL">
<description>System is in a non-normal flight mode. It can however still navigate.</description>
</entry>
<entry name="MAV_STATE_EMERGENCY">
<description>System is in a non-normal flight mode. It lost control over parts or over the whole airframe. It is in mayday and going down.</description>
</entry>
<entry name="MAV_STATE_POWEROFF">
<description>System just initialized its power-down sequence, will shut down now.</description>
</entry>
<entry name="MAV_STATE_FLIGHT_TERMINATION">
<description>System is terminating itself.</description>
</entry>
</enum>
<enum name="MAV_COMPONENT">
<description>Component ids (values) for the different types and instances of onboard hardware/software that might make up a MAVLink system (autopilot, cameras, servos, GPS systems, avoidance systems etc.).
Components must use the appropriate ID in their source address when sending messages. Components can also use IDs to determine if they are the intended recipient of an incoming message. The MAV_COMP_ID_ALL value is used to indicate messages that must be processed by all components.
When creating new entries, components that can have multiple instances (e.g. cameras, servos etc.) should be allocated sequential values. An appropriate number of values should be left free after these components to allow the number of instances to be expanded.</description>
<entry value="0" name="MAV_COMP_ID_ALL">
<description>Target id (target_component) used to broadcast messages to all components of the receiving system. Components should attempt to process messages with this component ID and forward to components on any other interfaces. Note: This is not a valid *source* component id for a message.</description>
</entry>
<entry value="1" name="MAV_COMP_ID_AUTOPILOT1">
<description>System flight controller component ("autopilot"). Only one autopilot is expected in a particular system.</description>
</entry>
<!-- Component ids from 25-99 are reserved for private OEM component definitions (and may be incompatible with other private components). Note that if this range is later reduced, higher ids will be reallocated first. -->
<entry value="25" name="MAV_COMP_ID_USER1">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="26" name="MAV_COMP_ID_USER2">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="27" name="MAV_COMP_ID_USER3">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="28" name="MAV_COMP_ID_USER4">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="29" name="MAV_COMP_ID_USER5">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="30" name="MAV_COMP_ID_USER6">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="31" name="MAV_COMP_ID_USER7">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="32" name="MAV_COMP_ID_USER8">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="33" name="MAV_COMP_ID_USER9">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="34" name="MAV_COMP_ID_USER10">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="35" name="MAV_COMP_ID_USER11">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="36" name="MAV_COMP_ID_USER12">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="37" name="MAV_COMP_ID_USER13">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="38" name="MAV_COMP_ID_USER14">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="39" name="MAV_COMP_ID_USER15">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="40" name="MAV_COMP_ID_USER16">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="41" name="MAV_COMP_ID_USER17">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="42" name="MAV_COMP_ID_USER18">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="43" name="MAV_COMP_ID_USER19">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="44" name="MAV_COMP_ID_USER20">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="45" name="MAV_COMP_ID_USER21">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="46" name="MAV_COMP_ID_USER22">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="47" name="MAV_COMP_ID_USER23">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="48" name="MAV_COMP_ID_USER24">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="49" name="MAV_COMP_ID_USER25">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="50" name="MAV_COMP_ID_USER26">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="51" name="MAV_COMP_ID_USER27">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="52" name="MAV_COMP_ID_USER28">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="53" name="MAV_COMP_ID_USER29">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="54" name="MAV_COMP_ID_USER30">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="55" name="MAV_COMP_ID_USER31">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="56" name="MAV_COMP_ID_USER32">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="57" name="MAV_COMP_ID_USER33">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="58" name="MAV_COMP_ID_USER34">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="59" name="MAV_COMP_ID_USER35">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="60" name="MAV_COMP_ID_USER36">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="61" name="MAV_COMP_ID_USER37">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="62" name="MAV_COMP_ID_USER38">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="63" name="MAV_COMP_ID_USER39">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="64" name="MAV_COMP_ID_USER40">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="65" name="MAV_COMP_ID_USER41">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="66" name="MAV_COMP_ID_USER42">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="67" name="MAV_COMP_ID_USER43">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="68" name="MAV_COMP_ID_TELEMETRY_RADIO">
<description>Telemetry radio (e.g. SiK radio, or other component that emits RADIO_STATUS messages).</description>
</entry>
<entry value="69" name="MAV_COMP_ID_USER45">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="70" name="MAV_COMP_ID_USER46">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="71" name="MAV_COMP_ID_USER47">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="72" name="MAV_COMP_ID_USER48">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="73" name="MAV_COMP_ID_USER49">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="74" name="MAV_COMP_ID_USER50">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="75" name="MAV_COMP_ID_USER51">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="76" name="MAV_COMP_ID_USER52">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="77" name="MAV_COMP_ID_USER53">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="78" name="MAV_COMP_ID_USER54">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="79" name="MAV_COMP_ID_USER55">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="80" name="MAV_COMP_ID_USER56">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="81" name="MAV_COMP_ID_USER57">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="82" name="MAV_COMP_ID_USER58">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="83" name="MAV_COMP_ID_USER59">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="84" name="MAV_COMP_ID_USER60">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="85" name="MAV_COMP_ID_USER61">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="86" name="MAV_COMP_ID_USER62">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="87" name="MAV_COMP_ID_USER63">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="88" name="MAV_COMP_ID_USER64">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="89" name="MAV_COMP_ID_USER65">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="90" name="MAV_COMP_ID_USER66">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="91" name="MAV_COMP_ID_USER67">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="92" name="MAV_COMP_ID_USER68">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="93" name="MAV_COMP_ID_USER69">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="94" name="MAV_COMP_ID_USER70">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="95" name="MAV_COMP_ID_USER71">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="96" name="MAV_COMP_ID_USER72">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="97" name="MAV_COMP_ID_USER73">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="98" name="MAV_COMP_ID_USER74">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="99" name="MAV_COMP_ID_USER75">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry>
<entry value="100" name="MAV_COMP_ID_CAMERA">
<description>Camera #1.</description>
</entry>
<entry value="101" name="MAV_COMP_ID_CAMERA2">
<description>Camera #2.</description>
</entry>
<entry value="102" name="MAV_COMP_ID_CAMERA3">
<description>Camera #3.</description>
</entry>
<entry value="103" name="MAV_COMP_ID_CAMERA4">
<description>Camera #4.</description>
</entry>
<entry value="104" name="MAV_COMP_ID_CAMERA5">
<description>Camera #5.</description>
</entry>
<entry value="105" name="MAV_COMP_ID_CAMERA6">
<description>Camera #6.</description>
</entry>
<entry value="140" name="MAV_COMP_ID_SERVO1">
<description>Servo #1.</description>
</entry>
<entry value="141" name="MAV_COMP_ID_SERVO2">
<description>Servo #2.</description>
</entry>
<entry value="142" name="MAV_COMP_ID_SERVO3">
<description>Servo #3.</description>
</entry>
<entry value="143" name="MAV_COMP_ID_SERVO4">
<description>Servo #4.</description>
</entry>
<entry value="144" name="MAV_COMP_ID_SERVO5">
<description>Servo #5.</description>
</entry>
<entry value="145" name="MAV_COMP_ID_SERVO6">
<description>Servo #6.</description>
</entry>
<entry value="146" name="MAV_COMP_ID_SERVO7">
<description>Servo #7.</description>
</entry>
<entry value="147" name="MAV_COMP_ID_SERVO8">
<description>Servo #8.</description>
</entry>
<entry value="148" name="MAV_COMP_ID_SERVO9">
<description>Servo #9.</description>
</entry>
<entry value="149" name="MAV_COMP_ID_SERVO10">
<description>Servo #10.</description>
</entry>
<entry value="150" name="MAV_COMP_ID_SERVO11">
<description>Servo #11.</description>
</entry>
<entry value="151" name="MAV_COMP_ID_SERVO12">
<description>Servo #12.</description>
</entry>
<entry value="152" name="MAV_COMP_ID_SERVO13">
<description>Servo #13.</description>
</entry>
<entry value="153" name="MAV_COMP_ID_SERVO14">
<description>Servo #14.</description>
</entry>
<entry value="154" name="MAV_COMP_ID_GIMBAL">
<description>Gimbal #1.</description>
</entry>
<entry value="155" name="MAV_COMP_ID_LOG">
<description>Logging component.</description>
</entry>
<entry value="156" name="MAV_COMP_ID_ADSB">
<description>Automatic Dependent Surveillance-Broadcast (ADS-B) component.</description>
</entry>
<entry value="157" name="MAV_COMP_ID_OSD">
<description>On Screen Display (OSD) devices for video links.</description>
</entry>
<entry value="158" name="MAV_COMP_ID_PERIPHERAL">
<description>Generic autopilot peripheral component ID. Meant for devices that do not implement the parameter microservice.</description>
</entry>
<entry value="159" name="MAV_COMP_ID_QX1_GIMBAL">
<deprecated since="2018-11" replaced_by="MAV_COMP_ID_GIMBAL">All gimbals should use MAV_COMP_ID_GIMBAL.</deprecated>
<description>Gimbal ID for QX1.</description>
</entry>
<entry value="160" name="MAV_COMP_ID_FLARM">
<description>FLARM collision alert component.</description>
</entry>
<entry value="171" name="MAV_COMP_ID_GIMBAL2">
<description>Gimbal #2.</description>
</entry>
<entry value="172" name="MAV_COMP_ID_GIMBAL3">
<description>Gimbal #3.</description>
</entry>
<entry value="173" name="MAV_COMP_ID_GIMBAL4">
<description>Gimbal #4</description>
</entry>
<entry value="174" name="MAV_COMP_ID_GIMBAL5">
<description>Gimbal #5.</description>
</entry>
<entry value="175" name="MAV_COMP_ID_GIMBAL6">
<description>Gimbal #6.</description>
</entry>
<entry value="190" name="MAV_COMP_ID_MISSIONPLANNER">
<description>Component that can generate/supply a mission flight plan (e.g. GCS or developer API).</description>
</entry>
<entry value="191" name="MAV_COMP_ID_ONBOARD_COMPUTER">
<description>Component that lives on the onboard computer (companion computer) and has some generic functionalities, such as settings system parameters and monitoring the status of some processes that don't directly speak mavlink and so on.</description>
</entry>
<!-- Component ids from 192-194 are reserved for any future mavlink components related to the mission computer. -->
<entry value="195" name="MAV_COMP_ID_PATHPLANNER">
<description>Component that finds an optimal path between points based on a certain constraint (e.g. minimum snap, shortest path, cost, etc.).</description>
</entry>
<entry value="196" name="MAV_COMP_ID_OBSTACLE_AVOIDANCE">
<description>Component that plans a collision free path between two points.</description>
</entry>
<entry value="197" name="MAV_COMP_ID_VISUAL_INERTIAL_ODOMETRY">
<description>Component that provides position estimates using VIO techniques.</description>
</entry>
<entry value="198" name="MAV_COMP_ID_PAIRING_MANAGER">
<description>Component that manages pairing of vehicle and GCS.</description>
</entry>
<entry value="200" name="MAV_COMP_ID_IMU">
<description>Inertial Measurement Unit (IMU) #1.</description>
</entry>
<entry value="201" name="MAV_COMP_ID_IMU_2">
<description>Inertial Measurement Unit (IMU) #2.</description>
</entry>
<entry value="202" name="MAV_COMP_ID_IMU_3">
<description>Inertial Measurement Unit (IMU) #3.</description>
</entry>
<entry value="220" name="MAV_COMP_ID_GPS">
<description>GPS #1.</description>
</entry>
<entry value="221" name="MAV_COMP_ID_GPS2">
<description>GPS #2.</description>
</entry>
<entry value="236" name="MAV_COMP_ID_ODID_TXRX_1">
<description>Open Drone ID transmitter/receiver (Bluetooth/WiFi/Internet).</description>
</entry>
<entry value="237" name="MAV_COMP_ID_ODID_TXRX_2">
<description>Open Drone ID transmitter/receiver (Bluetooth/WiFi/Internet).</description>
</entry>
<entry value="238" name="MAV_COMP_ID_ODID_TXRX_3">
<description>Open Drone ID transmitter/receiver (Bluetooth/WiFi/Internet).</description>
</entry>
<entry value="240" name="MAV_COMP_ID_UDP_BRIDGE">
<description>Component to bridge MAVLink to UDP (i.e. from a UART).</description>
</entry>
<entry value="241" name="MAV_COMP_ID_UART_BRIDGE">
<description>Component to bridge to UART (i.e. from UDP).</description>
</entry>
<entry value="242" name="MAV_COMP_ID_TUNNEL_NODE">
<description>Component handling TUNNEL messages (e.g. vendor specific GUI of a component).</description>
</entry>
<entry value="250" name="MAV_COMP_ID_SYSTEM_CONTROL">
<deprecated since="2018-11" replaced_by="MAV_COMP_ID_ALL">System control does not require a separate component ID.</deprecated>
<description>Component for handling system messages (e.g. to ARM, takeoff, etc.).</description>
</entry>
</enum>
<enum name="MAV_SYS_STATUS_SENSOR" bitmask="true"> <enum name="MAV_SYS_STATUS_SENSOR" bitmask="true">
<description>These encode the sensors whose status is sent as part of the SYS_STATUS message.</description> <description>These encode the sensors whose status is sent as part of the SYS_STATUS message.</description>
<entry value="1" name="MAV_SYS_STATUS_SENSOR_3D_GYRO"> <entry value="1" name="MAV_SYS_STATUS_SENSOR_3D_GYRO">
...@@ -2270,22 +1626,6 @@ ...@@ -2270,22 +1626,6 @@
<param index="2" label="Interval" units="us" minValue="-1" increment="1">The interval between two messages. Set to -1 to disable and 0 to request default rate.</param> <param index="2" label="Interval" units="us" minValue="-1" increment="1">The interval between two messages. Set to -1 to disable and 0 to request default rate.</param>
<param index="7" label="Response Target" minValue="0" maxValue="2" increment="1">Target address of message stream (if message has target address fields). 0: Flight-stack default (recommended), 1: address of requestor, 2: broadcast.</param> <param index="7" label="Response Target" minValue="0" maxValue="2" increment="1">Target address of message stream (if message has target address fields). 0: Flight-stack default (recommended), 1: address of requestor, 2: broadcast.</param>
</entry> </entry>
<entry value="512" name="MAV_CMD_REQUEST_MESSAGE" hasLocation="false" isDestination="false">
<description>Request the target system(s) emit a single instance of a specified message (i.e. a "one-shot" version of MAV_CMD_SET_MESSAGE_INTERVAL).</description>
<param index="1" label="Message ID" minValue="0" maxValue="16777215" increment="1">The MAVLink message ID of the requested message.</param>
<param index="2" label="Req Param 1">Use for index ID, if required. Otherwise, the use of this parameter (if any) must be defined in the requested message. By default assumed not used (0).</param>
<param index="3" label="Req Param 2">The use of this parameter (if any), must be defined in the requested message. By default assumed not used (0).</param>
<param index="4" label="Req Param 3">The use of this parameter (if any), must be defined in the requested message. By default assumed not used (0).</param>
<param index="5" label="Req Param 4">The use of this parameter (if any), must be defined in the requested message. By default assumed not used (0).</param>
<param index="6" label="Req Param 5">The use of this parameter (if any), must be defined in the requested message. By default assumed not used (0).</param>
<param index="7" label="Response Target" minValue="0" maxValue="2" increment="1">Target address for requested message (if message has target address fields). 0: Flight-stack default, 1: address of requestor, 2: broadcast.</param>
</entry>
<entry value="519" name="MAV_CMD_REQUEST_PROTOCOL_VERSION" hasLocation="false" isDestination="false">
<deprecated since="2019-08" replaced_by="MAV_CMD_REQUEST_MESSAGE"/>
<description>Request MAVLink protocol version compatibility. All receivers should ACK the command and then emit their capabilities in an PROTOCOL_VERSION message</description>
<param index="1" label="Protocol" minValue="0" maxValue="1" increment="1">1: Request supported protocol versions by all nodes on the network</param>
<param index="2">Reserved (all remaining params)</param>
</entry>
<entry value="520" name="MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES" hasLocation="false" isDestination="false"> <entry value="520" name="MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES" hasLocation="false" isDestination="false">
<deprecated since="2019-08" replaced_by="MAV_CMD_REQUEST_MESSAGE"/> <deprecated since="2019-08" replaced_by="MAV_CMD_REQUEST_MESSAGE"/>
<description>Request autopilot capabilities. The receiver should ACK the command and then emit its capabilities in an AUTOPILOT_VERSION message</description> <description>Request autopilot capabilities. The receiver should ACK the command and then emit its capabilities in an AUTOPILOT_VERSION message</description>
...@@ -4842,15 +4182,6 @@ ...@@ -4842,15 +4182,6 @@
</enum> </enum>
</enums> </enums>
<messages> <messages>
<message id="0" name="HEARTBEAT">
<description>The heartbeat message shows that a system or component is present and responding. The type and autopilot fields (along with the message component id), allow the receiving system to treat further messages from this system appropriately (e.g. by laying out the user interface based on the autopilot). This microservice is documented at https://mavlink.io/en/services/heartbeat.html</description>
<field type="uint8_t" name="type" enum="MAV_TYPE">Vehicle or component type. For a flight controller component the vehicle type (quadrotor, helicopter, etc.). For other components the component type (e.g. camera, gimbal, etc.). This should be used in preference to component id for identifying the component type.</field>
<field type="uint8_t" name="autopilot" enum="MAV_AUTOPILOT">Autopilot type / class. Use MAV_AUTOPILOT_INVALID for components that are not flight controllers.</field>
<field type="uint8_t" name="base_mode" enum="MAV_MODE_FLAG" display="bitmask">System mode bitmap.</field>
<field type="uint32_t" name="custom_mode">A bitfield for use for autopilot-specific flags</field>
<field type="uint8_t" name="system_status" enum="MAV_STATE">System status flag.</field>
<field type="uint8_t_mavlink_version" name="mavlink_version">MAVLink version, not writable by user, gets added by protocol because of magic data type: uint8_t_mavlink_version</field>
</message>
<message id="1" name="SYS_STATUS"> <message id="1" name="SYS_STATUS">
<description>The general system state. If the system is following the MAVLink standard, the system state is mainly defined by three orthogonal states/modes: The system mode, which is either LOCKED (motors shut down and locked), MANUAL (system under RC control), GUIDED (system with autonomous position control, position setpoint controlled manually) or AUTO (system guided by path/waypoint planner). The NAV_MODE defined the current flight state: LIFTOFF (often an open-loop maneuver), LANDING, WAYPOINTS or VECTOR. This represents the internal navigation state machine. The system status shows whether the system is currently active or not and if an emergency occurred. During the CRITICAL and EMERGENCY states the MAV is still considered to be active, but should start emergency procedures autonomously. After a failure occurred it should first move from active to critical to allow manual intervention and then move to emergency after a certain timeout.</description> <description>The general system state. If the system is following the MAVLink standard, the system state is mainly defined by three orthogonal states/modes: The system mode, which is either LOCKED (motors shut down and locked), MANUAL (system under RC control), GUIDED (system with autonomous position control, position setpoint controlled manually) or AUTO (system guided by path/waypoint planner). The NAV_MODE defined the current flight state: LIFTOFF (often an open-loop maneuver), LANDING, WAYPOINTS or VECTOR. This represents the internal navigation state machine. The system status shows whether the system is currently active or not and if an emergency occurred. During the CRITICAL and EMERGENCY states the MAV is still considered to be active, but should start emergency procedures autonomously. After a failure occurred it should first move from active to critical to allow manual intervention and then move to emergency after a certain timeout.</description>
<field type="uint32_t" name="onboard_control_sensors_present" enum="MAV_SYS_STATUS_SENSOR" display="bitmask" print_format="0x%04x">Bitmap showing which onboard controllers and sensors are present. Value of 0: not present. Value of 1: present.</field> <field type="uint32_t" name="onboard_control_sensors_present" enum="MAV_SYS_STATUS_SENSOR" display="bitmask" print_format="0x%04x">Bitmap showing which onboard controllers and sensors are present. Value of 0: not present. Value of 1: present.</field>
...@@ -6824,16 +6155,6 @@ ...@@ -6824,16 +6155,6 @@
<field type="int8_t" name="mode" enum="WIFI_CONFIG_AP_MODE">WiFi Mode.</field> <field type="int8_t" name="mode" enum="WIFI_CONFIG_AP_MODE">WiFi Mode.</field>
<field type="int8_t" name="response" enum="WIFI_CONFIG_AP_RESPONSE">Message acceptance response (sent back to GS).</field> <field type="int8_t" name="response" enum="WIFI_CONFIG_AP_RESPONSE">Message acceptance response (sent back to GS).</field>
</message> </message>
<message id="300" name="PROTOCOL_VERSION">
<wip/>
<!-- This message is work-in-progress and it can therefore change. It should NOT be used in stable production environments. -->
<description>Version and capability of protocol version. This message can be requested with MAV_CMD_REQUEST_MESSAGE and is used as part of the handshaking to establish which MAVLink version should be used on the network. Every node should respond to a request for PROTOCOL_VERSION to enable the handshaking. Library implementers should consider adding this into the default decoding state machine to allow the protocol core to respond directly.</description>
<field type="uint16_t" name="version">Currently active MAVLink version number * 100: v1.0 is 100, v2.0 is 200, etc.</field>
<field type="uint16_t" name="min_version">Minimum MAVLink version supported</field>
<field type="uint16_t" name="max_version">Maximum MAVLink version supported (set to the same value as version by default)</field>
<field type="uint8_t[8]" name="spec_version_hash">The first 8 bytes (not characters printed in hex!) of the git hash.</field>
<field type="uint8_t[8]" name="library_version_hash">The first 8 bytes (not characters printed in hex!) of the git hash.</field>
</message>
<message id="301" name="AIS_VESSEL"> <message id="301" name="AIS_VESSEL">
<wip/> <wip/>
<!-- This message is work-in-progress and it can therefore change. It should NOT be used in stable production environments. --> <!-- This message is work-in-progress and it can therefore change. It should NOT be used in stable production environments. -->
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<description>SLUGS autopilot, http://slugsuav.soe.ucsc.edu</description> <description>SLUGS autopilot, http://slugsuav.soe.ucsc.edu</description>
</entry> </entry>
<entry value="3" name="MAV_AUTOPILOT_ARDUPILOTMEGA"> <entry value="3" name="MAV_AUTOPILOT_ARDUPILOTMEGA">
<description>ArduPilot - Plane/Copter/Rover/Sub/Tracker, http://ardupilot.org</description> <description>ArduPilot - Plane/Copter/Rover/Sub/Tracker, https://ardupilot.org</description>
</entry> </entry>
<entry value="4" name="MAV_AUTOPILOT_OPENPILOT"> <entry value="4" name="MAV_AUTOPILOT_OPENPILOT">
<description>OpenPilot, http://openpilot.org</description> <description>OpenPilot, http://openpilot.org</description>
...@@ -170,8 +170,11 @@ ...@@ -170,8 +170,11 @@
<entry value="33" name="MAV_TYPE_SERVO"> <entry value="33" name="MAV_TYPE_SERVO">
<description>Servo</description> <description>Servo</description>
</entry> </entry>
<entry value="34" name="MAV_TYPE_ODID">
<description>Open Drone ID. See https://mavlink.io/en/services/opendroneid.html.</description>
</entry>
</enum> </enum>
<enum name="MAV_MODE_FLAG"> <enum name="MAV_MODE_FLAG" bitmask="true">
<description>These flags encode the MAV mode.</description> <description>These flags encode the MAV mode.</description>
<entry value="128" name="MAV_MODE_FLAG_SAFETY_ARMED"> <entry value="128" name="MAV_MODE_FLAG_SAFETY_ARMED">
<description>0b10000000 MAV safety set to armed. Motors are enabled / running / can start. Ready to fly. Additional note: this flag is to be ignore when sent in the command MAV_CMD_DO_SET_MODE and MAV_CMD_COMPONENT_ARM_DISARM shall be used instead. The flag can still be used to report the armed state.</description> <description>0b10000000 MAV safety set to armed. Motors are enabled / running / can start. Ready to fly. Additional note: this flag is to be ignore when sent in the command MAV_CMD_DO_SET_MODE and MAV_CMD_COMPONENT_ARM_DISARM shall be used instead. The flag can still be used to report the armed state.</description>
...@@ -198,7 +201,7 @@ ...@@ -198,7 +201,7 @@
<description>0b00000001 Reserved for future use.</description> <description>0b00000001 Reserved for future use.</description>
</entry> </entry>
</enum> </enum>
<enum name="MAV_MODE_FLAG_DECODE_POSITION"> <enum name="MAV_MODE_FLAG_DECODE_POSITION" bitmask="true">
<description>These values encode the bit positions of the decode position. These values can be used to read the value of a flag bit by combining the base_mode variable with AND with the flag position value. The result will be either 0 or 1, depending on if the flag is set or not.</description> <description>These values encode the bit positions of the decode position. These values can be used to read the value of a flag bit by combining the base_mode variable with AND with the flag position value. The result will be either 0 or 1, depending on if the flag is set or not.</description>
<entry value="128" name="MAV_MODE_FLAG_DECODE_POSITION_SAFETY"> <entry value="128" name="MAV_MODE_FLAG_DECODE_POSITION_SAFETY">
<description>First bit: 10000000</description> <description>First bit: 10000000</description>
...@@ -259,7 +262,7 @@ ...@@ -259,7 +262,7 @@
Components must use the appropriate ID in their source address when sending messages. Components can also use IDs to determine if they are the intended recipient of an incoming message. The MAV_COMP_ID_ALL value is used to indicate messages that must be processed by all components. Components must use the appropriate ID in their source address when sending messages. Components can also use IDs to determine if they are the intended recipient of an incoming message. The MAV_COMP_ID_ALL value is used to indicate messages that must be processed by all components.
When creating new entries, components that can have multiple instances (e.g. cameras, servos etc.) should be allocated sequential values. An appropriate number of values should be left free after these components to allow the number of instances to be expanded.</description> When creating new entries, components that can have multiple instances (e.g. cameras, servos etc.) should be allocated sequential values. An appropriate number of values should be left free after these components to allow the number of instances to be expanded.</description>
<entry value="0" name="MAV_COMP_ID_ALL"> <entry value="0" name="MAV_COMP_ID_ALL">
<description>Used to broadcast messages to all components of the receiving system. Components should attempt to process messages with this component ID and forward to components on any other interfaces.</description> <description>Target id (target_component) used to broadcast messages to all components of the receiving system. Components should attempt to process messages with this component ID and forward to components on any other interfaces. Note: This is not a valid *source* component id for a message.</description>
</entry> </entry>
<entry value="1" name="MAV_COMP_ID_AUTOPILOT1"> <entry value="1" name="MAV_COMP_ID_AUTOPILOT1">
<description>System flight controller component ("autopilot"). Only one autopilot is expected in a particular system.</description> <description>System flight controller component ("autopilot"). Only one autopilot is expected in a particular system.</description>
...@@ -394,8 +397,8 @@ ...@@ -394,8 +397,8 @@
<entry value="67" name="MAV_COMP_ID_USER43"> <entry value="67" name="MAV_COMP_ID_USER43">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description> <description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
</entry> </entry>
<entry value="68" name="MAV_COMP_ID_USER44"> <entry value="68" name="MAV_COMP_ID_TELEMETRY_RADIO">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description> <description>Telemetry radio (e.g. SiK radio, or other component that emits RADIO_STATUS messages).</description>
</entry> </entry>
<entry value="69" name="MAV_COMP_ID_USER45"> <entry value="69" name="MAV_COMP_ID_USER45">
<description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description> <description>Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network.</description>
...@@ -551,7 +554,7 @@ ...@@ -551,7 +554,7 @@
<description>Servo #14.</description> <description>Servo #14.</description>
</entry> </entry>
<entry value="154" name="MAV_COMP_ID_GIMBAL"> <entry value="154" name="MAV_COMP_ID_GIMBAL">
<description>Gimbal component.</description> <description>Gimbal #1.</description>
</entry> </entry>
<entry value="155" name="MAV_COMP_ID_LOG"> <entry value="155" name="MAV_COMP_ID_LOG">
<description>Logging component.</description> <description>Logging component.</description>
...@@ -572,9 +575,28 @@ ...@@ -572,9 +575,28 @@
<entry value="160" name="MAV_COMP_ID_FLARM"> <entry value="160" name="MAV_COMP_ID_FLARM">
<description>FLARM collision alert component.</description> <description>FLARM collision alert component.</description>
</entry> </entry>
<entry value="171" name="MAV_COMP_ID_GIMBAL2">
<description>Gimbal #2.</description>
</entry>
<entry value="172" name="MAV_COMP_ID_GIMBAL3">
<description>Gimbal #3.</description>
</entry>
<entry value="173" name="MAV_COMP_ID_GIMBAL4">
<description>Gimbal #4</description>
</entry>
<entry value="174" name="MAV_COMP_ID_GIMBAL5">
<description>Gimbal #5.</description>
</entry>
<entry value="175" name="MAV_COMP_ID_GIMBAL6">
<description>Gimbal #6.</description>
</entry>
<entry value="190" name="MAV_COMP_ID_MISSIONPLANNER"> <entry value="190" name="MAV_COMP_ID_MISSIONPLANNER">
<description>Component that can generate/supply a mission flight plan (e.g. GCS or developer API).</description> <description>Component that can generate/supply a mission flight plan (e.g. GCS or developer API).</description>
</entry> </entry>
<entry value="191" name="MAV_COMP_ID_ONBOARD_COMPUTER">
<description>Component that lives on the onboard computer (companion computer) and has some generic functionalities, such as settings system parameters and monitoring the status of some processes that don't directly speak mavlink and so on.</description>
</entry>
<!-- Component ids from 192-194 are reserved for any future mavlink components related to the mission computer. -->
<entry value="195" name="MAV_COMP_ID_PATHPLANNER"> <entry value="195" name="MAV_COMP_ID_PATHPLANNER">
<description>Component that finds an optimal path between points based on a certain constraint (e.g. minimum snap, shortest path, cost, etc.).</description> <description>Component that finds an optimal path between points based on a certain constraint (e.g. minimum snap, shortest path, cost, etc.).</description>
</entry> </entry>
...@@ -602,12 +624,24 @@ ...@@ -602,12 +624,24 @@
<entry value="221" name="MAV_COMP_ID_GPS2"> <entry value="221" name="MAV_COMP_ID_GPS2">
<description>GPS #2.</description> <description>GPS #2.</description>
</entry> </entry>
<entry value="236" name="MAV_COMP_ID_ODID_TXRX_1">
<description>Open Drone ID transmitter/receiver (Bluetooth/WiFi/Internet).</description>
</entry>
<entry value="237" name="MAV_COMP_ID_ODID_TXRX_2">
<description>Open Drone ID transmitter/receiver (Bluetooth/WiFi/Internet).</description>
</entry>
<entry value="238" name="MAV_COMP_ID_ODID_TXRX_3">
<description>Open Drone ID transmitter/receiver (Bluetooth/WiFi/Internet).</description>
</entry>
<entry value="240" name="MAV_COMP_ID_UDP_BRIDGE"> <entry value="240" name="MAV_COMP_ID_UDP_BRIDGE">
<description>Component to bridge MAVLink to UDP (i.e. from a UART).</description> <description>Component to bridge MAVLink to UDP (i.e. from a UART).</description>
</entry> </entry>
<entry value="241" name="MAV_COMP_ID_UART_BRIDGE"> <entry value="241" name="MAV_COMP_ID_UART_BRIDGE">
<description>Component to bridge to UART (i.e. from UDP).</description> <description>Component to bridge to UART (i.e. from UDP).</description>
</entry> </entry>
<entry value="242" name="MAV_COMP_ID_TUNNEL_NODE">
<description>Component handling TUNNEL messages (e.g. vendor specific GUI of a component).</description>
</entry>
<entry value="250" name="MAV_COMP_ID_SYSTEM_CONTROL"> <entry value="250" name="MAV_COMP_ID_SYSTEM_CONTROL">
<deprecated since="2018-11" replaced_by="MAV_COMP_ID_ALL">System control does not require a separate component ID.</deprecated> <deprecated since="2018-11" replaced_by="MAV_COMP_ID_ALL">System control does not require a separate component ID.</deprecated>
<description>Component for handling system messages (e.g. to ARM, takeoff, etc.).</description> <description>Component for handling system messages (e.g. to ARM, takeoff, etc.).</description>
...@@ -618,17 +652,17 @@ ...@@ -618,17 +652,17 @@
<entry value="512" name="MAV_CMD_REQUEST_MESSAGE" hasLocation="false" isDestination="false"> <entry value="512" name="MAV_CMD_REQUEST_MESSAGE" hasLocation="false" isDestination="false">
<description>Request the target system(s) emit a single instance of a specified message (i.e. a "one-shot" version of MAV_CMD_SET_MESSAGE_INTERVAL).</description> <description>Request the target system(s) emit a single instance of a specified message (i.e. a "one-shot" version of MAV_CMD_SET_MESSAGE_INTERVAL).</description>
<param index="1" label="Message ID" minValue="0" maxValue="16777215" increment="1">The MAVLink message ID of the requested message.</param> <param index="1" label="Message ID" minValue="0" maxValue="16777215" increment="1">The MAVLink message ID of the requested message.</param>
<param index="2" label="Index ID" minValue="0" increment="1">Index id (if appropriate). The use of this parameter (if any), must be defined in the requested message.</param> <param index="2" label="Req Param 1">Use for index ID, if required. Otherwise, the use of this parameter (if any) must be defined in the requested message. By default assumed not used (0).</param>
<param index="3">The use of this parameter (if any), must be defined in the requested message. By default assumed not used (0).</param> <param index="3" label="Req Param 2">The use of this parameter (if any), must be defined in the requested message. By default assumed not used (0).</param>
<param index="4">The use of this parameter (if any), must be defined in the requested message. By default assumed not used (0).</param> <param index="4" label="Req Param 3">The use of this parameter (if any), must be defined in the requested message. By default assumed not used (0).</param>
<param index="5">The use of this parameter (if any), must be defined in the requested message. By default assumed not used (0).</param> <param index="5" label="Req Param 4">The use of this parameter (if any), must be defined in the requested message. By default assumed not used (0).</param>
<param index="6">The use of this parameter (if any), must be defined in the requested message. By default assumed not used (0).</param> <param index="6" label="Req Param 5">The use of this parameter (if any), must be defined in the requested message. By default assumed not used (0).</param>
<param index="7" label="Response Target" minValue="0" maxValue="2" increment="1">Target address for requested message (if message has target address fields). 0: Flight-stack default, 1: address of requestor, 2: broadcast.</param> <param index="7" label="Response Target" minValue="0" maxValue="2" increment="1">Target address for requested message (if message has target address fields). 0: Flight-stack default, 1: address of requestor, 2: broadcast.</param>
</entry> </entry>
<entry value="519" name="MAV_CMD_REQUEST_PROTOCOL_VERSION" hasLocation="false" isDestination="false"> <entry value="519" name="MAV_CMD_REQUEST_PROTOCOL_VERSION" hasLocation="false" isDestination="false">
<deprecated since="2019-08" replaced_by="MAV_CMD_REQUEST_MESSAGE"/> <deprecated since="2019-08" replaced_by="MAV_CMD_REQUEST_MESSAGE"/>
<description>Request MAVLink protocol version compatibility</description> <description>Request MAVLink protocol version compatibility. All receivers should ACK the command and then emit their capabilities in an PROTOCOL_VERSION message</description>
<param index="1" label="Protocol">1: Request supported protocol versions by all nodes on the network</param> <param index="1" label="Protocol" minValue="0" maxValue="1" increment="1">1: Request supported protocol versions by all nodes on the network</param>
<param index="2">Reserved (all remaining params)</param> <param index="2">Reserved (all remaining params)</param>
</entry> </entry>
</enum> </enum>
...@@ -636,8 +670,8 @@ ...@@ -636,8 +670,8 @@
<messages> <messages>
<message id="0" name="HEARTBEAT"> <message id="0" name="HEARTBEAT">
<description>The heartbeat message shows that a system or component is present and responding. The type and autopilot fields (along with the message component id), allow the receiving system to treat further messages from this system appropriately (e.g. by laying out the user interface based on the autopilot). This microservice is documented at https://mavlink.io/en/services/heartbeat.html</description> <description>The heartbeat message shows that a system or component is present and responding. The type and autopilot fields (along with the message component id), allow the receiving system to treat further messages from this system appropriately (e.g. by laying out the user interface based on the autopilot). This microservice is documented at https://mavlink.io/en/services/heartbeat.html</description>
<field type="uint8_t" name="type" enum="MAV_TYPE">Type of the system (quadrotor, helicopter, etc.). Components use the same type as their associated system.</field> <field type="uint8_t" name="type" enum="MAV_TYPE">Vehicle or component type. For a flight controller component the vehicle type (quadrotor, helicopter, etc.). For other components the component type (e.g. camera, gimbal, etc.). This should be used in preference to component id for identifying the component type.</field>
<field type="uint8_t" name="autopilot" enum="MAV_AUTOPILOT">Autopilot type / class.</field> <field type="uint8_t" name="autopilot" enum="MAV_AUTOPILOT">Autopilot type / class. Use MAV_AUTOPILOT_INVALID for components that are not flight controllers.</field>
<field type="uint8_t" name="base_mode" enum="MAV_MODE_FLAG" display="bitmask">System mode bitmap.</field> <field type="uint8_t" name="base_mode" enum="MAV_MODE_FLAG" display="bitmask">System mode bitmap.</field>
<field type="uint32_t" name="custom_mode">A bitfield for use for autopilot-specific flags</field> <field type="uint32_t" name="custom_mode">A bitfield for use for autopilot-specific flags</field>
<field type="uint8_t" name="system_status" enum="MAV_STATE">System status flag.</field> <field type="uint8_t" name="system_status" enum="MAV_STATE">System status flag.</field>
...@@ -646,7 +680,7 @@ ...@@ -646,7 +680,7 @@
<message id="300" name="PROTOCOL_VERSION"> <message id="300" name="PROTOCOL_VERSION">
<wip/> <wip/>
<!-- This message is work-in-progress and it can therefore change. It should NOT be used in stable production environments. --> <!-- This message is work-in-progress and it can therefore change. It should NOT be used in stable production environments. -->
<description>Version and capability of protocol version. This message is the response to REQUEST_PROTOCOL_VERSION and is used as part of the handshaking to establish which MAVLink version should be used on the network. Every node should respond to REQUEST_PROTOCOL_VERSION to enable the handshaking. Library implementers should consider adding this into the default decoding state machine to allow the protocol core to respond directly.</description> <description>Version and capability of protocol version. This message can be requested with MAV_CMD_REQUEST_MESSAGE and is used as part of the handshaking to establish which MAVLink version should be used on the network. Every node should respond to a request for PROTOCOL_VERSION to enable the handshaking. Library implementers should consider adding this into the default decoding state machine to allow the protocol core to respond directly.</description>
<field type="uint16_t" name="version">Currently active MAVLink version number * 100: v1.0 is 100, v2.0 is 200, etc.</field> <field type="uint16_t" name="version">Currently active MAVLink version number * 100: v1.0 is 100, v2.0 is 200, etc.</field>
<field type="uint16_t" name="min_version">Minimum MAVLink version supported</field> <field type="uint16_t" name="min_version">Minimum MAVLink version supported</field>
<field type="uint16_t" name="max_version">Maximum MAVLink version supported (set to the same value as version by default)</field> <field type="uint16_t" name="max_version">Maximum MAVLink version supported (set to the same value as version by default)</field>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#ifndef MAVLINK_H #ifndef MAVLINK_H
#define MAVLINK_H #define MAVLINK_H
#define MAVLINK_PRIMARY_XML_IDX 0 #define MAVLINK_PRIMARY_XML_IDX 2
#ifndef MAVLINK_STX #ifndef MAVLINK_STX
#define MAVLINK_STX 253 #define MAVLINK_STX 253
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
typedef struct __mavlink_heartbeat_t { typedef struct __mavlink_heartbeat_t {
uint32_t custom_mode; /*< A bitfield for use for autopilot-specific flags*/ uint32_t custom_mode; /*< A bitfield for use for autopilot-specific flags*/
uint8_t type; /*< Type of the system (quadrotor, helicopter, etc.). Components use the same type as their associated system.*/ uint8_t type; /*< Vehicle or component type. For a flight controller component the vehicle type (quadrotor, helicopter, etc.). For other components the component type (e.g. camera, gimbal, etc.). This should be used in preference to component id for identifying the component type.*/
uint8_t autopilot; /*< Autopilot type / class.*/ uint8_t autopilot; /*< Autopilot type / class. Use MAV_AUTOPILOT_INVALID for components that are not flight controllers.*/
uint8_t base_mode; /*< System mode bitmap.*/ uint8_t base_mode; /*< System mode bitmap.*/
uint8_t system_status; /*< System status flag.*/ uint8_t system_status; /*< System status flag.*/
uint8_t mavlink_version; /*< MAVLink version, not writable by user, gets added by protocol because of magic data type: uint8_t_mavlink_version*/ uint8_t mavlink_version; /*< MAVLink version, not writable by user, gets added by protocol because of magic data type: uint8_t_mavlink_version*/
...@@ -56,8 +56,8 @@ typedef struct __mavlink_heartbeat_t { ...@@ -56,8 +56,8 @@ typedef struct __mavlink_heartbeat_t {
* @param component_id ID of this component (e.g. 200 for IMU) * @param component_id ID of this component (e.g. 200 for IMU)
* @param msg The MAVLink message to compress the data into * @param msg The MAVLink message to compress the data into
* *
* @param type Type of the system (quadrotor, helicopter, etc.). Components use the same type as their associated system. * @param type Vehicle or component type. For a flight controller component the vehicle type (quadrotor, helicopter, etc.). For other components the component type (e.g. camera, gimbal, etc.). This should be used in preference to component id for identifying the component type.
* @param autopilot Autopilot type / class. * @param autopilot Autopilot type / class. Use MAV_AUTOPILOT_INVALID for components that are not flight controllers.
* @param base_mode System mode bitmap. * @param base_mode System mode bitmap.
* @param custom_mode A bitfield for use for autopilot-specific flags * @param custom_mode A bitfield for use for autopilot-specific flags
* @param system_status System status flag. * @param system_status System status flag.
...@@ -98,8 +98,8 @@ static inline uint16_t mavlink_msg_heartbeat_pack(uint8_t system_id, uint8_t com ...@@ -98,8 +98,8 @@ static inline uint16_t mavlink_msg_heartbeat_pack(uint8_t system_id, uint8_t com
* @param component_id ID of this component (e.g. 200 for IMU) * @param component_id ID of this component (e.g. 200 for IMU)
* @param chan The MAVLink channel this message will be sent over * @param chan The MAVLink channel this message will be sent over
* @param msg The MAVLink message to compress the data into * @param msg The MAVLink message to compress the data into
* @param type Type of the system (quadrotor, helicopter, etc.). Components use the same type as their associated system. * @param type Vehicle or component type. For a flight controller component the vehicle type (quadrotor, helicopter, etc.). For other components the component type (e.g. camera, gimbal, etc.). This should be used in preference to component id for identifying the component type.
* @param autopilot Autopilot type / class. * @param autopilot Autopilot type / class. Use MAV_AUTOPILOT_INVALID for components that are not flight controllers.
* @param base_mode System mode bitmap. * @param base_mode System mode bitmap.
* @param custom_mode A bitfield for use for autopilot-specific flags * @param custom_mode A bitfield for use for autopilot-specific flags
* @param system_status System status flag. * @param system_status System status flag.
...@@ -166,8 +166,8 @@ static inline uint16_t mavlink_msg_heartbeat_encode_chan(uint8_t system_id, uint ...@@ -166,8 +166,8 @@ static inline uint16_t mavlink_msg_heartbeat_encode_chan(uint8_t system_id, uint
* @brief Send a heartbeat message * @brief Send a heartbeat message
* @param chan MAVLink channel to send the message * @param chan MAVLink channel to send the message
* *
* @param type Type of the system (quadrotor, helicopter, etc.). Components use the same type as their associated system. * @param type Vehicle or component type. For a flight controller component the vehicle type (quadrotor, helicopter, etc.). For other components the component type (e.g. camera, gimbal, etc.). This should be used in preference to component id for identifying the component type.
* @param autopilot Autopilot type / class. * @param autopilot Autopilot type / class. Use MAV_AUTOPILOT_INVALID for components that are not flight controllers.
* @param base_mode System mode bitmap. * @param base_mode System mode bitmap.
* @param custom_mode A bitfield for use for autopilot-specific flags * @param custom_mode A bitfield for use for autopilot-specific flags
* @param system_status System status flag. * @param system_status System status flag.
...@@ -255,7 +255,7 @@ static inline void mavlink_msg_heartbeat_send_buf(mavlink_message_t *msgbuf, mav ...@@ -255,7 +255,7 @@ static inline void mavlink_msg_heartbeat_send_buf(mavlink_message_t *msgbuf, mav
/** /**
* @brief Get field type from heartbeat message * @brief Get field type from heartbeat message
* *
* @return Type of the system (quadrotor, helicopter, etc.). Components use the same type as their associated system. * @return Vehicle or component type. For a flight controller component the vehicle type (quadrotor, helicopter, etc.). For other components the component type (e.g. camera, gimbal, etc.). This should be used in preference to component id for identifying the component type.
*/ */
static inline uint8_t mavlink_msg_heartbeat_get_type(const mavlink_message_t* msg) static inline uint8_t mavlink_msg_heartbeat_get_type(const mavlink_message_t* msg)
{ {
...@@ -265,7 +265,7 @@ static inline uint8_t mavlink_msg_heartbeat_get_type(const mavlink_message_t* ms ...@@ -265,7 +265,7 @@ static inline uint8_t mavlink_msg_heartbeat_get_type(const mavlink_message_t* ms
/** /**
* @brief Get field autopilot from heartbeat message * @brief Get field autopilot from heartbeat message
* *
* @return Autopilot type / class. * @return Autopilot type / class. Use MAV_AUTOPILOT_INVALID for components that are not flight controllers.
*/ */
static inline uint8_t mavlink_msg_heartbeat_get_autopilot(const mavlink_message_t* msg) static inline uint8_t mavlink_msg_heartbeat_get_autopilot(const mavlink_message_t* msg)
{ {
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
#endif #endif
#undef MAVLINK_THIS_XML_IDX #undef MAVLINK_THIS_XML_IDX
#define MAVLINK_THIS_XML_IDX 0 #define MAVLINK_THIS_XML_IDX 2
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
...@@ -42,7 +42,7 @@ typedef enum MAV_AUTOPILOT ...@@ -42,7 +42,7 @@ typedef enum MAV_AUTOPILOT
MAV_AUTOPILOT_GENERIC=0, /* Generic autopilot, full support for everything | */ MAV_AUTOPILOT_GENERIC=0, /* Generic autopilot, full support for everything | */
MAV_AUTOPILOT_RESERVED=1, /* Reserved for future use. | */ MAV_AUTOPILOT_RESERVED=1, /* Reserved for future use. | */
MAV_AUTOPILOT_SLUGS=2, /* SLUGS autopilot, http://slugsuav.soe.ucsc.edu | */ MAV_AUTOPILOT_SLUGS=2, /* SLUGS autopilot, http://slugsuav.soe.ucsc.edu | */
MAV_AUTOPILOT_ARDUPILOTMEGA=3, /* ArduPilot - Plane/Copter/Rover/Sub/Tracker, http://ardupilot.org | */ MAV_AUTOPILOT_ARDUPILOTMEGA=3, /* ArduPilot - Plane/Copter/Rover/Sub/Tracker, https://ardupilot.org | */
MAV_AUTOPILOT_OPENPILOT=4, /* OpenPilot, http://openpilot.org | */ MAV_AUTOPILOT_OPENPILOT=4, /* OpenPilot, http://openpilot.org | */
MAV_AUTOPILOT_GENERIC_WAYPOINTS_ONLY=5, /* Generic autopilot only supporting simple waypoints | */ MAV_AUTOPILOT_GENERIC_WAYPOINTS_ONLY=5, /* Generic autopilot only supporting simple waypoints | */
MAV_AUTOPILOT_GENERIC_WAYPOINTS_AND_SIMPLE_NAVIGATION_ONLY=6, /* Generic autopilot supporting waypoints and other simple navigation commands | */ MAV_AUTOPILOT_GENERIC_WAYPOINTS_AND_SIMPLE_NAVIGATION_ONLY=6, /* Generic autopilot supporting waypoints and other simple navigation commands | */
...@@ -102,7 +102,8 @@ typedef enum MAV_TYPE ...@@ -102,7 +102,8 @@ typedef enum MAV_TYPE
MAV_TYPE_CHARGING_STATION=31, /* Charging station | */ MAV_TYPE_CHARGING_STATION=31, /* Charging station | */
MAV_TYPE_FLARM=32, /* FLARM collision avoidance system | */ MAV_TYPE_FLARM=32, /* FLARM collision avoidance system | */
MAV_TYPE_SERVO=33, /* Servo | */ MAV_TYPE_SERVO=33, /* Servo | */
MAV_TYPE_ENUM_END=34, /* | */ MAV_TYPE_ODID=34, /* Open Drone ID. See https://mavlink.io/en/services/opendroneid.html. | */
MAV_TYPE_ENUM_END=35, /* | */
} MAV_TYPE; } MAV_TYPE;
#endif #endif
...@@ -165,7 +166,7 @@ typedef enum MAV_STATE ...@@ -165,7 +166,7 @@ typedef enum MAV_STATE
#define HAVE_ENUM_MAV_COMPONENT #define HAVE_ENUM_MAV_COMPONENT
typedef enum MAV_COMPONENT typedef enum MAV_COMPONENT
{ {
MAV_COMP_ID_ALL=0, /* Used to broadcast messages to all components of the receiving system. Components should attempt to process messages with this component ID and forward to components on any other interfaces. | */ MAV_COMP_ID_ALL=0, /* Target id (target_component) used to broadcast messages to all components of the receiving system. Components should attempt to process messages with this component ID and forward to components on any other interfaces. Note: This is not a valid *source* component id for a message. | */
MAV_COMP_ID_AUTOPILOT1=1, /* System flight controller component ("autopilot"). Only one autopilot is expected in a particular system. | */ MAV_COMP_ID_AUTOPILOT1=1, /* System flight controller component ("autopilot"). Only one autopilot is expected in a particular system. | */
MAV_COMP_ID_USER1=25, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */ MAV_COMP_ID_USER1=25, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER2=26, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */ MAV_COMP_ID_USER2=26, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
...@@ -210,7 +211,7 @@ typedef enum MAV_COMPONENT ...@@ -210,7 +211,7 @@ typedef enum MAV_COMPONENT
MAV_COMP_ID_USER41=65, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */ MAV_COMP_ID_USER41=65, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER42=66, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */ MAV_COMP_ID_USER42=66, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER43=67, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */ MAV_COMP_ID_USER43=67, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER44=68, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */ MAV_COMP_ID_TELEMETRY_RADIO=68, /* Telemetry radio (e.g. SiK radio, or other component that emits RADIO_STATUS messages). | */
MAV_COMP_ID_USER45=69, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */ MAV_COMP_ID_USER45=69, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER46=70, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */ MAV_COMP_ID_USER46=70, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
MAV_COMP_ID_USER47=71, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */ MAV_COMP_ID_USER47=71, /* Id for a component on privately managed MAVLink network. Can be used for any purpose but may not be published by components outside of the private network. | */
...@@ -262,14 +263,20 @@ typedef enum MAV_COMPONENT ...@@ -262,14 +263,20 @@ typedef enum MAV_COMPONENT
MAV_COMP_ID_SERVO12=151, /* Servo #12. | */ MAV_COMP_ID_SERVO12=151, /* Servo #12. | */
MAV_COMP_ID_SERVO13=152, /* Servo #13. | */ MAV_COMP_ID_SERVO13=152, /* Servo #13. | */
MAV_COMP_ID_SERVO14=153, /* Servo #14. | */ MAV_COMP_ID_SERVO14=153, /* Servo #14. | */
MAV_COMP_ID_GIMBAL=154, /* Gimbal component. | */ MAV_COMP_ID_GIMBAL=154, /* Gimbal #1. | */
MAV_COMP_ID_LOG=155, /* Logging component. | */ MAV_COMP_ID_LOG=155, /* Logging component. | */
MAV_COMP_ID_ADSB=156, /* Automatic Dependent Surveillance-Broadcast (ADS-B) component. | */ MAV_COMP_ID_ADSB=156, /* Automatic Dependent Surveillance-Broadcast (ADS-B) component. | */
MAV_COMP_ID_OSD=157, /* On Screen Display (OSD) devices for video links. | */ MAV_COMP_ID_OSD=157, /* On Screen Display (OSD) devices for video links. | */
MAV_COMP_ID_PERIPHERAL=158, /* Generic autopilot peripheral component ID. Meant for devices that do not implement the parameter microservice. | */ MAV_COMP_ID_PERIPHERAL=158, /* Generic autopilot peripheral component ID. Meant for devices that do not implement the parameter microservice. | */
MAV_COMP_ID_QX1_GIMBAL=159, /* Gimbal ID for QX1. | */ MAV_COMP_ID_QX1_GIMBAL=159, /* Gimbal ID for QX1. | */
MAV_COMP_ID_FLARM=160, /* FLARM collision alert component. | */ MAV_COMP_ID_FLARM=160, /* FLARM collision alert component. | */
MAV_COMP_ID_GIMBAL2=171, /* Gimbal #2. | */
MAV_COMP_ID_GIMBAL3=172, /* Gimbal #3. | */
MAV_COMP_ID_GIMBAL4=173, /* Gimbal #4 | */
MAV_COMP_ID_GIMBAL5=174, /* Gimbal #5. | */
MAV_COMP_ID_GIMBAL6=175, /* Gimbal #6. | */
MAV_COMP_ID_MISSIONPLANNER=190, /* Component that can generate/supply a mission flight plan (e.g. GCS or developer API). | */ MAV_COMP_ID_MISSIONPLANNER=190, /* Component that can generate/supply a mission flight plan (e.g. GCS or developer API). | */
MAV_COMP_ID_ONBOARD_COMPUTER=191, /* Component that lives on the onboard computer (companion computer) and has some generic functionalities, such as settings system parameters and monitoring the status of some processes that don't directly speak mavlink and so on. | */
MAV_COMP_ID_PATHPLANNER=195, /* Component that finds an optimal path between points based on a certain constraint (e.g. minimum snap, shortest path, cost, etc.). | */ MAV_COMP_ID_PATHPLANNER=195, /* Component that finds an optimal path between points based on a certain constraint (e.g. minimum snap, shortest path, cost, etc.). | */
MAV_COMP_ID_OBSTACLE_AVOIDANCE=196, /* Component that plans a collision free path between two points. | */ MAV_COMP_ID_OBSTACLE_AVOIDANCE=196, /* Component that plans a collision free path between two points. | */
MAV_COMP_ID_VISUAL_INERTIAL_ODOMETRY=197, /* Component that provides position estimates using VIO techniques. | */ MAV_COMP_ID_VISUAL_INERTIAL_ODOMETRY=197, /* Component that provides position estimates using VIO techniques. | */
...@@ -279,24 +286,17 @@ typedef enum MAV_COMPONENT ...@@ -279,24 +286,17 @@ typedef enum MAV_COMPONENT
MAV_COMP_ID_IMU_3=202, /* Inertial Measurement Unit (IMU) #3. | */ MAV_COMP_ID_IMU_3=202, /* Inertial Measurement Unit (IMU) #3. | */
MAV_COMP_ID_GPS=220, /* GPS #1. | */ MAV_COMP_ID_GPS=220, /* GPS #1. | */
MAV_COMP_ID_GPS2=221, /* GPS #2. | */ MAV_COMP_ID_GPS2=221, /* GPS #2. | */
MAV_COMP_ID_ODID_TXRX_1=236, /* Open Drone ID transmitter/receiver (Bluetooth/WiFi/Internet). | */
MAV_COMP_ID_ODID_TXRX_2=237, /* Open Drone ID transmitter/receiver (Bluetooth/WiFi/Internet). | */
MAV_COMP_ID_ODID_TXRX_3=238, /* Open Drone ID transmitter/receiver (Bluetooth/WiFi/Internet). | */
MAV_COMP_ID_UDP_BRIDGE=240, /* Component to bridge MAVLink to UDP (i.e. from a UART). | */ MAV_COMP_ID_UDP_BRIDGE=240, /* Component to bridge MAVLink to UDP (i.e. from a UART). | */
MAV_COMP_ID_UART_BRIDGE=241, /* Component to bridge to UART (i.e. from UDP). | */ MAV_COMP_ID_UART_BRIDGE=241, /* Component to bridge to UART (i.e. from UDP). | */
MAV_COMP_ID_TUNNEL_NODE=242, /* Component handling TUNNEL messages (e.g. vendor specific GUI of a component). | */
MAV_COMP_ID_SYSTEM_CONTROL=250, /* Component for handling system messages (e.g. to ARM, takeoff, etc.). | */ MAV_COMP_ID_SYSTEM_CONTROL=250, /* Component for handling system messages (e.g. to ARM, takeoff, etc.). | */
MAV_COMPONENT_ENUM_END=251, /* | */ MAV_COMPONENT_ENUM_END=251, /* | */
} MAV_COMPONENT; } MAV_COMPONENT;
#endif #endif
/** @brief Commands to be executed by the MAV. They can be executed on user request, or as part of a mission script. If the action is used in a mission, the parameter mapping to the waypoint/mission message is as follows: Param 1, Param 2, Param 3, Param 4, X: Param 5, Y:Param 6, Z:Param 7. This command list is similar what ARINC 424 is for commercial aircraft: A data format how to interpret waypoint/mission data. See https://mavlink.io/en/guide/xml_schema.html#MAV_CMD for information about the structure of the MAV_CMD entries */
#ifndef HAVE_ENUM_MAV_CMD
#define HAVE_ENUM_MAV_CMD
typedef enum MAV_CMD
{
MAV_CMD_REQUEST_MESSAGE=512, /* Request the target system(s) emit a single instance of a specified message (i.e. a "one-shot" version of MAV_CMD_SET_MESSAGE_INTERVAL). |The MAVLink message ID of the requested message.| Index id (if appropriate). The use of this parameter (if any), must be defined in the requested message.| The use of this parameter (if any), must be defined in the requested message. By default assumed not used (0).| The use of this parameter (if any), must be defined in the requested message. By default assumed not used (0).| The use of this parameter (if any), must be defined in the requested message. By default assumed not used (0).| The use of this parameter (if any), must be defined in the requested message. By default assumed not used (0).| Target address for requested message (if message has target address fields). 0: Flight-stack default, 1: address of requestor, 2: broadcast.| */
MAV_CMD_REQUEST_PROTOCOL_VERSION=519, /* Request MAVLink protocol version compatibility |1: Request supported protocol versions by all nodes on the network| Reserved (all remaining params)| Reserved (default:0)| Reserved (default:0)| Reserved (default:0)| Reserved (default:0)| Reserved (default:0)| */
MAV_CMD_ENUM_END=520, /* | */
} MAV_CMD;
#endif
// MAVLINK VERSION // MAVLINK VERSION
#ifndef MAVLINK_VERSION #ifndef MAVLINK_VERSION
...@@ -316,7 +316,7 @@ typedef enum MAV_CMD ...@@ -316,7 +316,7 @@ typedef enum MAV_CMD
#undef MAVLINK_THIS_XML_IDX #undef MAVLINK_THIS_XML_IDX
#define MAVLINK_THIS_XML_IDX 0 #define MAVLINK_THIS_XML_IDX 2
#if MAVLINK_THIS_XML_IDX == MAVLINK_PRIMARY_XML_IDX #if MAVLINK_THIS_XML_IDX == MAVLINK_PRIMARY_XML_IDX
# define MAVLINK_MESSAGE_INFO {MAVLINK_MESSAGE_INFO_HEARTBEAT, MAVLINK_MESSAGE_INFO_PROTOCOL_VERSION} # define MAVLINK_MESSAGE_INFO {MAVLINK_MESSAGE_INFO_HEARTBEAT, MAVLINK_MESSAGE_INFO_PROTOCOL_VERSION}
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#ifndef MAVLINK_VERSION_H #ifndef MAVLINK_VERSION_H
#define MAVLINK_VERSION_H #define MAVLINK_VERSION_H
#define MAVLINK_BUILD_DATE "Fri Aug 28 2020" #define MAVLINK_BUILD_DATE "Mon Aug 31 2020"
#define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0"
#define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 22 #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 22
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#ifndef MAVLINK_VERSION_H #ifndef MAVLINK_VERSION_H
#define MAVLINK_VERSION_H #define MAVLINK_VERSION_H
#define MAVLINK_BUILD_DATE "Fri Aug 28 2020" #define MAVLINK_BUILD_DATE "Mon Aug 31 2020"
#define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0"
#define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255 #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#ifndef MAVLINK_VERSION_H #ifndef MAVLINK_VERSION_H
#define MAVLINK_VERSION_H #define MAVLINK_VERSION_H
#define MAVLINK_BUILD_DATE "Fri Aug 28 2020" #define MAVLINK_BUILD_DATE "Mon Aug 31 2020"
#define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0"
#define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255 #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#ifndef MAVLINK_VERSION_H #ifndef MAVLINK_VERSION_H
#define MAVLINK_VERSION_H #define MAVLINK_VERSION_H
#define MAVLINK_BUILD_DATE "Fri Aug 28 2020" #define MAVLINK_BUILD_DATE "Mon Aug 31 2020"
#define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0"
#define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 179 #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 179
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#ifndef MAVLINK_VERSION_H #ifndef MAVLINK_VERSION_H
#define MAVLINK_VERSION_H #define MAVLINK_VERSION_H
#define MAVLINK_BUILD_DATE "Fri Aug 28 2020" #define MAVLINK_BUILD_DATE "Mon Aug 31 2020"
#define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0"
#define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255 #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment