#error Wrong include order: MAVLINK_MINIMAL.H MUST NOT BE DIRECTLY USED. Include mavlink.h from the same directory instead or set ALL AND EVERY defines from MAVLINK.H manually accordingly, including the #define MAVLINK_H call.
/** @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). */
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_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. | */
/** @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. */
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.).
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_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_USE16=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_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_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_MISSIONPLANNER=190,/* Component that can generate/supply a mission flight plan (e.g. GCS or developer API). | */
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_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_SYSTEM_CONTROL=250,/* Component for handling system messages (e.g. to ARM, takeoff, etc.). | */
MAV_COMPONENT_ENUM_END=251,/* | */
}MAV_COMPONENT;
#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
typedefenumMAV_CMD
{
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)| */