<?xml version='1.0'?>
<mavlink>
    <version>3</version>
    <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_PIXHAWK">
                    <description>PIXHAWK autopilot, http://pixhawk.ethz.ch</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>ArduPilotMega / ArduCopter, http://diydrones.com</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://pixhawk.ethz.ch/px4/</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>
<!-- this is my entry 83 = 'S'  -->
               <entry value="83" name="MAV_AUTOPILOT_STORM32">
                    <description>STorM32 gimbal -- http://http://www.olliw.eu/2013/storm32bgc/</description>
               </entry>
          </enum>

          <enum name="MAV_TYPE">
               <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>Octorotor</description>
               </entry>
               <entry value="16" name="MAV_TYPE_FLAPPING_WING">
                    <description>Flapping wing</description>
               </entry>
               <entry value="17" name="MAV_TYPE_KITE">
                    <description>Flapping wing</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>
               <!-- Entries up to 25 reserved for other VTOL airframes -->
               <entry value="26" name="MAV_TYPE_GIMBAL">
                    <description>Onboard gimbal</description>
               </entry>
          </enum>

          <enum name="MAV_MODE_FLAG">
                <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.</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 MISSIONs / 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_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>
          </enum>

          <enum name="MAV_COMPONENT">
               <entry value="0" name="MAV_COMP_ID_ALL">
                    <description/>
               </entry>
               <entry value="220" name="MAV_COMP_ID_GPS">
                    <description/>
               </entry>
               <entry value="190" name="MAV_COMP_ID_MISSIONPLANNER">
                    <description/>
               </entry>
               <entry value="195" name="MAV_COMP_ID_PATHPLANNER">
                    <description/>
               </entry>
               <entry value="180" name="MAV_COMP_ID_MAPPER">
                    <description/>
               </entry>
               <entry value="100" name="MAV_COMP_ID_CAMERA">
                    <description/>
               </entry>
               <entry value="200" name="MAV_COMP_ID_IMU">
                    <description/>
               </entry>
               <entry value="201" name="MAV_COMP_ID_IMU_2">
                    <description/>
               </entry>
               <entry value="202" name="MAV_COMP_ID_IMU_3">
                    <description/>
               </entry>
               <entry value="240" name="MAV_COMP_ID_UDP_BRIDGE">
                    <description/>
               </entry>
               <entry value="241" name="MAV_COMP_ID_UART_BRIDGE">
                    <description/>
               </entry>
               <entry value="250" name="MAV_COMP_ID_SYSTEM_CONTROL">
                    <description/>
               </entry>
               <entry value="140" name="MAV_COMP_ID_SERVO1">
                    <description/>
               </entry>
               <entry value="141" name="MAV_COMP_ID_SERVO2">
                    <description/>
               </entry>
               <entry value="142" name="MAV_COMP_ID_SERVO3">
                    <description/>
               </entry>
               <entry value="143" name="MAV_COMP_ID_SERVO4">
                    <description/>
               </entry>
               <entry value="144" name="MAV_COMP_ID_SERVO5">
                    <description/>
               </entry>
               <entry value="145" name="MAV_COMP_ID_SERVO6">
                    <description/>
               </entry>
               <entry value="146" name="MAV_COMP_ID_SERVO7">
                    <description/>
               </entry>
               <entry value="147" name="MAV_COMP_ID_SERVO8">
                    <description/>
               </entry>
               <entry value="148" name="MAV_COMP_ID_SERVO9">
                    <description/>
               </entry>
               <entry value="149" name="MAV_COMP_ID_SERVO10">
                    <description/>
               </entry>
               <entry value="150" name="MAV_COMP_ID_SERVO11">
                    <description/>
               </entry>
               <entry value="151" name="MAV_COMP_ID_SERVO12">
                    <description/>
               </entry>
               <entry value="152" name="MAV_COMP_ID_SERVO13">
                    <description/>
               </entry>
               <entry value="153" name="MAV_COMP_ID_SERVO14">
                    <description/>
               </entry>
               <entry value="154" name="MAV_COMP_ID_GIMBAL">
                    <description/>
               </entry>
          </enum>

          <enum name="MAV_MOUNT_MODE">
              <description>Enumeration of possible mount operation modes</description>
              <entry name="MAV_MOUNT_MODE_RETRACT" value="0"><description>Load and keep safe position (Roll,Pitch,Yaw) from permant memory and stop stabilization</description></entry>
              <entry name="MAV_MOUNT_MODE_NEUTRAL" value="1"><description>Load and keep neutral position (Roll,Pitch,Yaw) from permanent memory.</description></entry>
              <entry name="MAV_MOUNT_MODE_MAVLINK_TARGETING" value="2"><description>Load neutral position and start MAVLink Roll,Pitch,Yaw control with stabilization</description></entry>
              <entry name="MAV_MOUNT_MODE_RC_TARGETING" value="3"><description>Load neutral position and start RC Roll,Pitch,Yaw control with stabilization</description></entry>
              <entry name="MAV_MOUNT_MODE_GPS_POINT" value="4"><description>Load neutral position and start to point to Lat,Lon,Alt</description></entry>
          </enum>

          <enum name="MAV_CMD">
               <description>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.</description>
               <entry value="180" name="MAV_CMD_DO_SET_PARAMETER">
                    <description>Set a system parameter.  Caution!  Use of this command requires knowledge of the numeric enumeration value of the parameter.</description>
                    <param index="1">Parameter number</param>
                    <param index="2">Parameter value</param>
                    <param index="3">Empty</param>
                    <param index="4">Empty</param>
                    <param index="5">Empty</param>
                    <param index="6">Empty</param>
                    <param index="7">Empty</param>
               </entry>
               <entry value="183" name="MAV_CMD_DO_SET_SERVO">
                    <description>Set a servo to a desired PWM value.</description>
                    <param index="1">Servo number</param>
                    <param index="2">PWM (microseconds, 1000 to 2000 typical)</param>
                    <param index="3">Empty</param>
                    <param index="4">Empty</param>
                    <param index="5">Empty</param>
                    <param index="6">Empty</param>
                    <param index="7">Empty</param>
               </entry>
               <entry value="184" name="MAV_CMD_DO_REPEAT_SERVO">
                    <description>Cycle a between its nominal setting and a desired PWM for a desired number of cycles with a desired period.</description>
                    <param index="1">Servo number</param>
                    <param index="2">PWM (microseconds, 1000 to 2000 typical)</param>
                    <param index="3">Cycle count</param>
                    <param index="4">Cycle time (seconds)</param>
                    <param index="5">Empty</param>
                    <param index="6">Empty</param>
                    <param index="7">Empty</param>
               </entry>
               <entry value="205" name="MAV_CMD_DO_MOUNT_CONTROL">
                   <description>Mission command to control a camera or antenna mount</description>
                   <param index="1">pitch or lat in degrees, depending on mount mode.</param>
                   <param index="2">roll or lon in degrees depending on mount mode</param>
                   <param index="3">yaw or alt (in meters) depending on mount mode</param>
                   <param index="4">reserved</param>
                   <param index="5">reserved</param>
                   <param index="6">reserved</param>
                   <param index="7">MAV_MOUNT_MODE enum value</param>
               </entry>

               <entry name="MAV_CMD_DO_DIGICAM_CONTROL" value="203">
                   <description>Mission command to control an on-board camera controller system.</description>
                   <param index="1">Session control e.g. show/hide lens</param>
                   <param index="2">Zoom's absolute position</param>
                   <param index="3">Zooming step value to offset zoom from the current position</param>
                   <param index="4">Focus Locking, Unlocking or Re-locking</param>
                   <param index="5">Shooting Command</param>
                   <param index="6">Command Identity</param>
                   <param index="7">Empty</param>
               </entry>
<!-- these are not supported by ArduCopter
              <entry value="2000" name="MAV_CMD_IMAGE_START_CAPTURE">
                  <description>Start image capture sequence</description>
                  <param index="1">Duration between two consecutive pictures (in seconds)</param>
                  <param index="2">Number of images to capture total - 0 for unlimited capture</param>
                  <param index="3">Resolution in megapixels (0.3 for 640x480, 1.3 for 1280x720, etc)</param>
              </entry>
              <entry value="2001" name="MAV_CMD_IMAGE_STOP_CAPTURE">
                  <description>Stop image capture sequence</description>
                  <param index="1">Reserved</param>
                  <param index="2">Reserved</param>
              </entry>
              <entry value="2500" name="MAV_CMD_VIDEO_START_CAPTURE">
                  <description>Starts video capture</description>
                  <param index="1">Camera ID (0 for all cameras), 1 for first, 2 for second, etc.</param>
                  <param index="2">Frames per second</param>
                  <param index="3">Resolution in megapixels (0.3 for 640x480, 1.3 for 1280x720, etc)</param>
              </entry>
              <entry value="2501" name="MAV_CMD_VIDEO_STOP_CAPTURE">
                  <description>Stop the current video capture</description>
                  <param index="1">Reserved</param>
                  <param index="2">Reserved</param>
              </entry>
-->
          </enum>

          <enum name="MAV_PARAM_TYPE">
               <description>Specifies the datatype of a MAVLink parameter.</description>
               <entry value="1" name="MAV_PARAM_TYPE_UINT8">
                    <description>8-bit unsigned integer</description>
               </entry>
               <entry value="2" name="MAV_PARAM_TYPE_INT8">
                    <description>8-bit signed integer</description>
               </entry>
               <entry value="3" name="MAV_PARAM_TYPE_UINT16">
                    <description>16-bit unsigned integer</description>
               </entry>
               <entry value="4" name="MAV_PARAM_TYPE_INT16">
                    <description>16-bit signed integer</description>
               </entry>
               <entry value="5" name="MAV_PARAM_TYPE_UINT32">
                    <description>32-bit unsigned integer</description>
               </entry>
               <entry value="6" name="MAV_PARAM_TYPE_INT32">
                    <description>32-bit signed integer</description>
               </entry>
               <entry value="7" name="MAV_PARAM_TYPE_UINT64">
                    <description>64-bit unsigned integer</description>
               </entry>
               <entry value="8" name="MAV_PARAM_TYPE_INT64">
                    <description>64-bit signed integer</description>
               </entry>
               <entry value="9" name="MAV_PARAM_TYPE_REAL32">
                    <description>32-bit floating-point</description>
               </entry>
               <entry value="10" name="MAV_PARAM_TYPE_REAL64">
                    <description>64-bit floating-point</description>
               </entry>
          </enum>

          <enum name="MAV_RESULT">
               <description>result from a mavlink command</description>
               <entry value="0" name="MAV_RESULT_ACCEPTED">
                    <description>Command ACCEPTED and EXECUTED</description>
               </entry>
               <entry value="1" name="MAV_RESULT_TEMPORARILY_REJECTED">
                    <description>Command TEMPORARY REJECTED/DENIED</description>
               </entry>
               <entry value="2" name="MAV_RESULT_DENIED">
                    <description>Command PERMANENTLY DENIED</description>
               </entry>
               <entry value="3" name="MAV_RESULT_UNSUPPORTED">
                    <description>Command UNKNOWN/UNSUPPORTED</description>
               </entry>
               <entry value="4" name="MAV_RESULT_FAILED">
                    <description>Command executed, but failed</description>
               </entry>
          </enum>

          <enum name="MAV_SEVERITY">
               <description>Indicates the severity level, generally used for status messages to indicate their relative urgency. Based on RFC-5424 using expanded definitions at: http://www.kiwisyslog.com/kb/info:-syslog-message-levels/.</description>
               <entry value="0" name="MAV_SEVERITY_EMERGENCY">
                  <description>System is unusable. This is a "panic" condition.</description>
               </entry>
               <entry value="1" name="MAV_SEVERITY_ALERT">
                  <description>Action should be taken immediately. Indicates error in non-critical systems.</description>
               </entry>
               <entry value="2" name="MAV_SEVERITY_CRITICAL">
                  <description>Action must be taken immediately. Indicates failure in a primary system.</description>
               </entry>
               <entry value="3" name="MAV_SEVERITY_ERROR">
                  <description>Indicates an error in secondary/redundant systems.</description>
               </entry>
               <entry value="4" name="MAV_SEVERITY_WARNING">
                  <description>Indicates about a possible future error if this is not resolved within a given timeframe. Example would be a low battery warning.</description>
               </entry>
               <entry value="5" name="MAV_SEVERITY_NOTICE">
                  <description>An unusual event has occured, though not an error condition. This should be investigated for the root cause.</description>
               </entry>
               <entry value="6" name="MAV_SEVERITY_INFO">
                  <description>Normal operational messages. Useful for logging. No action is required for these messages.</description>
               </entry>
               <entry value="7" name="MAV_SEVERITY_DEBUG">
                  <description>Useful non-operational messages that can assist in debugging. These should not occur during normal operation.</description>
               </entry>
          </enum>

    </enums>
    <messages>

          <message id="0" name="HEARTBEAT">
               <description>The heartbeat message shows that a system is present and responding. The type of the MAV and Autopilot hardware allow the receiving system to treat further messages from this system appropriate (e.g. by laying out the user interface based on the autopilot).</description>
               <field type="uint8_t" name="type">Type of the MAV (quadrotor, helicopter, etc., up to 15 types, defined in MAV_TYPE ENUM)</field>
               <field type="uint8_t" name="autopilot">Autopilot type / class. defined in MAV_AUTOPILOT ENUM</field>
               <field type="uint8_t" name="base_mode">System mode bitfield, see MAV_MODE_FLAGS ENUM in mavlink/include/mavlink_types.h</field>
               <field type="uint32_t" name="custom_mode">A bitfield for use for autopilot-specific flags.</field>
               <field type="uint8_t" name="system_status">System status flag, see MAV_STATE ENUM</field>
               <field type="uint8_t_mavlink_version" name="mavlink_version">MAVLink version</field>
          </message>

          <message id="20" name="PARAM_REQUEST_READ">
               <description>Request to read the onboard parameter with the param_id string id. Onboard parameters are stored as key[const char*] -> value[float]. This allows to send a parameter to any other component (such as the GCS) without the need of previous knowledge of possible parameter names. Thus the same GCS can store different parameters for different autopilots. See also http://qgroundcontrol.org/parameter_interface for a full documentation of QGroundControl and IMU code.</description>
               <field type="uint8_t" name="target_system">System ID</field>
               <field type="uint8_t" name="target_component">Component ID</field>
               <field type="char[16]" name="param_id">Onboard parameter id, terminated by NULL if the length is less than 16 human-readable chars and WITHOUT null termination (NULL) byte if the length is exactly 16 chars - applications have to provide 16+1 bytes storage if the ID is stored as string</field>
               <field type="int16_t" name="param_index">Parameter index. Send -1 to use the param ID field as identifier (else the param id will be ignored)</field>
          </message>

          <message id="21" name="PARAM_REQUEST_LIST">
               <description>Request all parameters of this component. After his request, all parameters are emitted.</description>
               <field type="uint8_t" name="target_system">System ID</field>
               <field type="uint8_t" name="target_component">Component ID</field>
          </message>

          <message id="22" name="PARAM_VALUE">
               <description>Emit the value of a onboard parameter. The inclusion of param_count and param_index in the message allows the recipient to keep track of received parameters and allows him to re-request missing parameters after a loss or timeout.</description>
               <field type="char[16]" name="param_id">Onboard parameter id, terminated by NULL if the length is less than 16 human-readable chars and WITHOUT null termination (NULL) byte if the length is exactly 16 chars - applications have to provide 16+1 bytes storage if the ID is stored as string</field>
               <field type="float" name="param_value">Onboard parameter value</field>
               <field type="uint8_t" name="param_type" enum="MAV_PARAM_TYPE">Onboard parameter type: see the MAV_PARAM_TYPE enum for supported data types.</field>
               <field type="uint16_t" name="param_count">Total number of onboard parameters</field>
               <field type="uint16_t" name="param_index">Index of this onboard parameter</field>
          </message>

          <message id="23" name="PARAM_SET">
               <description>Set a parameter value TEMPORARILY to RAM. It will be reset to default on system reboot. Send the ACTION MAV_ACTION_STORAGE_WRITE to PERMANENTLY write the RAM contents to EEPROM. IMPORTANT: The receiving component should acknowledge the new parameter value by sending a param_value message to all communication partners. This will also ensure that multiple GCS all have an up-to-date list of all parameters. If the sending GCS did not receive a PARAM_VALUE message within its timeout time, it should re-send the PARAM_SET message.</description>
               <field type="uint8_t" name="target_system">System ID</field>
               <field type="uint8_t" name="target_component">Component ID</field>
               <field type="char[16]" name="param_id">Onboard parameter id, terminated by NULL if the length is less than 16 human-readable chars and WITHOUT null termination (NULL) byte if the length is exactly 16 chars - applications have to provide 16+1 bytes storage if the ID is stored as string</field>
               <field type="float" name="param_value">Onboard parameter value</field>
               <field type="uint8_t" name="param_type" enum="MAV_PARAM_TYPE">Onboard parameter type: see the MAV_PARAM_TYPE enum for supported data types.</field>
          </message>

          <message id="30" name="ATTITUDE">
               <description>The attitude in the aeronautical frame (right-handed, Z-down, X-front, Y-right).</description>
               <field type="uint32_t" name="time_boot_ms">Timestamp (milliseconds since system boot)</field>
               <field type="float" name="roll">Roll angle (rad, -pi..+pi)</field>
               <field type="float" name="pitch">Pitch angle (rad, -pi..+pi)</field>
               <field type="float" name="yaw">Yaw angle (rad, -pi..+pi)</field>
               <field type="float" name="rollspeed">Roll angular speed (rad/s)</field>
               <field type="float" name="pitchspeed">Pitch angular speed (rad/s)</field>
               <field type="float" name="yawspeed">Yaw angular speed (rad/s)</field>
          </message>

          <message id="76" name="COMMAND_LONG">
               <description>Send a command with up to seven parameters to the MAV</description>
               <field type="uint8_t" name="target_system">System which should execute the command</field>
               <field type="uint8_t" name="target_component">Component which should execute the command, 0 for all components</field>
               <field type="uint16_t" name="command" enum="MAV_CMD">Command ID, as defined by MAV_CMD enum.</field>
               <field type="uint8_t" name="confirmation">0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command)</field>
               <field type="float" name="param1">Parameter 1, as defined by MAV_CMD enum.</field>
               <field type="float" name="param2">Parameter 2, as defined by MAV_CMD enum.</field>
               <field type="float" name="param3">Parameter 3, as defined by MAV_CMD enum.</field>
               <field type="float" name="param4">Parameter 4, as defined by MAV_CMD enum.</field>
               <field type="float" name="param5">Parameter 5, as defined by MAV_CMD enum.</field>
               <field type="float" name="param6">Parameter 6, as defined by MAV_CMD enum.</field>
               <field type="float" name="param7">Parameter 7, as defined by MAV_CMD enum.</field>
          </message>

          <message id="77" name="COMMAND_ACK">
               <description>Report status of a command. Includes feedback wether the command was executed.</description>
               <field type="uint16_t" name="command" enum="MAV_CMD">Command ID, as defined by MAV_CMD enum.</field>
               <field type="uint8_t" name="result">See MAV_RESULT enum</field>
          </message>

          <message id="253" name="STATUSTEXT">
               <description>Status text message. These messages are printed in yellow in the COMM console of QGroundControl. WARNING: They consume quite some bandwidth, so use only for important status and error messages. If implemented wisely, these messages are buffered on the MCU and sent only at a limited rate (e.g. 10 Hz).</description>
               <field type="uint8_t" name="severity" enum="MAV_SEVERITY">Severity of status. Relies on the definitions within RFC-5424. See enum MAV_SEVERITY.</field>
               <field type="char[50]" name="text">Status text message, without null termination character</field>
          </message>


	  <!-- APM specific messages -->

	  <message name="DIGICAM_CONTROL" id="155">
	    <description>Control on-board Camera Control System to take shots.</description>
	    <field name="target_system" type="uint8_t">System ID</field>
	    <field name="target_component" type="uint8_t">Component ID</field>
	    <field name="session" type="uint8_t">0: stop, 1: start or keep it up //Session control e.g. show/hide lens</field>
	    <field name="zoom_pos" type="uint8_t">1 to N //Zoom's absolute position (0 means ignore)</field>
	    <field name="zoom_step" type="int8_t">-100 to 100 //Zooming step value to offset zoom from the current position</field>
	    <field name="focus_lock" type="uint8_t">0: unlock focus or keep unlocked, 1: lock focus or keep locked, 3: re-lock focus</field>
	    <field name="shot" type="uint8_t">0: ignore, 1: shot or start filming</field>
	    <field name="command_id" type="uint8_t">Command Identity (incremental loop: 0 to 255)//A command sent multiple times will be executed or pooled just once</field>
	    <field name="extra_param" type="uint8_t">Extra parameters enumeration (0 means ignore)</field>
	    <field name="extra_value" type="float">Correspondent value to given extra_param</field>
	  </message>

	  <message name="MOUNT_CONFIGURE" id="156">
	    <description>Message to configure a camera mount, directional antenna, etc.</description>
	    <field name="target_system" type="uint8_t">System ID</field>
	    <field name="target_component" type="uint8_t">Component ID</field>
	    <field name="mount_mode" type="uint8_t" enum="MAV_MOUNT_MODE">mount operating mode (see MAV_MOUNT_MODE enum)</field>
	    <field name="stab_roll" type="uint8_t">(1 = yes, 0 = no)</field>
	    <field name="stab_pitch" type="uint8_t">(1 = yes, 0 = no)</field>
	    <field name="stab_yaw" type="uint8_t">(1 = yes, 0 = no)</field>
	  </message>
    
	  <message name="MOUNT_CONTROL" id="157">
	    <description>Message to control a camera mount, directional antenna, etc.</description>
	    <field name="target_system" type="uint8_t">System ID</field>
	    <field name="target_component" type="uint8_t">Component ID</field>
	    <field name="input_a" type="int32_t">pitch(deg*100) or lat, depending on mount mode</field>
	    <field name="input_b" type="int32_t">roll(deg*100) or lon depending on mount mode</field>
	    <field name="input_c" type="int32_t">yaw(deg*100) or alt (in cm) depending on mount mode</field>
	    <field name="save_position" type="uint8_t">if "1" it will save current trimmed position on EEPROM (just valid for NEUTRAL and LANDING)</field>
	  </message>


	  <!-- STorM32 specific messages -->

          <message id="234" name="COMMAND_TARGET_SPECIFIC">
               <description>H.</description>
               <field type="uint8_t" name="target_system">Target system ID</field>
               <field type="uint8_t" name="target_component">Target component ID</field>
               <field type="uint8_t" name="specific_payload">ATTENTION: This is a dummy field, the specific payload can be vaying size!</field>
          </message>

          <message id="235" name="COMMAND_TARGET_SPECIFIC_ACK">
               <description>H.</description>
               <field type="uint8_t" name="target_system">Target system ID</field>
               <field type="uint8_t" name="target_component">Target component ID</field>
               <field type="uint8_t" name="specific_payload">ATTENTION: This is a dummy field, the specific payload can be vaying size!</field>
          </message>

          <message id="236" name="PARAM_READ2">
               <description>Request to read the onboard parameter with the param_index.</description>
               <field type="uint8_t" name="target_system">Target system ID</field>
               <field type="uint8_t" name="target_component">Target component ID</field>
               <field type="uint16_t" name="param_index">Parameter index</field>
          </message>

          <message id="237" name="PARAM_SET2">
               <description>Set a parameter value TEMPORARILY to RAM. It will be reset to default on system reboot. Send the ACTION MAV_ACTION_STORAGE_WRITE to PERMANENTLY write the RAM contents to EEPROM. IMPORTANT: The receiving component should acknowledge the new parameter value by sending a param_value message to all communication partners. This will also ensure that multiple GCS all have an up-to-date list of all parameters. If the sending GCS did not receive a PARAM_VALUE message within its timeout time, it should re-send the PARAM_SET message.</description>
               <field type="uint8_t" name="target_system">Target system ID</field>
               <field type="uint8_t" name="target_component">Target component ID</field>
               <field type="uint16_t" name="param_index">Parameter index</field>
               <field type="float" name="param_value">Onboard parameter value</field>
               <field type="uint8_t" name="param_type" enum="MAV_PARAM_TYPE">Onboard parameter type: see the MAV_PARAM_TYPE enum for supported data types.</field>
          </message>

          <message id="238" name="PARAM_VALUE2">
               <description>Emit the value of a onboard parameter. The inclusion of param_count and param_index in the message allows the recipient to keep track of received parameters and allows him to re-request missing parameters after a loss or timeout.</description>
               <field type="uint8_t" name="target_system">Target system ID</field>
               <field type="uint8_t" name="target_component">Target component ID</field>
               <field type="uint16_t" name="param_index">Index of this onboard parameter</field>
               <field type="float" name="param_value">Onboard parameter value</field>
               <field type="uint8_t" name="param_type" enum="MAV_PARAM_TYPE">Onboard parameter type: see the MAV_PARAM_TYPE enum for supported data types.</field>
               <field type="uint16_t" name="param_count">Total number of onboard parameters</field>
          </message>

    </messages>
</mavlink>






