  <protocol>
    <class name="telemetry">
      <message name="BOOT" id="1">
        <field name="version" type="uint16"/>
      </message>
      <message name="CALIB_START" ID="2"/>
      <message name="CALIB_CONTRAST" ID="3">
        <field name="adc" type="int16"/>
      </message>
      <message name="TAKEOFF" ID="4">
        <field name="cpu_time" type="uint16" unit="s"/>
      </message>
      <message name="RAD_OF_IR" ID="5">
        <field name="ir" type="int16"/>
        <field name="rad" type="int16" unit="decideg"/>
        <field name="rad_of_ir" type="float" format="%.5f"/>
      </message>
      <message name="ATTITUDE" ID="6">
        <field name="phi" type="int16" unit="deg"/>
        <field name="psi" type="int16" unit="deg"/>
        <field name="theta" type="int16" unit="deg"/>
      </message>
      <message name="IR_SENSORS" ID="7">
        <field name="longitudinal" type="int16"/>
        <field name="lateral" type="int16"/>
        <field name="vertical" type="int16"/>
      </message>
      <message name="GPS" ID="8">
        <field name="mode" type="uint8" unit="byte_mask"/>
        <field name="utm_east" type="int32" unit="cm"/>
        <field name="utm_north" type="int32" unit="cm"/>
        <field name="course" type="int16" unit="decideg"/>
        <field name="alt" type="int32" unit="cm"/>
        <field name="speed" type="uint16" unit="cm/s"/>
        <field name="climb" type="int16" unit="cm/s"/>
        <field name="itow" type="uint32" unit="ms"/>
        <field name="utm_zone" type="uint8"/>
        <field name="gps_nb_err" type="uint8"/>
      </message>
      <message name="NAVIGATION_REF" ID="0x09">
        <field name="utm_east" type="int32" unit="m"/>
        <field name="utm_north" type="int32" unit="m"/>
        <field name="utm_zone" type="uint8"/>
      </message>
      <message name="NAVIGATION" ID="10">
        <field name="cur_block" type="uint8"/>
        <field name="cur_stage" type="uint8"/>
        <field name="pos_x" type="int16" unit="m"/>
        <field name="pos_y" type="int16" unit="m"/>
        <field name="desired_course" type="int16" unit="decideg"/>
        <field name="dist2_wp" type="float" format="%.1f" unit="m^2"/>
        <field name="dist2_home" type="float" format="%.1f" unit="m^2"/>
      </message>
      <message name="PPRZ_MODE" ID="11">
        <field name="ap_mode" type="uint8" values="MANUAL|AUTO1|AUTO2|HOME|NOGPS|FAILSAFE"/>
        <field name="ap_gaz" type="uint8" values="MANUAL|AUTO_THROTTLE|AUTO_CLIMB|AUTO_ALT"/>
        <field name="ap_lateral" type="uint8" values="MANUAL|ROLL_RATE|ROLL|COURSE"/>
        <field name="ap_horizontal" type="uint8" values="WAYPOINT|ROUTE|CIRCLE"/>
        <field name="if_calib_mode" type="uint8" values="NONE|DOWN|UP"/>
        <field name="mcu1_status" type="uint8" values="LOST|OK|REALLY_LOST"/>
        <field name="lls_calib" type="uint8" values="LLS_CALIB_MODE_OFF|LLS_CALIB_MODE_ON"/>
      </message>
      <message name="BAT" ID="12">
        <field name="throttle" type="int16" unit="pprz"/>
        <field name="voltage" type="uint16" unit="1e-1V"/>
        <field name="flight_time" type="uint16" unit="s"/>
        <field name="kill_auto_throttle" type="uint8" unit="bool"/>
        <field name="block_time" type="uint16" unit="s"/>
        <field name="stage_time" type="uint16" unit="s"/>
        <field name="energy" type="uint16" unit="mAh"/>
      </message>
      <message name="DEBUG_MCU_LINK" ID="13">
        <field name="i2c_nb_err" type="uint8"/>
        <field name="i2c_mcu1_nb_err" type="uint8"/>
        <field name="ppm_rate" type="uint8"/>
      </message>
      <message name="CALIBRATION" ID="14">
        <field name="climb_sum_err" type="float" format="%.1f"/>
        <field name="climb_pgain" type="float" format="%.3f"/>
        <field name="course_pgain" type="float" format="%.3f"/>
        <field name="climb_gaz_submode" type="uint8"/>
      </message>
      <message name="SETTINGS" ID="15">
        <field name="slider_1_val" type="float"/>
        <field name="slider_2_val" type="float"/>
      </message>
      <message name="DESIRED" ID="16">
        <field name="roll" type="float" format="%.2f"/>
        <field name="pitch" type="float" format="%.2f"/>
        <field name="desired_x" type="float" format="%.0f"/>
        <field name="desired_y" type="float" format="%.0f"/>
        <field name="desired_altitude" type="float" format="%.0f"/>
        <field name="desired_climb" type="float" format="%.1f"/>
      </message>
      <message name="CAM" ID="20">
        <field name="phi" type="int8" unit="deg"/>
        <field name="theta" type="int8" unit="deg"/>
        <field name="target_x" type="int16" unit="m"/>
        <field name="target_y" type="int16" unit="m"/>
      </message>
      <message name="CIRCLE" ID="21">
        <field name="center_east" type="int16" unit="m"/>
        <field name="center_north" type="int16" unit="m"/>
        <field name="radius" type="int16" unit="m"/>
      </message>
      <message name="SEGMENT" ID="22">
        <field name="segment_east_1" type="int16" unit="m"/>
        <field name="segment_north_1" type="int16" unit="m"/>
        <field name="segment_east_2" type="int16" unit="m"/>
        <field name="segment_north_2" type="int16" unit="m"/>
      </message>
      <message name="DOWNLINK_STATUS" ID="23">
        <field name="run_time" type="uint32" unit="s"/>
        <field name="rx_bytes" type="uint32"/>
        <field name="rx_msgs" type="uint32"/>
        <field name="rx_err" type="uint32"/>
        <field name="rx_bytes_rate" type="float" format="%.1f"/>
        <field name="rx_msgs_rate" type="float" format="%.1f"/>
      </message>
      <message name="MODEM_STATUS" ID="24">
        <field name="detected" type="uint8"/>
        <field name="valim" type="float" format="%.1f"/>
        <field name="cd" type="uint8"/>
        <field name="nb_byte" type="uint32"/>
        <field name="nb_msg" type="uint32"/>
        <field name="nb_err" type="uint32"/>
      </message>
      <message name="SVINFO" id="25">
        <field name="chn" type="uint8"/>
        <field name="SVID" type="uint8"/>
        <field name="Flags" type="uint8"/>
        <field name="QI" type="int8"/>
        <field name="CNO" type="uint8" unit="dbHz"/>
        <field name="Elev" type="int8" unit="deg"/>
        <field name="Azim" type="int16" unit="deg"/>
      </message>
      <message name="SURVEY" ID="27">
        <field name="east" type="float" unit="m"/>
        <field name="north" type="float" unit="m"/>
        <field name="west" type="float" unit="m"/>
        <field name="south" type="float" unit="m"/>
      </message>
      <message name="WC_RSSI" id="28">
        <field name="raw_level" type="uint8"/>
      </message>
      <message name="RANGEFINDER" id="29">
        <field name="range" type="uint16" unit="cm"/>
        <field name="z_dot" type="float" unit="m/s"/>
        <field name="z_dot_sum_err" type="float" unit="m/s"/>
        <field name="z_dot_setpoint" type="float" unit="m/s"/>
        <field name="z_sum_err" type="float" unit="m/s"/>
        <field name="z_setpoint" type="float" unit="m"/>
        <field name="flying" type="uint8" unit="bool"/>
      </message>
      <message name="DEBUG_MODEM" id="30">
        <field name="modem_nb_err" type="uint8"/>
      </message>
      <message name="DL_VALUE" id="31">
        <field name="index" type="uint8"/>
        <field name="value" type="float"/>
      </message>
      <message name="MARK" id="32">
        <field name="ac_id" type="uint8"/>
        <field name="lat" type="float" unit="deg"/>
        <field name="long" type="float" unit="deg"/>
      </message>
      <message name="DEBUG1" id="33">
        <field name="xxx" type="uint8"/>
        <field name="foo" type="uint8[]"/>
      </message>
      <message name="DEBUG2" id="34">
        <field name="foo" type="uint8[]"/>
      </message>
      <message name="WP_MOVED" id="35">
        <field name="wp_id" type="uint8"/>
        <field name="utm_east" type="float" unit="m"/>
        <field name="utm_north" type="float" unit="m"/>
        <field name="alt" type="float" unit="m"/>
      </message>
      <message name="GYRO_RATES" id="36">
        <field name="roll_adc" type="int16"/>
        <field name="pitch_adc" type="int16"/>
        <field name="yaw_adc" type="int16"/>
        <field name="roll" type="float" unit="rad/s"/>
        <field name="pitch" type="float" unit="rad/s"/>
        <field name="yaw" type="float" unit="rad/s"/>
      </message>
      <message name="GRZ_MEASURE" id="37">
        <field name="roll_dot" type="float" unit="rad/s"/>
        <field name="pitch_dot" type="float" unit="rad/s"/>
        <field name="yaw_dot" type="float" unit="rad/s"/>
        <field name="roll" type="float" unit="rad"/>
        <field name="pitch" type="float" unit="rad"/>
        <field name="yaw" type="float" unit="rad"/>
      </message>
      <message name="GRZ_RATE_LOOP" id="38">
        <field name="roll_dot_meas" type="float" unit="rad"/>
        <field name="roll_dot_sp" type="float" unit="rad"/>
        <field name="pitch_dot_meas" type="float" unit="rad"/>
        <field name="pitch_dot_sp" type="float" unit="rad"/>
        <field name="yaw_dot_meas" type="float" unit="rad"/>
        <field name="yaw_dot_sp" type="float" unit="rad"/>
      </message>
      <message name="GRZ_ATTITUDE_LOOP" id="39">
        <field name="roll_meas" type="float" unit="rad"/>
        <field name="roll_sp" type="float" unit="rad"/>
        <field name="pitch_meas" type="float" unit="rad"/>
        <field name="pitch_sp" type="float" unit="rad"/>
        <field name="yaw_meas" type="float" unit="rad"/>
        <field name="yaw_sp" type="float" unit="rad"/>
      </message>
      <message name="SPEED_LOOP" id="40">
        <field name="ve_set_point" type="float" unit="m/s"/>
        <field name="ve" type="float" unit="m/s"/>
        <field name="vn_set_point" type="float" unit="m/s"/>
        <field name="vn" type="float" unit="m/s"/>
        <field name="north_sp" type="float" unit="rad"/>
        <field name="east_sp" type="float" unit="rad"/>
      </message>
      <message name="ALT_KALMAN" ID="41">
        <field name="p00" type="float"/>
        <field name="p01" type="float"/>
        <field name="p10" type="float"/>
        <field name="p11" type="float"/>
      </message>
      <message name="ESTIMATOR" ID="42">
        <field name="z" type="float" unit="m"/>
        <field name="z_dot" type="float" unit="m/s"/>
        <field name="range" type="float" unit="cm"/>
        <field name="range_dot" type="float" unit="cm"/>
      </message>
      <message name="PPM" ID="100">
        <field name="values" type="uint16[]" unit="ticks"/>
      </message>
      <message name="RC" ID="101">
        <field name="values" type="int16[]" unit="pprz" format="%d"/>
      </message>
      <message name="COMMANDS" ID="102">
        <field name="values" type="int16[]" unit="ticks"/>
      </message>
      <message name="FBW_STATUS" ID="103">
        <field name="rc_status" type="uint8" values="OK|LOST|REALLY_LOST"/>
        <field name="mode" type="uint8" values="MANUAL|AUTO|FAILSAFE"/>
        <field name="vsupply" type="uint16" unit="decivolt"/>
      </message>
      <message name="ADC" ID="104">
        <field name="mcu" type="uint8" values="FBW|AP"/>
        <field name="values" type="uint16[]" unit="none"/>
      </message>
      <message name="ACTUATORS" ID="105">
        <field name="values" type="uint16[]" unit="none"/>
      </message>
      <message name="DEBUG16" ID="106">
        <field name="xxx" type="uint16" unit="none"/>
      </message>
      <message name="IMU_GYRO" ID="200">
        <field name="gx" type="float" unit="rad/s"/>
        <field name="gy" type="float" unit="rad/s"/>
        <field name="gz" type="float" unit="rad/s"/>
      </message>
      <message name="IMU_MAG" ID="201">
        <field name="ax" type="int16"/>
        <field name="ay" type="int16"/>
        <field name="az" type="int16"/>
      </message>
      <message name="IMU_ACCEL" ID="202">
        <field name="ax" type="float" unit="rad/s"/>
        <field name="ay" type="float" unit="rad/s"/>
        <field name="az" type="float" unit="rad/s"/>
      </message>
      <message name="AHRS_STATE" ID="203">
        <field name="q0" type="float"/>
        <field name="q1" type="float"/>
        <field name="q2" type="float"/>
        <field name="q3" type="float"/>
        <field name="bx" type="float"/>
        <field name="by" type="float"/>
        <field name="bz" type="float"/>
      </message>
      <message name="AHRS_COV" ID="204">
        <field name="p00" type="float"/>
        <field name="p11" type="float"/>
      </message>
      <message name="TIME" ID="206">
        <field name="t" type="uint32"/>
      </message>
      <message name="AHRS_OVERRUN" ID="207"/>
      <message name="ANTENNA_DEBUG" ID="220">
        <field name="mag_xraw" type="int32"/>
        <field name="mag_yraw" type="int32"/>
        <field name="mag_xcal" type="float"/>
        <field name="mag_ycal" type="float"/>
        <field name="mag_heading" type="float"/>
        <field name="mag_magnitude" type="float"/>
        <field name="mag_temp" type="float"/>
        <field name="mag_distor" type="uint8"/>
        <field name="mag_cal_status" type="uint8"/>
      </message>
      <message name="ANTENNA_STATUS" ID="221">
        <field name="azim_sp" type="float"/>
        <field name="elev_sp" type="float"/>
        <field name="id_sp" type="uint8"/>
        <field name="mode" type="uint8"/>
      </message>
      <message name="MOTOR_BENCH_STATUS" ID="230">
        <field name="time_ticks" type="uint32"/>
        <field name="time_s" type="uint16"/>
        <field name="throttle" type="uint16"/>
        <field name="mode" type="uint8"/>
      </message>
      <message name="SERVO" id="209">
        <field name="elev" type="int16" unit="%"/>
        <field name="ailer" type="int16" unit="%"/>
        <field name="thrust" type="int16" unit="%"/>
      </message>
      <message name="IR_DEBUG" id="210">
        <field name="ir1" type="int16" unit="ir"/>
        <field name="ir2" type="int16" unit="ir"/>
        <field name="ir3" type="int16" unit="ir"/>
        <field name="ir4" type="int16" unit="ir"/>
      </message>
      <message name="ACCEL_RATES" id="212">
        <field name="ax_adc" type="int16"/>
        <field name="ay_adc" type="int16"/>
        <field name="az_adc" type="int16"/>
        <field name="ax" type="float" unit="ms2"/>
        <field name="ay" type="float" unit="ms2"/>
        <field name="az" type="float" unit="ms2"/>
      </message>
      <message name="KALMAN_ROLL_PITCH" id="213">
        <field name="roll" type="float" unit="rad"/>
        <field name="pitch" type="float" unit="rad"/>
        <field name="KALMAN_Q_ANGLE" type="float" unit="err"/>
        <field name="KALMAN_Q_GYRO" type="float" unit="err"/>
        <field name="KALMAN_R_ANGLE" type="float" unit="err"/>
      </message>
    </class>
    <class name="datalink">
      <message name="ACINFO" ID="1">
        <field name="course" type="int16" unit="decideg"/>
        <field name="utm_east" type="int32" unit="cm"/>
        <field name="utm_north" type="int32" unit="cm"/>
        <field name="alt" type="int32" unit="cm"/>
        <field name="itow" type="uint32" unit="ms"/>
        <field name="speed" type="uint16" unit="cm/s"/>
        <field name="climb" type="int16" unit="cm/s"/>
        <field name="ac_id" type="uint8"/>
      </message>
      <message name="MOVE_WP" ID="2">
        <field name="wp_id" type="uint8"/>
        <field name="pad0" type="uint8"/>
        <field name="utm_east" type="int32" unit="cm"/>
        <field name="utm_north" type="int32" unit="cm"/>
        <field name="alt" type="int32" unit="cm"/>
      </message>
      <message name="WIND_INFO" ID="3">
        <field name="pad0" type="uint16"/>
        <field name="east" type="float" unit="m/s"/>
        <field name="north" type="float" unit="m/s"/>
      </message>
      <message name="SETTING" ID="4">
        <field name="index" type="uint8"/>
        <field name="pad0" type="uint8"/>
        <field name="value" type="float"/>
      </message>
      <message name="BLOCK" ID="5">
        <field name="block_id" type="uint8"/>
      </message>
      <message name="HITL_UBX" id="6">
        <field name="class" type="uint8"/>
        <field name="id" type="uint8"/>
        <field name="ubx_payload" type="uint8[]"/>
      </message>
      <message name="HITL_INFRARED" id="7">
        <field name="roll" type="int16"/>
        <field name="pitch" type="int16"/>
      </message>
      <message name="TELEMETRY_MODE" id="8">
        <field name="mode" type="uint8"/>
      </message>
      <message name="SET_ACTUATOR" id="100">
        <field name="value" type="uint16"/>
        <field name="no" type="uint8"/>
      </message>
    </class>
    <class name="ground">
      <message name="NEW_AIRCRAFT" ID="1">
        <field name="ac_id" type="string"/>
      </message>
      <message name="AIRCRAFT_DIE" ID="2">
        <field name="ac_id" type="string"/>
      </message>
      <message name="AIRCRAFTS" ID="3">
        <field name="ac_list" type="string" format="csv"/>
      </message>
      <message name="AIRCRAFTS_REQ" ID="4"/>
      <message name="SELECTED" ID="5">
        <field name="aircraft_id" type="string"/>
      </message>
      <message name="SELECTED_REQ" ID="6"/>
      <message name="WIND_CLEAR" ID="7">
        <field name="ac_id" type="string"/>
      </message>
      <message name="WIND" ID="8">
        <field name="ac_id" type="string"/>
        <field name="dir" type="float" unit="deg_wind"/>
        <field name="wspeed" type="float" unit="m/s"/>
        <field name="mean_aspeed" type="float" unit="m/s"/>
        <field name="stddev" type="float" unit="m/s"/>
      </message>
      <message name="CONFIG_REQ" ID="9">
        <field name="ac_id" type="string"/>
      </message>
      <message name="CONFIG" ID="10">
        <field name="ac_id" type="string"/>
        <field name="flight_plan" type="string" unit="url"/>
        <field name="airframe" type="string" unit="url"/>
        <field name="radio" type="string" unit="url"/>
        <field name="settings" type="string" unit="url"/>
        <field name="default_gui_color" type="string"/>
        <field name="ac_name" type="string"/>
      </message>
      <message name="FLIGHT_PARAM" ID="11">
        <field name="ac_id" type="string"/>
        <field name="roll" type="float" unit="deg"/>
        <field name="pitch" type="float" unit="deg"/>
        <field name="lat" type="float" unit="deg"/>
        <field name="long" type="float" unit="deg"/>
        <field name="speed" type="float" unit="m/s"/>
        <field name="course" type="float" unit="deg" format="%.1f"/>
        <field name="alt" type="float" unit="m"/>
        <field name="climb" type="float" unit="m/s"/>
        <field name="agl" type="float" unit="m"/>
      </message>
      <message name="AP_STATUS" ID="12">
        <field name="ac_id" type="string"/>
        <field name="ap_mode" type="string" values="MANUAL|AUTO1|AUTO2|HOME|FAILSAFE"/>
        <field name="lat_mode" type="string" values="MANUAL|ROLL_RATE|ROLL|COURSE"/>
        <field name="horiz_mode" type="string" values="WAYPOINT|ROUTE|CIRCLE"/>
        <field name="gaz_mode" type="string" values="MANUAL|THROTTLE|CLIMB|ALT"/>
        <field name="gps_mode" type="string" values="NOFIX|DRO|2D|3D|GPSDRO"/>
        <field name="kill_mode" type="string" values="OFF|ON"/>
        <field name="flight_time" type="uint32"/>
      </message>
      <message name="NAV_STATUS" ID="13">
        <field name="ac_id" type="string"/>
        <field name="cur_block" type="uint8"/>
        <field name="cur_stage" type="uint8"/>
        <field name="block_time" type="uint32"/>
        <field name="stage_time" type="uint32"/>
        <field name="target_lat" type="float" unit="deg"/>
        <field name="target_long" type="float" unit="deg"/>
        <field name="target_climb" type="float" unit="m/s"/>
        <field name="target_alt" type="float" unit="m"/>
        <field name="target_course" type="float" unit="deg"/>
      </message>
      <message name="CAM_STATUS" ID="14">
        <field name="ac_id" type="string"/>
        <field name="cam_lat" type="float" unit="deg"/>
        <field name="cam_long" type="float" unit="deg"/>
        <field name="cam_target_lat" type="float" unit="deg"/>
        <field name="cam_target_long" type="float" unit="deg"/>
      </message>
      <message name="ENGINE_STATUS" ID="15">
        <field name="ac_id" type="string"/>
        <field name="throttle" type="float" unit="%" format="%.1f"/>
        <field name="throttle_accu" type="float" format="%.1f"/>
        <field name="rpm" type="float" unit="rpm" format="%.1f"/>
        <field name="temp" type="float" unit="celcius"/>
        <field name="bat" type="float" unit="V"/>
        <field name="amp" type="float" unit="A"/>
        <field name="energy" type="uint16" unit="Wh"/>
      </message>
      <message name="SVSINFO" ID="16">
        <field name="ac_id" type="string"/>
        <field name="svid" type="string" format="csv"/>
        <field name="flags" type="string" format="csv"/>
        <field name="qi" type="string" format="csv" values="IDLE|SEARCH|SEARCH|UNUSABLE|CODELOCK|CARRIERLOCK|CARRIERLOCK|RECEIVING"/>
        <field name="cno" type="string" format="csv" unit="dbHz"/>
        <field name="elev" type="string" format="csv" unit="deg"/>
        <field name="azim" type="string" format="csv" unit="deg"/>
      </message>
      <message name="FLY_BY_WIRE" id="17">
        <field name="ac_id" type="string"/>
        <field name="rc_status" type="string" values="OK|LOST|REALLY_LOST"/>
        <field name="rc_mode" type="string" values="MANUAL|AUTO|FAILSAFE"/>
      </message>
      <message name="INFRARED" id="18">
        <field name="ac_id" type="string"/>
        <field name="gps_hybrid_mode" type="string" values="OFF|ON"/>
        <field name="gps_hybrid_factor" type="float"/>
        <field name="contrast_status" type="string" values="DEFAULT|WAITING|SET|SKIPPED"/>
        <field name="contrast_value" type="int16"/>
      </message>
      <message name="INFLIGH_CALIB" id="19">
        <field name="ac_id" type="string"/>
        <field name="if_mode" type="string" values="OFF|DOWN|UP"/>
        <field name="if_value1" type="float"/>
        <field name="if_value2" type="float"/>
      </message>
      <message name="WORLD_ENV" id="20">
        <field name="wind_east" type="float" unit="m/s" format="%.1f"/>
        <field name="wind_north" type="float" unit="m/s" format="%.1f"/>
        <field name="ir_contrast" type="float"/>
        <field name="time_scale" type="float"/>
        <field name="gps_availability" type="uint8" values="OFF|ON"/>
      </message>
      <message name="WORLD_ENV_REQ" id="21"/>
      <message name="CIRCLE_STATUS" ID="22">
        <field name="ac_id" type="string"/>
        <field name="circle_lat" type="float" unit="deg"/>
        <field name="circle_long" type="float" unit="deg"/>
        <field name="radius" type="int16" unit="m"/>
      </message>
      <message name="SEGMENT_STATUS" ID="23">
        <field name="ac_id" type="string"/>
        <field name="segment1_lat" type="float" unit="deg"/>
        <field name="segment1_long" type="float" unit="deg"/>
        <field name="segment2_lat" type="float" unit="deg"/>
        <field name="segment2_long" type="float" unit="deg"/>
      </message>
      <message name="MOVE_WAYPOINT" ID="24">
        <field name="ac_id" type="string"/>
        <field name="wp_id" type="uint8"/>
        <field name="lat" type="float" unit="deg"/>
        <field name="long" type="float" unit="deg"/>
        <field name="alt" type="float" unit="m"/>
      </message>
      <message name="DL_SETTING" ID="26">
        <field name="ac_id" type="string"/>
        <field name="index" type="uint8"/>
        <field name="value" type="float"/>
      </message>
      <message name="JUMP_TO_BLOCK" ID="27">
        <field name="ac_id" type="string"/>
        <field name="block_id" type="uint8"/>
      </message>
      <message name="DL_VALUES" ID="28">
        <field name="ac_id" type="string"/>
        <field name="values" type="string" format="csv"/>
      </message>
      <message name="RAW_DATALINK" ID="29">
        <field name="ac_id" type="string"/>
        <field name="message" type="string" format=";sv"/>
      </message>
      <message name="WAYPOINT_MOVED" id="30">
        <field name="ac_id" type="string"/>
        <field name="wp_id" type="uint8"/>
        <field name="lat" type="float" unit="deg"/>
        <field name="long" type="float" unit="deg"/>
        <field name="alt" type="float" unit="m"/>
      </message>
      <message name="SURVEY_STATUS" ID="31">
        <field name="ac_id" type="string"/>
        <field name="east_long" type="float" unit="deg"/>
        <field name="north_lat" type="float" unit="deg"/>
        <field name="west_long" type="float" unit="deg"/>
        <field name="south_lat" type="float" unit="deg"/>
      </message>
      <message name="TELEMETRY_STATUS" ID="32">
        <field name="ac_id" type="string"/>
        <field name="time_since_last_msg" type="float" unit="s"/>
      </message>
      <message name="TELEMETRY_ERROR" ID="33">
        <field name="ac_id" type="string"/>
        <field name="message" type="string"/>
      </message>
      <message name="PLUMES" ID="100">
        <field name="ids" type="string" format="csv"/>
        <field name="lats" type="string" format="csv"/>
        <field name="longs" type="string" format="csv"/>
        <field name="values" type="string" format="csv"/>
      </message>
    </class>
    <class name="alert">
      <message name="BAT_LOW" ID="1">
        <field name="ac_id" type="string"/>
        <field name="level" type="string" values="CATASTROPHIC|CRITIC|WARNING"/>
        <field name="value" type="float"/>
      </message>
      <message name="AIR_PROX" ID="2">
        <field name="ac_id" type="string"/>
        <field name="level" type="string" values="CATASTROPHIC|CRITIC|WARNING"/>
      </message>
    </class>
  </protocol>

