<?xml version="1.0" encoding="utf-8"?>
<!-- Dynamically generated list of documented logfile messages (generated by parse.py) -->

<loggermessagefile>
  <logformat name="ACC">
    <description>IMU accelerometer data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>accelerometer sensor instance number</description>
      </field>
      <field name="SampleUS" units="μs" type="uint64_t">
        <description>time since system startup this sample was taken</description>
      </field>
      <field name="AccX" units="m/s/s" type="float">
        <description>acceleration along X axis</description>
      </field>
      <field name="AccY" units="m/s/s" type="float">
        <description>acceleration along Y axis</description>
      </field>
      <field name="AccZ" units="m/s/s" type="float">
        <description>acceleration along Z axis</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ADSB">
    <description>Automatic Dependent Serveillance - Broadcast detected vehicle information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="ICAO_address" units="" type="uint32_t">
        <description>Transponder address</description>
      </field>
      <field name="Lat" units="1e-7 deglatitude" type="int32_t">
        <description>Vehicle latitude</description>
      </field>
      <field name="Lng" units="1e-7 deglongitude" type="int32_t">
        <description>Vehicle longitude</description>
      </field>
      <field name="Alt" units="mm" type="int32_t">
        <description>Vehicle altitude</description>
      </field>
      <field name="Heading" units="cdegheading" type="uint16_t">
        <description>Vehicle heading</description>
      </field>
      <field name="Hor_vel" units="mm/s" type="uint16_t">
        <description>Vehicle horizontal velocity</description>
      </field>
      <field name="Ver_vel" units="mm/s" type="int16_t">
        <description>Vehicle vertical velocity</description>
      </field>
      <field name="Squark" units="" type="uint16_t">
        <description>Transponder squawk code</description>
      </field>
    </fields>
  </logformat>
  <logformat name="AERG">
    <description>Aeron PLX GNSS status and accuracy (GPS_PARA + EXTD_GNSS)</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="GMS" units="" type="uint32_t">
        <description>Time of week</description>
      </field>
      <field name="GWk" units="" type="uint16_t">
        <description>GPS week</description>
      </field>
      <field name="NSat" units="" type="uint16_t">
        <description>Satellites in view</description>
      </field>
      <field name="FixT" units="" type="uint8_t">
        <description>GPS fix type as reported to AP_GPS</description>
      </field>
      <field name="Jam" units="" type="uint8_t">
        <description>Jamming detection level (1=none,2=warn,3=critical)</description>
      </field>
      <field name="Spf" units="" type="uint8_t">
        <description>Spoofing detection level (1=none,2=warn,3=critical)</description>
      </field>
      <field name="HPA" units="" type="float">
        <description>Horizontal position accuracy</description>
      </field>
      <field name="VPA" units="" type="float">
        <description>Vertical position accuracy</description>
      </field>
      <field name="HVA" units="" type="float">
        <description>Horizontal velocity accuracy</description>
      </field>
      <field name="HDOP" units="" type="float">
        <description>Horizontal dilution of precision</description>
      </field>
      <field name="VDOP" units="" type="float">
        <description>Vertical dilution of precision</description>
      </field>
    </fields>
  </logformat>
  <logformat name="AERN">
    <description>Aeron PLX fused navigation solution (NAV_PARA1)</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Epoch" units="s" type="uint32_t">
        <description>Unix epoch seconds at sample time</description>
      </field>
      <field name="Lat" units="deglatitude" type="double">
        <description>Latitude</description>
      </field>
      <field name="Lng" units="deglongitude" type="double">
        <description>Longitude</description>
      </field>
      <field name="Alt" units="m" type="float">
        <description>Height above WGS84 ellipsoid</description>
      </field>
      <field name="VN" units="m/s" type="float">
        <description>Velocity north</description>
      </field>
      <field name="VE" units="m/s" type="float">
        <description>Velocity east</description>
      </field>
      <field name="VD" units="m/s" type="float">
        <description>Velocity down</description>
      </field>
      <field name="Crs" units="degheading" type="float">
        <description>Course over ground</description>
      </field>
      <field name="Roll" units="rad" type="float">
        <description>Roll angle</description>
      </field>
      <field name="Pitch" units="rad" type="float">
        <description>Pitch angle</description>
      </field>
      <field name="Yaw" units="rad" type="float">
        <description>Yaw angle</description>
      </field>
      <field name="InsSt" units="" type="uint32_t">
        <description>PLX INS filter-source status word</description>
      </field>
      <field name="HwSt" units="" type="uint32_t">
        <description>PLX hardware status word</description>
      </field>
    </fields>
  </logformat>
  <logformat name="AERS">
    <description>Aeron PLX raw sensor data (SENS_PARA)</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Temp" units="degC" type="float">
        <description>Sensor temperature</description>
      </field>
      <field name="GX" units="deg/s" type="float">
        <description>Gyro X</description>
      </field>
      <field name="GY" units="deg/s" type="float">
        <description>Gyro Y</description>
      </field>
      <field name="GZ" units="deg/s" type="float">
        <description>Gyro Z</description>
      </field>
      <field name="AX" units="m/s/s" type="float">
        <description>Accel X</description>
      </field>
      <field name="AY" units="m/s/s" type="float">
        <description>Accel Y</description>
      </field>
      <field name="AZ" units="m/s/s" type="float">
        <description>Accel Z</description>
      </field>
      <field name="MX" units="mGauss" type="float">
        <description>Mag X</description>
      </field>
      <field name="MY" units="mGauss" type="float">
        <description>Mag Y</description>
      </field>
      <field name="MZ" units="mGauss" type="float">
        <description>Mag Z</description>
      </field>
      <field name="Pres" units="Pa" type="float">
        <description>Barometric pressure</description>
      </field>
      <field name="BTmp" units="degC" type="float">
        <description>Barometer temperature</description>
      </field>
      <field name="BAlt" units="m" type="float">
        <description>Barometric altitude</description>
      </field>
    </fields>
  </logformat>
  <logformat name="AHR2">
    <description>Backup AHRS data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Roll" units="deg" type="int16_t * 100">
        <description>Estimated roll</description>
      </field>
      <field name="Pitch" units="deg" type="int16_t * 100">
        <description>Estimated pitch</description>
      </field>
      <field name="Yaw" units="degheading" type="uint16_t * 100">
        <description>Estimated yaw</description>
      </field>
      <field name="Alt" units="m" type="float">
        <description>Estimated altitude</description>
      </field>
      <field name="Lat" units="deglatitude" type="int32_t latitude/longitude">
        <description>Estimated latitude</description>
      </field>
      <field name="Lng" units="deglongitude" type="int32_t latitude/longitude">
        <description>Estimated longitude</description>
      </field>
      <field name="Q1" units="" type="float">
        <description>Estimated attitude quaternion component 1</description>
      </field>
      <field name="Q2" units="" type="float">
        <description>Estimated attitude quaternion component 2</description>
      </field>
      <field name="Q3" units="" type="float">
        <description>Estimated attitude quaternion component 3</description>
      </field>
      <field name="Q4" units="" type="float">
        <description>Estimated attitude quaternion component 4</description>
      </field>
    </fields>
  </logformat>
  <logformat name="AIS1">
    <description>Contents of 'position report' AIS message, see: https://gpsd.gitlab.io/gpsd/AIVDM.html#_types_1_2_and_3_position_report_class_a</description>
    <fields>
      <field name="US" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="typ" units="" type="uint8_t">
        <description>Message Type</description>
      </field>
      <field name="rep" units="" type="uint8_t">
        <description>Repeat Indicator</description>
      </field>
      <field name="mmsi" units="" type="uint32_t">
        <description>MMSI</description>
      </field>
      <field name="nav" units="" type="uint8_t">
        <description>Navigation Status</description>
      </field>
      <field name="rot" units="" type="int8_t">
        <description>Rate of Turn (ROT)</description>
      </field>
      <field name="sog" units="" type="uint16_t">
        <description>Speed Over Ground (SOG)</description>
      </field>
      <field name="pos" units="" type="int8_t">
        <description>Position Accuracy</description>
      </field>
      <field name="lon" units="" type="int32_t latitude/longitude">
        <description>Longitude</description>
      </field>
      <field name="lat" units="" type="int32_t latitude/longitude">
        <description>Latitude</description>
      </field>
      <field name="cog" units="" type="uint16_t">
        <description>Course Over Ground (COG)</description>
      </field>
      <field name="hed" units="" type="uint16_t">
        <description>True Heading (HDG)</description>
      </field>
      <field name="sec" units="" type="uint8_t">
        <description>Time Stamp</description>
      </field>
      <field name="man" units="" type="uint8_t">
        <description>Maneuver Indicator</description>
      </field>
      <field name="raim" units="" type="int8_t">
        <description>RAIM flag</description>
      </field>
      <field name="rad" units="" type="uint32_t">
        <description>Radio status</description>
      </field>
    </fields>
  </logformat>
  <logformat name="AIS4">
    <description>Contents of 'Base Station Report' AIS message, see: https://gpsd.gitlab.io/gpsd/AIVDM.html#_type_4_base_station_report</description>
    <fields>
      <field name="US" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="rep" units="" type="uint8_t">
        <description>Repeat Indicator</description>
      </field>
      <field name="mmsi" units="" type="uint32_t">
        <description>MMSI</description>
      </field>
      <field name="year" units="" type="uint16_t">
        <description>Year (UTC)</description>
      </field>
      <field name="mth" units="" type="uint8_t">
        <description>Month (UTC)</description>
      </field>
      <field name="day" units="" type="uint8_t">
        <description>Day (UTC)</description>
      </field>
      <field name="h" units="" type="uint8_t">
        <description>Hour (UTC)</description>
      </field>
      <field name="m" units="" type="uint8_t">
        <description>Minute (UTC)</description>
      </field>
      <field name="s" units="" type="uint8_t">
        <description>Second (UTC)</description>
      </field>
      <field name="fix" units="" type="uint8_t">
        <description>Fix quality</description>
      </field>
      <field name="lon" units="" type="int32_t latitude/longitude">
        <description>Longitude</description>
      </field>
      <field name="lat" units="" type="int32_t latitude/longitude">
        <description>Latitude</description>
      </field>
      <field name="epfd" units="" type="uint8_t">
        <description>Type of EPFD</description>
      </field>
      <field name="raim" units="" type="uint8_t">
        <description>RAIM flag</description>
      </field>
      <field name="rad" units="" type="uint32_t">
        <description>Radio status</description>
      </field>
    </fields>
  </logformat>
  <logformat name="AIS5">
    <description>Contents of 'static and voyage related data' AIS message, see: https://gpsd.gitlab.io/gpsd/AIVDM.html#_type_5_static_and_voyage_related_data</description>
    <fields>
      <field name="US" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="rep" units="" type="uint8_t">
        <description>Repeat Indicator</description>
      </field>
      <field name="mmsi" units="" type="uint32_t">
        <description>MMSI</description>
      </field>
      <field name="ver" units="" type="uint8_t">
        <description>AIS Version</description>
      </field>
      <field name="imo" units="" type="uint32_t">
        <description>IMO Number</description>
      </field>
      <field name="cal" units="" type="char[16]">
        <description>Call Sign</description>
      </field>
      <field name="nam" units="" type="char[64]">
        <description>Vessel Name</description>
      </field>
      <field name="typ" units="" type="uint8_t">
        <description>Ship Type</description>
      </field>
      <field name="bow" units="m" type="uint16_t">
        <description>Dimension to Bow</description>
      </field>
      <field name="stn" units="m" type="uint16_t">
        <description>Dimension to Stern</description>
      </field>
      <field name="prt" units="m" type="uint8_t">
        <description>Dimension to Port</description>
      </field>
      <field name="str" units="m" type="uint8_t">
        <description>Dimension to Starboard</description>
      </field>
      <field name="fix" units="" type="uint8_t">
        <description>Position Fix Type</description>
      </field>
      <field name="dght" units="dm" type="uint8_t">
        <description>Draught</description>
      </field>
      <field name="dst" units="" type="char[64]">
        <description>Destination</description>
      </field>
      <field name="dte" units="" type="uint8_t">
        <description>DTE</description>
      </field>
    </fields>
  </logformat>
  <logformat name="AISR">
    <description>Raw AIS AVDIM messages contents, see: https://gpsd.gitlab.io/gpsd/AIVDM.html#_aivdmaivdo_sentence_layer</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="num" units="" type="uint8_t">
        <description>count of fragments in the currently accumulating message</description>
      </field>
      <field name="total" units="" type="uint8_t">
        <description>fragment number of this sentence</description>
      </field>
      <field name="ID" units="" type="uint8_t">
        <description>sequential message ID for multi-sentence messages</description>
      </field>
      <field name="payload" units="" type="char[64]">
        <description>data payload</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ANG">
    <description>Attitude control attitude</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Timestamp of the current Attitude loop</description>
      </field>
      <field name="DesRoll" units="deg" type="float">
        <description>vehicle desired roll</description>
      </field>
      <field name="Roll" units="deg" type="float">
        <description>achieved vehicle roll</description>
      </field>
      <field name="DesPitch" units="deg" type="float">
        <description>vehicle desired pitch</description>
      </field>
      <field name="Pitch" units="deg" type="float">
        <description>achieved vehicle pitch</description>
      </field>
      <field name="DesYaw" units="degheading" type="float">
        <description>vehicle desired yaw</description>
      </field>
      <field name="Yaw" units="degheading" type="float">
        <description>achieved vehicle yaw</description>
      </field>
      <field name="Dt" units="s" type="float">
        <description>attitude delta time</description>
      </field>
    </fields>
  </logformat>
  <logformat name="AOA">
    <description>Angle of attack and Side Slip Angle values</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="AOA" units="deg" type="float">
        <description>Angle of Attack calculated from airspeed, wind vector,velocity vector </description>
      </field>
      <field name="SSA" units="deg" type="float">
        <description>Side Slip Angle calculated from airspeed, wind vector,velocity vector</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ARHS">
    <description>helicopter AutoRotation Head Speed (ARHS) controller information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Tar" units="" type="float">
        <description>Normalised target head speed</description>
      </field>
      <field name="Act" units="" type="float">
        <description>Normalised measured head speed</description>
      </field>
      <field name="Err" units="" type="float">
        <description>Head speed controller error</description>
      </field>
      <field name="P" units="" type="float">
        <description>P-term for head speed controller response</description>
      </field>
      <field name="FF" units="" type="float">
        <description>FF-term for head speed controller response</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ARM">
    <description>Arming status changes</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="ArmState" units="" type="uint8_t">
        <description>true if vehicle is now armed</description>
      </field>
      <field name="ArmChecks" units="" type="uint32_t">
        <description>arming bitmask at time of arming</description>
        <bitmask name="AP_Arming::Check">
          <bit name="BARO">
            <value>2</value>
          </bit>
          <bit name="COMPASS">
            <value>4</value>
          </bit>
          <bit name="GPS">
            <value>8</value>
          </bit>
          <bit name="INS">
            <value>16</value>
          </bit>
          <bit name="PARAMETERS">
            <value>32</value>
          </bit>
          <bit name="RC">
            <value>64</value>
          </bit>
          <bit name="VOLTAGE">
            <value>128</value>
          </bit>
          <bit name="BATTERY">
            <value>256</value>
          </bit>
          <bit name="AIRSPEED">
            <value>512</value>
          </bit>
          <bit name="LOGGING">
            <value>1024</value>
          </bit>
          <bit name="SWITCH">
            <value>2048</value>
          </bit>
          <bit name="GPS_CONFIG">
            <value>4096</value>
          </bit>
          <bit name="SYSTEM">
            <value>8192</value>
          </bit>
          <bit name="MISSION">
            <value>16384</value>
          </bit>
          <bit name="RANGEFINDER">
            <value>32768</value>
          </bit>
          <bit name="CAMERA">
            <value>65536</value>
          </bit>
          <bit name="AUX_AUTH">
            <value>131072</value>
          </bit>
          <bit name="VISION">
            <value>262144</value>
          </bit>
          <bit name="FFT">
            <value>524288</value>
          </bit>
          <bit name="OSD">
            <value>1048576</value>
          </bit>
          <bit name="CHECK_LAST">
            <value>2097152</value>
          </bit>
        </bitmask>
      </field>
      <field name="Forced" units="" type="uint8_t">
        <description>true if arm/disarm was forced</description>
      </field>
      <field name="Method" units="" type="uint8_t">
        <description>method used for arming</description>
        <enum name="AP_Arming::Method">
          <element name="RUDDER">
            <value>0</value>
          </element>
          <element name="MAVLINK">
            <value>1</value>
          </element>
          <element name="AUXSWITCH">
            <value>2</value>
          </element>
          <element name="MOTORTEST">
            <value>3</value>
          </element>
          <element name="SCRIPTING">
            <value>4</value>
          </element>
          <element name="TERMINATION">
            <value>5</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="CPUFAILSAFE">
            <value>6</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="BATTERYFAILSAFE">
            <value>7</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="SOLOPAUSEWHENLANDED">
            <value>8</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="AFS">
            <value>9</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="ADSBCOLLISIONACTION">
            <value>10</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="PARACHUTE_RELEASE">
            <value>11</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="CRASH">
            <value>12</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="LANDED">
            <value>13</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="MISSIONEXIT">
            <value>14</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="FENCEBREACH">
            <value>15</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="RADIOFAILSAFE">
            <value>16</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="DISARMDELAY">
            <value>17</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="GCSFAILSAFE">
            <value>18</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="TERRRAINFAILSAFE">
            <value>19</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="FAILSAFE_ACTION_TERMINATE">
            <value>20</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="TERRAINFAILSAFE">
            <value>21</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="MOTORDETECTDONE">
            <value>22</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="BADFLOWOFCONTROL">
            <value>23</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="EKFFAILSAFE">
            <value>24</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="GCS_FAILSAFE_SURFACEFAILED">
            <value>25</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="GCS_FAILSAFE_HOLDFAILED">
            <value>26</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="TAKEOFFTIMEOUT">
            <value>27</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="AUTOLANDED">
            <value>28</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="PILOT_INPUT_FAILSAFE">
            <value>29</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="TOYMODELANDTHROTTLE">
            <value>30</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="TOYMODELANDFORCE">
            <value>31</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="LANDING">
            <value>32</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="DEADRECKON_FAILSAFE">
            <value>33</value>
            <description>only disarm uses this...</description>
          </element>
          <element name="BLACKBOX">
            <value>34</value>
          </element>
          <element name="DDS">
            <value>35</value>
          </element>
          <element name="AUTO_ARM_ONCE">
            <value>36</value>
          </element>
          <element name="TURTLE_MODE">
            <value>37</value>
          </element>
          <element name="TOYMODE">
            <value>38</value>
          </element>
          <element name="UNKNOWN">
            <value>100</value>
          </element>
        </enum>
      </field>
    </fields>
  </logformat>
  <logformat name="AROT">
    <description>Helicopter AutoROTation (AROT) information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="LR" units="" type="uint8_t">
        <description>Landed Reason state flags</description>
        <bitmask name="AC_Autorotation_Landed_Reason">
          <bit name="LOW_SPEED">
            <value>1</value>
            <description>true if below 1 m/s</description>
          </bit>
          <bit name="LAND_COL">
            <value>2</value>
            <description>true if collective below land col min</description>
          </bit>
          <bit name="IS_STILL">
            <value>4</value>
            <description>passes inertial nav is_still() check</description>
          </bit>
        </bitmask>
      </field>
    </fields>
  </logformat>
  <logformat name="ARSC">
    <description>Helicopter AutoRotation Speed Controller (ARSC) information </description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Des" units="m/s" type="float">
        <description>Desired forward velocity</description>
      </field>
      <field name="Tar" units="m/s" type="float">
        <description>Target forward velocity</description>
      </field>
      <field name="Act" units="m/s" type="float">
        <description>Measured forward velocity</description>
      </field>
      <field name="P" units="" type="float">
        <description>Velocity to acceleration P-term component</description>
      </field>
      <field name="I" units="" type="float">
        <description>Velocity to acceleration I-term component</description>
      </field>
      <field name="D" units="" type="float">
        <description>Velocity to acceleration D-term component</description>
      </field>
      <field name="FF" units="" type="float">
        <description>Velocity to acceleration feed forward component</description>
      </field>
      <field name="Lim" units="" type="uint8_t">
        <description>Accel limit flag</description>
      </field>
      <field name="FA" units="m/s/s" type="float">
        <description>Forward acceleration target</description>
      </field>
      <field name="LA" units="m/s/s" type="float">
        <description>Lateral acceleration target</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ARSP">
    <description>Airspeed sensor data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>Airspeed sensor instance number</description>
      </field>
      <field name="Airspeed" units="m/s" type="float">
        <description>Current airspeed</description>
      </field>
      <field name="DiffPress" units="Pa" type="float">
        <description>Pressure difference between static and dynamic port</description>
      </field>
      <field name="Temp" units="degC" type="int16_t * 100">
        <description>Temperature used for calculation</description>
      </field>
      <field name="RawPress" units="Pa" type="float">
        <description>Raw pressure less offset</description>
      </field>
      <field name="Offset" units="Pa" type="float">
        <description>Offset from parameter</description>
      </field>
      <field name="U" units="" type="uint8_t">
        <description>True if sensor is being used</description>
      </field>
      <field name="H" units="" type="uint8_t">
        <description>True if sensor is healthy</description>
      </field>
      <field name="Hp" units="" type="float">
        <description>Probability sensor is healthy</description>
      </field>
      <field name="TR" units="" type="float">
        <description>innovation test ratio</description>
      </field>
      <field name="Pri" units="" type="uint8_t">
        <description>Primary instance number. If equal to I then this sensor is primary sensor</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ASM1">
    <description>AirSim simulation data</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="TUS" units="" type="uint64_t">
        <description>Simulation's timestamp</description>
      </field>
      <field name="R" units="" type="float">
        <description>Simulation's roll</description>
      </field>
      <field name="P" units="" type="float">
        <description>Simulation's pitch</description>
      </field>
      <field name="Y" units="" type="float">
        <description>Simulation's yaw</description>
      </field>
      <field name="GX" units="" type="float">
        <description>Simulated gyroscope, X-axis</description>
      </field>
      <field name="GY" units="" type="float">
        <description>Simulated gyroscope, Y-axis</description>
      </field>
      <field name="GZ" units="" type="float">
        <description>Simulated gyroscope, Z-axis</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ASM2">
    <description>More AirSim simulation data</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="AX" units="" type="float">
        <description>simulation's acceleration, X-axis</description>
      </field>
      <field name="AY" units="" type="float">
        <description>simulation's acceleration, Y-axis</description>
      </field>
      <field name="AZ" units="" type="float">
        <description>simulation's acceleration, Z-axis</description>
      </field>
      <field name="VX" units="" type="float">
        <description>simulation's velocity, X-axis</description>
      </field>
      <field name="VY" units="" type="float">
        <description>simulation's velocity, Y-axis</description>
      </field>
      <field name="VZ" units="" type="float">
        <description>simulation's velocity, Z-axis</description>
      </field>
      <field name="PX" units="" type="float">
        <description>simulation's position, X-axis</description>
      </field>
      <field name="PY" units="" type="float">
        <description>simulation's position, Y-axis</description>
      </field>
      <field name="PZ" units="" type="float">
        <description>simulation's position, Z-axis</description>
      </field>
      <field name="Alt" units="" type="float">
        <description>simulation's gps altitude</description>
      </field>
      <field name="SD" units="" type="float">
        <description>simulation's earth-frame speed-down</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ATDE">
    <description>AutoTune data packet</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Angle" units="deg" type="float">
        <description>current angle</description>
      </field>
      <field name="Rate" units="deg/s" type="float">
        <description>current angular rate</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ATDH">
    <description>Heli AutoTune data packet</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Cmd" units="" type="float">
        <description>current motor command</description>
      </field>
      <field name="TRate" units="deg/s" type="float">
        <description>current target angular rate</description>
      </field>
      <field name="Rate" units="deg/s" type="float">
        <description>current angular rate</description>
      </field>
      <field name="TAng" units="deg" type="float">
        <description>current target angle</description>
      </field>
      <field name="Ang" units="deg" type="float">
        <description>current angle</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ATNH">
    <description>Heli AutoTune</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Axis" units="" type="uint8_t">
        <description>which axis is currently being tuned</description>
      </field>
      <field name="TuneStep" units="" type="uint8_t">
        <description>step in autotune process</description>
      </field>
      <field name="Freq" units="rad/s" type="float">
        <description>target dwell frequency</description>
      </field>
      <field name="Gain" units="" type="float">
        <description>measured gain of dwell</description>
      </field>
      <field name="Phase" units="deg" type="float">
        <description>measured phase of dwell</description>
      </field>
      <field name="RFF" units="" type="float">
        <description>new rate gain FF term</description>
      </field>
      <field name="RP" units="" type="float">
        <description>new rate gain P term</description>
      </field>
      <field name="RD" units="" type="float">
        <description>new rate gain D term</description>
      </field>
      <field name="SP" units="" type="float">
        <description>new angle P term</description>
      </field>
      <field name="ACC" units="deg/s/s" type="float">
        <description>new max accel term</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ATSC">
    <description>Scale factors for attitude controller</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="AngPScX" units="" type="float">
        <description>Angle P scale X</description>
      </field>
      <field name="AngPScY" units="" type="float">
        <description>Angle P scale Y</description>
      </field>
      <field name="AngPScZ" units="" type="float">
        <description>Angle P scale Z</description>
      </field>
      <field name="PDScX" units="" type="float">
        <description>PD scale X</description>
      </field>
      <field name="PDScY" units="" type="float">
        <description>PD scale Y</description>
      </field>
      <field name="PDScZ" units="" type="float">
        <description>PD scale Z</description>
      </field>
      <field name="IScX" units="" type="float">
        <description>I scale X</description>
      </field>
      <field name="IScY" units="" type="float">
        <description>I scale Y</description>
      </field>
      <field name="IScZ" units="" type="float">
        <description>I scale Z</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ATSH">
    <description>Heli AutoTune Sweep packet</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="freq_m" units="rad/s" type="float">
        <description>current frequency for motor input to rate</description>
      </field>
      <field name="gain_m" units="" type="float">
        <description>current response gain for motor input to rate</description>
      </field>
      <field name="phase_m" units="deg" type="float">
        <description>current response phase for motor input to rate</description>
      </field>
      <field name="freq_t" units="rad/s" type="float">
        <description>current frequency for target rate to rate</description>
      </field>
      <field name="gain_t" units="" type="float">
        <description>current response gain for target rate to rate</description>
      </field>
      <field name="phase_t" units="deg" type="float">
        <description>current response phase for target rate to rate</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ATT">
    <description>Canonical vehicle attitude</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="DesRoll" units="deg" type="float">
        <description>vehicle desired roll</description>
      </field>
      <field name="Roll" units="deg" type="float">
        <description>achieved vehicle roll</description>
      </field>
      <field name="DesPitch" units="deg" type="float">
        <description>vehicle desired pitch</description>
      </field>
      <field name="Pitch" units="deg" type="float">
        <description>achieved vehicle pitch</description>
      </field>
      <field name="DesYaw" units="degheading" type="float">
        <description>vehicle desired yaw</description>
      </field>
      <field name="Yaw" units="degheading" type="float">
        <description>achieved vehicle yaw</description>
      </field>
      <field name="AEKF" units="" type="uint8_t">
        <description>active EKF type</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ATUN">
    <description>Copter/QuadPlane AutoTune</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Axis" units="" type="uint8_t">
        <description>which axis is currently being tuned</description>
      </field>
      <field name="TuneStep" units="" type="uint8_t">
        <description>step in autotune process</description>
      </field>
      <field name="Targ" units="deg" type="float">
        <description>target angle or rate, depending on tuning step</description>
      </field>
      <field name="Min" units="deg" type="float">
        <description>measured minimum target angle or rate</description>
      </field>
      <field name="Max" units="deg" type="float">
        <description>measured maximum target angle or rate</description>
      </field>
      <field name="RP" units="" type="float">
        <description>new rate gain P term</description>
      </field>
      <field name="RD" units="" type="float">
        <description>new rate gain D term</description>
      </field>
      <field name="SP" units="" type="float">
        <description>new angle P term</description>
      </field>
      <field name="ddt" units="m/s/s" type="float">
        <description>maximum measured twitching acceleration</description>
      </field>
    </fields>
  </logformat>
  <logformat name="AUXF">
    <description>Auxiliary function invocation information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="function" units="instance" type="uint16_t">
        <description>ID of triggered function</description>
        <enum name="RC_Channel::AUX_FUNC">
          <element name="DO_NOTHING">
            <value>0</value>
            <description>aux switch disabled</description>
          </element>
          <element name="FLIP">
            <value>2</value>
            <description>flip</description>
          </element>
          <element name="SIMPLE_MODE">
            <value>3</value>
            <description>change to simple mode</description>
          </element>
          <element name="RTL">
            <value>4</value>
            <description>change to RTL flight mode</description>
          </element>
          <element name="SAVE_TRIM">
            <value>5</value>
            <description>save current position as level</description>
          </element>
          <element name="SAVE_WP">
            <value>7</value>
            <description>save mission waypoint or RTL if in auto mode</description>
          </element>
          <element name="CAMERA_TRIGGER">
            <value>9</value>
            <description>trigger camera servo or relay</description>
          </element>
          <element name="RANGEFINDER">
            <value>10</value>
            <description>allow enabling or disabling rangefinder in flight which helps avoid surface tracking when you are far above the ground</description>
          </element>
          <element name="FENCE">
            <value>11</value>
            <description>allow enabling or disabling fence in flight</description>
          </element>
          <element name="RESETTOARMEDYAW">
            <value>12</value>
            <description>UNUSED</description>
          </element>
          <element name="SUPERSIMPLE_MODE">
            <value>13</value>
            <description>change to simple mode in middle, super simple at top</description>
          </element>
          <element name="ACRO_TRAINER">
            <value>14</value>
            <description>low = disabled, middle = leveled, high = leveled and limited</description>
          </element>
          <element name="SPRAYER">
            <value>15</value>
            <description>enable/disable the crop sprayer</description>
          </element>
          <element name="AUTO">
            <value>16</value>
            <description>change to auto flight mode</description>
          </element>
          <element name="AUTOTUNE_MODE">
            <value>17</value>
            <description>auto tune</description>
          </element>
          <element name="LAND">
            <value>18</value>
            <description>change to LAND flight mode</description>
          </element>
          <element name="GRIPPER">
            <value>19</value>
            <description>Operate cargo grippers low=off, middle=neutral, high=on</description>
          </element>
          <element name="PARACHUTE_ENABLE">
            <value>21</value>
            <description>Parachute enable/disable</description>
          </element>
          <element name="PARACHUTE_RELEASE">
            <value>22</value>
            <description>Parachute release</description>
          </element>
          <element name="PARACHUTE_3POS">
            <value>23</value>
            <description>Parachute disable, enable, release with 3 position switch</description>
          </element>
          <element name="MISSION_RESET">
            <value>24</value>
            <description>Reset auto mission to start from first command</description>
          </element>
          <element name="ATTCON_FEEDFWD">
            <value>25</value>
            <description>enable/disable the roll and pitch rate feed forward</description>
          </element>
          <element name="ATTCON_ACCEL_LIM">
            <value>26</value>
            <description>enable/disable the roll, pitch and yaw accel limiting</description>
          </element>
          <element name="RETRACT_MOUNT1">
            <value>27</value>
            <description>Retract Mount1</description>
          </element>
          <element name="RELAY">
            <value>28</value>
            <description>Relay pin on/off (only supports first relay)</description>
          </element>
          <element name="LANDING_GEAR">
            <value>29</value>
            <description>Landing gear controller</description>
          </element>
          <element name="LOST_VEHICLE_SOUND">
            <value>30</value>
            <description>Play lost vehicle sound</description>
          </element>
          <element name="MOTOR_ESTOP">
            <value>31</value>
            <description>Emergency Stop Switch</description>
          </element>
          <element name="MOTOR_INTERLOCK">
            <value>32</value>
            <description>Motor On/Off switch</description>
          </element>
          <element name="BRAKE">
            <value>33</value>
            <description>Brake flight mode</description>
          </element>
          <element name="RELAY2">
            <value>34</value>
            <description>Relay2 pin on/off</description>
          </element>
          <element name="RELAY3">
            <value>35</value>
            <description>Relay3 pin on/off</description>
          </element>
          <element name="RELAY4">
            <value>36</value>
            <description>Relay4 pin on/off</description>
          </element>
          <element name="THROW">
            <value>37</value>
            <description>change to THROW flight mode</description>
          </element>
          <element name="AVOID_ADSB">
            <value>38</value>
            <description>enable AP_Avoidance library</description>
          </element>
          <element name="PRECISION_LOITER">
            <value>39</value>
            <description>enable precision loiter</description>
          </element>
          <element name="AVOID_PROXIMITY">
            <value>40</value>
            <description>enable object avoidance using proximity sensors (ie. horizontal lidar)</description>
          </element>
          <element name="ARMDISARM_UNUSED">
            <value>41</value>
            <description>UNUSED</description>
          </element>
          <element name="SMART_RTL">
            <value>42</value>
            <description>change to SmartRTL flight mode</description>
          </element>
          <element name="INVERTED">
            <value>43</value>
            <description>enable inverted flight</description>
          </element>
          <element name="WINCH_ENABLE">
            <value>44</value>
            <description>winch enable/disable</description>
          </element>
          <element name="WINCH_CONTROL">
            <value>45</value>
            <description>winch control</description>
          </element>
          <element name="RC_OVERRIDE_ENABLE">
            <value>46</value>
            <description>enable RC Override</description>
          </element>
          <element name="USER_FUNC1">
            <value>47</value>
            <description>user function #1</description>
          </element>
          <element name="USER_FUNC2">
            <value>48</value>
            <description>user function #2</description>
          </element>
          <element name="USER_FUNC3">
            <value>49</value>
            <description>user function #3</description>
          </element>
          <element name="LEARN_CRUISE">
            <value>50</value>
            <description>learn cruise throttle (Rover)</description>
          </element>
          <element name="MANUAL">
            <value>51</value>
            <description>manual mode</description>
          </element>
          <element name="ACRO">
            <value>52</value>
            <description>acro mode</description>
          </element>
          <element name="STEERING">
            <value>53</value>
            <description>steering mode</description>
          </element>
          <element name="HOLD">
            <value>54</value>
            <description>hold mode</description>
          </element>
          <element name="GUIDED">
            <value>55</value>
            <description>guided mode</description>
          </element>
          <element name="LOITER">
            <value>56</value>
            <description>loiter mode</description>
          </element>
          <element name="FOLLOW">
            <value>57</value>
            <description>follow mode</description>
          </element>
          <element name="CLEAR_WP">
            <value>58</value>
            <description>clear waypoints</description>
          </element>
          <element name="SIMPLE">
            <value>59</value>
            <description>simple mode</description>
          </element>
          <element name="ZIGZAG">
            <value>60</value>
            <description>zigzag mode</description>
          </element>
          <element name="ZIGZAG_SaveWP">
            <value>61</value>
            <description>zigzag save waypoint</description>
          </element>
          <element name="COMPASS_LEARN">
            <value>62</value>
            <description>learn compass offsets</description>
          </element>
          <element name="SAILBOAT_TACK">
            <value>63</value>
            <description>rover sailboat tack</description>
          </element>
          <element name="REVERSE_THROTTLE">
            <value>64</value>
            <description>reverse throttle input</description>
          </element>
          <element name="GPS_DISABLE">
            <value>65</value>
            <description>disable GPS for testing</description>
          </element>
          <element name="RELAY5">
            <value>66</value>
            <description>Relay5 pin on/off</description>
          </element>
          <element name="RELAY6">
            <value>67</value>
            <description>Relay6 pin on/off</description>
          </element>
          <element name="STABILIZE">
            <value>68</value>
            <description>stabilize mode</description>
          </element>
          <element name="POSHOLD">
            <value>69</value>
            <description>poshold mode</description>
          </element>
          <element name="ALTHOLD">
            <value>70</value>
            <description>althold mode</description>
          </element>
          <element name="FLOWHOLD">
            <value>71</value>
            <description>flowhold mode</description>
          </element>
          <element name="CIRCLE">
            <value>72</value>
            <description>circle mode</description>
          </element>
          <element name="DRIFT">
            <value>73</value>
            <description>drift mode</description>
          </element>
          <element name="SAILBOAT_MOTOR_3POS">
            <value>74</value>
            <description>Sailboat motoring 3pos</description>
          </element>
          <element name="SURFACE_TRACKING">
            <value>75</value>
            <description>Surface tracking upwards or downwards</description>
          </element>
          <element name="STANDBY">
            <value>76</value>
            <description>Standby mode</description>
          </element>
          <element name="TAKEOFF">
            <value>77</value>
            <description>takeoff</description>
          </element>
          <element name="RUNCAM_CONTROL">
            <value>78</value>
            <description>control RunCam device</description>
          </element>
          <element name="RUNCAM_OSD_CONTROL">
            <value>79</value>
            <description>control RunCam OSD</description>
          </element>
          <element name="VISODOM_ALIGN">
            <value>80</value>
            <description>align visual odometry camera's attitude to AHRS</description>
          </element>
          <element name="DISARM">
            <value>81</value>
            <description>disarm vehicle</description>
          </element>
          <element name="Q_ASSIST">
            <value>82</value>
            <description>disable, enable and force Q assist</description>
          </element>
          <element name="ZIGZAG_Auto">
            <value>83</value>
            <description>zigzag auto switch</description>
          </element>
          <element name="AIRMODE">
            <value>84</value>
            <description>enable / disable airmode for copter</description>
          </element>
          <element name="GENERATOR">
            <value>85</value>
            <description>generator control</description>
          </element>
          <element name="TER_DISABLE">
            <value>86</value>
            <description>disable terrain following in CRUISE/FBWB modes</description>
          </element>
          <element name="CROW_SELECT">
            <value>87</value>
            <description>select CROW mode for diff spoilers;high disables,mid forces progressive</description>
          </element>
          <element name="SOARING">
            <value>88</value>
            <description>three-position switch to set soaring mode</description>
          </element>
          <element name="LANDING_FLARE">
            <value>89</value>
            <description>force flare, throttle forced idle, pitch to LAND_PITCH_DEG, tilts up</description>
          </element>
          <element name="EKF_SOURCE_SET">
            <value>90</value>
            <description>change EKF data source set between primary, secondary and tertiary</description>
          </element>
          <element name="ARSPD_CALIBRATE">
            <value>91</value>
            <description>calibrate airspeed ratio</description>
          </element>
          <element name="FBWA">
            <value>92</value>
            <description>Fly-By-Wire-A</description>
          </element>
          <element name="RELOCATE_MISSION">
            <value>93</value>
            <description>used in separate branch MISSION_RELATIVE</description>
          </element>
          <element name="VTX_POWER">
            <value>94</value>
            <description>VTX power level</description>
          </element>
          <element name="FBWA_TAILDRAGGER">
            <value>95</value>
            <description>enables FBWA taildragger takeoff mode. Once this feature is enabled it will stay enabled until the aircraft goes above TKOFF_TDRAG_SPD1 airspeed, changes mode, or the pitch goes above the initial pitch when this is engaged or goes below 0 pitch. When enabled the elevator will be forced to TKOFF_TDRAG_ELEV. This option allows for easier takeoffs on taildraggers in FBWA mode, and also makes it easier to test auto-takeoff steering handling in FBWA.</description>
          </element>
          <element name="MODE_SWITCH_RESET">
            <value>96</value>
            <description>trigger re-reading of mode switch</description>
          </element>
          <element name="WIND_VANE_DIR_OFSSET">
            <value>97</value>
            <description>flag for windvane direction offset input, used with windvane type 2</description>
          </element>
          <element name="TRAINING">
            <value>98</value>
            <description>mode training</description>
          </element>
          <element name="AUTO_RTL">
            <value>99</value>
            <description>AUTO RTL via DO_LAND_START</description>
          </element>
          <element name="KILL_IMU1">
            <value>100</value>
            <description>disable first IMU (for IMU failure testing)</description>
          </element>
          <element name="KILL_IMU2">
            <value>101</value>
            <description>disable second IMU (for IMU failure testing)</description>
          </element>
          <element name="CAM_MODE_TOGGLE">
            <value>102</value>
            <description>Momentary switch to cycle camera modes</description>
          </element>
          <element name="EKF_LANE_SWITCH">
            <value>103</value>
            <description>trigger lane switch attempt</description>
          </element>
          <element name="EKF_YAW_RESET">
            <value>104</value>
            <description>trigger yaw reset attempt</description>
          </element>
          <element name="GPS_DISABLE_YAW">
            <value>105</value>
            <description>disable GPS yaw for testing</description>
          </element>
          <element name="DISABLE_AIRSPEED_USE">
            <value>106</value>
            <description>equivalent to AIRSPEED_USE 0</description>
          </element>
          <element name="FW_AUTOTUNE">
            <value>107</value>
            <description>fixed wing auto tune</description>
          </element>
          <element name="QRTL">
            <value>108</value>
            <description>QRTL mode</description>
          </element>
          <element name="CUSTOM_CONTROLLER">
            <value>109</value>
            <description>use Custom Controller</description>
          </element>
          <element name="KILL_IMU3">
            <value>110</value>
            <description>disable third IMU (for IMU failure testing)</description>
          </element>
          <element name="LOWEHEISER_STARTER">
            <value>111</value>
            <description>allows for manually running starter</description>
          </element>
          <element name="AHRS_TYPE">
            <value>112</value>
            <description>change AHRS_EKF_TYPE</description>
          </element>
          <element name="RETRACT_MOUNT2">
            <value>113</value>
            <description>Retract Mount2</description>
          </element>
          <element name="CRUISE">
            <value>150</value>
            <description>CRUISE mode</description>
          </element>
          <element name="TURTLE">
            <value>151</value>
            <description>Turtle mode - flip over after crash</description>
          </element>
          <element name="SIMPLE_HEADING_RESET">
            <value>152</value>
            <description>reset simple mode reference heading to current</description>
          </element>
          <element name="ARMDISARM">
            <value>153</value>
            <description>arm or disarm vehicle</description>
          </element>
          <element name="ARMDISARM_AIRMODE">
            <value>154</value>
            <description>arm or disarm vehicle enabling airmode</description>
          </element>
          <element name="TRIM_TO_CURRENT_SERVO_RC">
            <value>155</value>
            <description>trim to current servo and RC</description>
          </element>
          <element name="TORQEEDO_CLEAR_ERR">
            <value>156</value>
            <description>clear torqeedo error</description>
          </element>
          <element name="EMERGENCY_LANDING_EN">
            <value>157</value>
            <description>Force long FS action to FBWA for landing out of range</description>
          </element>
          <element name="OPTFLOW_CAL">
            <value>158</value>
            <description>optical flow calibration</description>
          </element>
          <element name="FORCEFLYING">
            <value>159</value>
            <description>enable or disable land detection for GPS based manual modes preventing land detection and maintainting set_throttle_mix_max</description>
          </element>
          <element name="WEATHER_VANE_ENABLE">
            <value>160</value>
            <description>enable/disable weathervaning</description>
          </element>
          <element name="TURBINE_START">
            <value>161</value>
            <description>initialize turbine start sequence</description>
          </element>
          <element name="FFT_NOTCH_TUNE">
            <value>162</value>
            <description>FFT notch tuning function</description>
          </element>
          <element name="MOUNT_YAW_LOCK">
            <value>163</value>
            <description>Mount earth frame yaw lock forced on all axes, for all mounts</description>
          </element>
          <element name="LOG_PAUSE">
            <value>164</value>
            <description>Pauses logging if under logging rate control</description>
          </element>
          <element name="ARM_EMERGENCY_STOP">
            <value>165</value>
            <description>ARM on high, MOTOR_ESTOP on low</description>
          </element>
          <element name="CAMERA_REC_VIDEO">
            <value>166</value>
            <description>start recording on high, stop recording on low</description>
          </element>
          <element name="CAMERA_ZOOM">
            <value>167</value>
            <description>camera zoom high = zoom in, middle = hold, low = zoom out</description>
          </element>
          <element name="CAMERA_MANUAL_FOCUS">
            <value>168</value>
            <description>camera manual focus.  high = long shot, middle = stop focus, low = close shot</description>
          </element>
          <element name="CAMERA_AUTO_FOCUS">
            <value>169</value>
            <description>camera auto focus</description>
          </element>
          <element name="QSTABILIZE">
            <value>170</value>
            <description>QuadPlane QStabilize mode</description>
          </element>
          <element name="MAG_CAL">
            <value>171</value>
            <description>Calibrate compasses (disarmed only)</description>
          </element>
          <element name="BATTERY_MPPT_ENABLE">
            <value>172</value>
            <description>Battery MPPT Power enable. high = ON, mid = auto (controlled by mppt/batt driver), low = OFF. This effects all MPPTs.</description>
          </element>
          <element name="PLANE_AUTO_LANDING_ABORT">
            <value>173</value>
            <description>Abort Glide-slope or VTOL landing during payload place or do_land type mission items</description>
          </element>
          <element name="CAMERA_IMAGE_TRACKING">
            <value>174</value>
            <description>camera image tracking</description>
          </element>
          <element name="CAMERA_LENS">
            <value>175</value>
            <description>camera lens selection</description>
          </element>
          <element name="VFWD_THR_OVERRIDE">
            <value>176</value>
            <description>force enabled VTOL forward throttle method</description>
          </element>
          <element name="MOUNT_LRF_ENABLE">
            <value>177</value>
            <description>mount LRF enable/disable</description>
          </element>
          <element name="FLIGHTMODE_PAUSE">
            <value>178</value>
            <description>e.g. pause movement towards waypoint</description>
          </element>
          <element name="ICE_START_STOP">
            <value>179</value>
            <description>AP_ICEngine start stop</description>
          </element>
          <element name="AUTOTUNE_TEST_GAINS">
            <value>180</value>
            <description>auto tune tuning switch to test or revert gains</description>
          </element>
          <element name="QUICKTUNE">
            <value>181</value>
            <description>quicktune 3 position switch</description>
          </element>
          <element name="AHRS_AUTO_TRIM">
            <value>182</value>
            <description>in-flight AHRS autotrim</description>
          </element>
          <element name="AUTOLAND">
            <value>183</value>
            <description>Fixed Wing AUTOLAND Mode</description>
          </element>
          <element name="SYSTEMID">
            <value>184</value>
            <description>system ID as an aux switch</description>
          </element>
          <element name="MOUNT_RP_LOCK">
            <value>185</value>
            <description>mount lock modes for roll and pitch axes, for all mounts that support it</description>
          </element>
          <element name="MOUNT_POI_LOCK">
            <value>186</value>
            <description>Lock mount target to current ROI seen and switch mount to GPS Targeting mode</description>
          </element>
          <element name="EKF_RESET">
            <value>187</value>
            <description>trigger full EKF bootstrap reset</description>
          </element>
          <element name="ROLL">
            <value>201</value>
            <description>roll input</description>
          </element>
          <element name="PITCH">
            <value>202</value>
            <description>pitch input</description>
          </element>
          <element name="THROTTLE">
            <value>203</value>
            <description>throttle pilot input</description>
          </element>
          <element name="YAW">
            <value>204</value>
            <description>yaw pilot input</description>
          </element>
          <element name="MAINSAIL">
            <value>207</value>
            <description>mainsail input</description>
          </element>
          <element name="FLAP">
            <value>208</value>
            <description>flap input</description>
          </element>
          <element name="FWD_THR">
            <value>209</value>
            <description>VTOL manual forward throttle</description>
          </element>
          <element name="AIRBRAKE">
            <value>210</value>
            <description>manual airbrake control</description>
          </element>
          <element name="WALKING_HEIGHT">
            <value>211</value>
            <description>walking robot height input</description>
          </element>
          <element name="MOUNT1_ROLL">
            <value>212</value>
            <description>mount1 roll input</description>
          </element>
          <element name="MOUNT1_PITCH">
            <value>213</value>
            <description>mount1 pitch input</description>
          </element>
          <element name="MOUNT1_YAW">
            <value>214</value>
            <description>mount1 yaw input</description>
          </element>
          <element name="MOUNT2_ROLL">
            <value>215</value>
            <description>mount2 roll input</description>
          </element>
          <element name="MOUNT2_PITCH">
            <value>216</value>
            <description>mount3 pitch input</description>
          </element>
          <element name="MOUNT2_YAW">
            <value>217</value>
            <description>mount4 yaw input</description>
          </element>
          <element name="LOWEHEISER_THROTTLE">
            <value>218</value>
            <description>allows for throttle on slider</description>
          </element>
          <element name="TRANSMITTER_TUNING">
            <value>219</value>
            <description>use a transmitter knob or slider for in-flight tuning</description>
          </element>
          <element name="TRANSMITTER_TUNING2">
            <value>220</value>
            <description>use another transmitter knob or slider for in-flight tuning</description>
          </element>
          <element name="SCRIPTING_1">
            <value>300</value>
          </element>
          <element name="SCRIPTING_2">
            <value>301</value>
          </element>
          <element name="SCRIPTING_3">
            <value>302</value>
          </element>
          <element name="SCRIPTING_4">
            <value>303</value>
          </element>
          <element name="SCRIPTING_5">
            <value>304</value>
          </element>
          <element name="SCRIPTING_6">
            <value>305</value>
          </element>
          <element name="SCRIPTING_7">
            <value>306</value>
          </element>
          <element name="SCRIPTING_8">
            <value>307</value>
          </element>
          <element name="SCRIPTING_9">
            <value>308</value>
          </element>
          <element name="SCRIPTING_10">
            <value>309</value>
          </element>
          <element name="SCRIPTING_11">
            <value>310</value>
          </element>
          <element name="SCRIPTING_12">
            <value>311</value>
          </element>
          <element name="SCRIPTING_13">
            <value>312</value>
          </element>
          <element name="SCRIPTING_14">
            <value>313</value>
          </element>
          <element name="SCRIPTING_15">
            <value>314</value>
          </element>
          <element name="SCRIPTING_16">
            <value>315</value>
          </element>
          <element name="STOP_RESTART_SCRIPTING">
            <value>316</value>
            <description>emergency scripting disablement</description>
          </element>
          <element name="AUX_FUNCTION_MAX">
            <value>317</value>
          </element>
        </enum>
      </field>
      <field name="pos" units="" type="uint8_t">
        <description>switch position when function triggered</description>
        <enum name="RC_Channel::AuxSwitchPos">
          <element name="LOW">
            <value>0</value>
            <description>indicates auxiliary switch is in the low position (pwm &lt;1200)</description>
          </element>
          <element name="MIDDLE">
            <value>1</value>
            <description>indicates auxiliary switch is in the middle position (pwm &gt;1200, &lt;1800)</description>
          </element>
          <element name="HIGH">
            <value>2</value>
            <description>indicates auxiliary switch is in the high position (pwm &gt;1800)</description>
          </element>
        </enum>
      </field>
      <field name="source" units="" type="uint8_t">
        <description>source of auxiliary function invocation</description>
        <enum name="RC_Channel::AuxFuncTrigger::Source">
          <element name="INIT">
            <value>0</value>
            <description>Source index is RC channel index</description>
          </element>
          <element name="RC">
            <value>1</value>
            <description>Source index is RC channel index</description>
          </element>
          <element name="BUTTON">
            <value>2</value>
            <description>Source index is button index</description>
          </element>
          <element name="MAVLINK">
            <value>3</value>
            <description>Source index is MAVLink channel number</description>
          </element>
          <element name="MISSION">
            <value>4</value>
            <description>Source index is mission item index</description>
          </element>
          <element name="SCRIPTING">
            <value>5</value>
            <description>Source index is not used (always 0)</description>
          </element>
        </enum>
      </field>
      <field name="index" units="" type="uint16_t">
        <description>index within source. 0 indexed. Invalid for scripting.</description>
      </field>
      <field name="result" units="" type="uint8_t">
        <description>true if function was successful</description>
      </field>
    </fields>
  </logformat>
  <logformat name="BARD">
    <description>Barometer dynamic data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>barometer sensor instance number</description>
      </field>
      <field name="DynPrX" units="Pa" type="float">
        <description>calculated dynamic pressure in the bodyframe X-axis</description>
      </field>
      <field name="DynPrY" units="Pa" type="float">
        <description>calculated dynamic pressure in the bodyframe Y-axis</description>
      </field>
      <field name="DynPrZ" units="Pa" type="float">
        <description>calculated dynamic pressure in the bodyframe Z-axis</description>
      </field>
    </fields>
  </logformat>
  <logformat name="BARO">
    <description>Gathered Barometer data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>barometer sensor instance number</description>
      </field>
      <field name="Alt" units="m" type="float">
        <description>calculated altitude</description>
      </field>
      <field name="AltAMSL" units="m" type="float">
        <description>altitude AMSL</description>
      </field>
      <field name="Press" units="Pa" type="float">
        <description>measured atmospheric pressure</description>
      </field>
      <field name="Temp" units="degC" type="int16_t * 100">
        <description>measured atmospheric temperature</description>
      </field>
      <field name="CRt" units="m/s" type="float">
        <description>derived climb rate from primary barometer</description>
      </field>
      <field name="SMS" units="ms" type="uint32_t">
        <description>time last sample was taken</description>
      </field>
      <field name="Offset" units="m" type="float">
        <description>raw adjustment of barometer altitude, zeroed on calibration, possibly set by GCS</description>
      </field>
      <field name="GndTemp" units="degC" type="float">
        <description>temperature on ground, specified by parameter or measured while on ground</description>
      </field>
      <field name="H" units="" type="uint8_t">
        <description>true if barometer is considered healthy</description>
      </field>
      <field name="CPress" units="Pa" type="float">
        <description>compensated atmospheric pressure</description>
      </field>
    </fields>
  </logformat>
  <logformat name="BAT">
    <description>Gathered battery data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Inst" units="instance" type="uint8_t">
        <description>battery instance number</description>
      </field>
      <field name="Volt" units="V" type="float">
        <description>measured voltage</description>
      </field>
      <field name="VoltR" units="V" type="float">
        <description>estimated resting voltage</description>
      </field>
      <field name="Curr" units="A" type="float">
        <description>measured current</description>
      </field>
      <field name="CurrTot" units="mAh" type="float">
        <description>consumed Ah, current * time</description>
      </field>
      <field name="EnrgTot" units="W.h" type="float">
        <description>consumed Wh, energy this battery has expended</description>
      </field>
      <field name="Temp" units="degC" type="int16_t * 100">
        <description>measured temperature</description>
      </field>
      <field name="Res" units="Ohm" type="float">
        <description>estimated battery resistance</description>
      </field>
      <field name="RemPct" units="%" type="uint8_t">
        <description>remaining percentage</description>
      </field>
      <field name="H" units="" type="uint8_t">
        <description>health</description>
      </field>
      <field name="SH" units="%" type="uint8_t">
        <description>state of health percentage.  0 if unknown</description>
      </field>
    </fields>
  </logformat>
  <logformat name="BCL">
    <description>Battery cell voltage information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Instance" units="instance" type="uint8_t">
        <description>battery instance number</description>
      </field>
      <field name="Volt" units="V" type="float">
        <description>battery voltage</description>
      </field>
      <field name="V1" units="mV" type="uint16_t">
        <description>first cell voltage</description>
      </field>
      <field name="V2" units="mV" type="uint16_t">
        <description>second cell voltage</description>
      </field>
      <field name="V3" units="mV" type="uint16_t">
        <description>third cell voltage</description>
      </field>
      <field name="V4" units="mV" type="uint16_t">
        <description>fourth cell voltage</description>
      </field>
      <field name="V5" units="mV" type="uint16_t">
        <description>fifth cell voltage</description>
      </field>
      <field name="V6" units="mV" type="uint16_t">
        <description>sixth cell voltage</description>
      </field>
      <field name="V7" units="mV" type="uint16_t">
        <description>seventh cell voltage</description>
      </field>
      <field name="V8" units="mV" type="uint16_t">
        <description>eighth cell voltage</description>
      </field>
      <field name="V9" units="mV" type="uint16_t">
        <description>ninth cell voltage</description>
      </field>
      <field name="V10" units="mV" type="uint16_t">
        <description>tenth cell voltage</description>
      </field>
      <field name="V11" units="mV" type="uint16_t">
        <description>eleventh cell voltage</description>
      </field>
      <field name="V12" units="mV" type="uint16_t">
        <description>twelfth cell voltage</description>
      </field>
    </fields>
  </logformat>
  <logformat name="BCL2">
    <description>Battery cell voltage information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Instance" units="instance" type="uint8_t">
        <description>battery instance number</description>
      </field>
      <field name="V13" units="mV" type="uint16_t">
        <description>thirteenth cell voltage</description>
      </field>
      <field name="V14" units="mV" type="uint16_t">
        <description>fourteenth cell voltage</description>
      </field>
    </fields>
  </logformat>
  <logformat name="BCN">
    <description>Beacon information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Health" units="" type="uint8_t">
        <description>True if beacon sensor is healthy</description>
      </field>
      <field name="Cnt" units="" type="uint8_t">
        <description>Number of beacons being used</description>
      </field>
      <field name="D0" units="m" type="float">
        <description>Distance to first beacon</description>
      </field>
      <field name="D1" units="m" type="float">
        <description>Distance to second beacon</description>
      </field>
      <field name="D2" units="m" type="float">
        <description>Distance to third beacon</description>
      </field>
      <field name="D3" units="m" type="float">
        <description>Distance to fourth beacon</description>
      </field>
      <field name="PosX" units="m" type="float">
        <description>Calculated beacon position, x-axis</description>
      </field>
      <field name="PosY" units="m" type="float">
        <description>Calculated beacon position, y-axis</description>
      </field>
      <field name="PosZ" units="m" type="float">
        <description>Calculated beacon position, z-axis</description>
      </field>
    </fields>
  </logformat>
  <logformat name="CAFD">
    <description>CANFD Frame</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Bus" units="instance" type="uint8_t">
        <description>bus number</description>
      </field>
      <field name="Id" units="" type="uint32_t">
        <description>frame identifier</description>
      </field>
      <field name="DLC" units="" type="uint8_t">
        <description>data length code</description>
      </field>
      <field name="D0" units="" type="uint64_t">
        <description>data 0</description>
      </field>
      <field name="D1" units="" type="uint64_t">
        <description>data 1</description>
      </field>
      <field name="D2" units="" type="uint64_t">
        <description>data 2</description>
      </field>
      <field name="D3" units="" type="uint64_t">
        <description>data 3</description>
      </field>
      <field name="D4" units="" type="uint64_t">
        <description>data 4</description>
      </field>
      <field name="D5" units="" type="uint64_t">
        <description>data 5</description>
      </field>
      <field name="D6" units="" type="uint64_t">
        <description>data 6</description>
      </field>
      <field name="D7" units="" type="uint64_t">
        <description>data 7</description>
      </field>
    </fields>
  </logformat>
  <logformat name="CAM">
    <description>Camera shutter information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>Instance number</description>
      </field>
      <field name="Img" units="" type="uint16_t">
        <description>Image number</description>
      </field>
      <field name="GPSTime" units="" type="uint32_t">
        <description>milliseconds since start of GPS week</description>
      </field>
      <field name="GPSWeek" units="" type="uint16_t">
        <description>weeks since 5 Jan 1980</description>
      </field>
      <field name="Lat" units="deglatitude" type="int32_t latitude/longitude">
        <description>current latitude</description>
      </field>
      <field name="Lng" units="deglongitude" type="int32_t latitude/longitude">
        <description>current longitude</description>
      </field>
      <field name="Alt" units="m" type="int32_t * 100">
        <description>current altitude</description>
      </field>
      <field name="RelAlt" units="m" type="int32_t * 100">
        <description>current altitude relative to home</description>
      </field>
      <field name="GPSAlt" units="m" type="int32_t * 100">
        <description>altitude as reported by GPS</description>
      </field>
      <field name="R" units="deg" type="float">
        <description>current vehicle roll</description>
      </field>
      <field name="P" units="deg" type="float">
        <description>current vehicle pitch</description>
      </field>
      <field name="Y" units="deg" type="float">
        <description>current vehicle yaw</description>
      </field>
    </fields>
  </logformat>
  <logformat name="CAND">
    <description>Info from GetNodeInfo request</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Driver" units="" type="uint8_t">
        <description>Driver index</description>
      </field>
      <field name="NodeId" units="instance" type="uint8_t">
        <description>Node ID</description>
      </field>
      <field name="UID1" units="" type="uint64_t">
        <description>Hardware ID, part 1</description>
      </field>
      <field name="UID2" units="" type="uint64_t">
        <description>Hardware ID, part 2</description>
      </field>
      <field name="Name" units="" type="char[64]">
        <description>Name string</description>
      </field>
      <field name="Major" units="" type="uint8_t">
        <description>major revision id</description>
      </field>
      <field name="Minor" units="" type="uint8_t">
        <description>minor revision id</description>
      </field>
      <field name="Version" units="" type="uint32_t">
        <description>AP_Periph git hash</description>
      </field>
    </fields>
  </logformat>
  <logformat name="CANF">
    <description>CAN Frame</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Bus" units="instance" type="uint8_t">
        <description>bus number</description>
      </field>
      <field name="Id" units="" type="uint32_t">
        <description>frame identifier</description>
      </field>
      <field name="DLC" units="" type="uint8_t">
        <description>data length code</description>
      </field>
      <field name="B0" units="" type="uint8_t">
        <description>byte 0</description>
      </field>
      <field name="B1" units="" type="uint8_t">
        <description>byte 1</description>
      </field>
      <field name="B2" units="" type="uint8_t">
        <description>byte 2</description>
      </field>
      <field name="B3" units="" type="uint8_t">
        <description>byte 3</description>
      </field>
      <field name="B4" units="" type="uint8_t">
        <description>byte 4</description>
      </field>
      <field name="B5" units="" type="uint8_t">
        <description>byte 5</description>
      </field>
      <field name="B6" units="" type="uint8_t">
        <description>byte 6</description>
      </field>
      <field name="B7" units="" type="uint8_t">
        <description>byte 7</description>
      </field>
    </fields>
  </logformat>
  <logformat name="CANH">
    <description>DroneCAN heartbeat status</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Driver" units="" type="uint8_t">
        <description>Driver index</description>
      </field>
      <field name="NodeId" units="instance" type="uint8_t">
        <description>Node ID</description>
      </field>
      <field name="UpTime" units="s" type="uint32_t">
        <description>Time since node startup</description>
      </field>
      <field name="Health" units="" type="uint8_t">
        <description>0:Ok, 1:Warning, 2:Error, 3:Critical</description>
      </field>
      <field name="Mode" units="" type="uint8_t">
        <description>0:Operational, 1:Initialization, 2:Maintenance, 3:Software update, 7:Offline</description>
      </field>
      <field name="SubMode" units="" type="uint8_t">
        <description>Expected to be 0</description>
      </field>
      <field name="VendorCode" units="" type="uint16_t">
        <description>vendor specific code. In AP_Periph this is available memory in bytes.</description>
      </field>
    </fields>
  </logformat>
  <logformat name="CANS">
    <description>CAN Bus Statistics</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>driver index</description>
      </field>
      <field name="T" units="" type="uint32_t">
        <description>transmit success count</description>
      </field>
      <field name="Trq" units="" type="uint32_t">
        <description>transmit request count</description>
      </field>
      <field name="Trej" units="" type="uint32_t">
        <description>transmit reject count</description>
      </field>
      <field name="Tov" units="" type="uint32_t">
        <description>transmit overflow count</description>
      </field>
      <field name="Tto" units="" type="uint32_t">
        <description>transmit timeout count</description>
      </field>
      <field name="Tab" units="" type="uint32_t">
        <description>transmit abort count</description>
      </field>
      <field name="R" units="" type="uint32_t">
        <description>receive count</description>
      </field>
      <field name="Rov" units="" type="uint32_t">
        <description>receive overflow count</description>
      </field>
      <field name="Rer" units="" type="uint32_t">
        <description>receive error count</description>
      </field>
      <field name="Bo" units="" type="uint32_t">
        <description>bus offset error count</description>
      </field>
      <field name="Etx" units="" type="uint32_t">
        <description>ESC successful send count</description>
      </field>
      <field name="Stx" units="" type="uint32_t">
        <description>Servo successful send count</description>
      </field>
      <field name="Ftx" units="" type="uint32_t">
        <description>ESC/Servo failed-to-send count</description>
      </field>
    </fields>
  </logformat>
  <logformat name="CC">
    <description>Custom Controller data</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Type" units="" type="uint8_t">
        <description>controller type</description>
        <enum name="AC_CustomControl::CustomControlType">
          <element name="CONT_NONE">
            <value>0</value>
          </element>
          <element name="CONT_EMPTY">
            <value>1</value>
          </element>
          <element name="CONT_PID">
            <value>2</value>
          </element>
        </enum>
      </field>
      <field name="Act" units="" type="uint8_t">
        <description>true if controller is active</description>
      </field>
    </fields>
  </logformat>
  <logformat name="CMD">
    <description>Uploaded mission command information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="CTot" units="" type="uint16_t">
        <description>Total number of mission commands</description>
      </field>
      <field name="CNum" units="" type="uint16_t">
        <description>This command's offset in mission</description>
      </field>
      <field name="CId" units="" type="uint16_t">
        <description>Command type</description>
      </field>
      <field name="Prm1" units="" type="float">
        <description>Parameter 1</description>
      </field>
      <field name="Prm2" units="" type="float">
        <description>Parameter 2</description>
      </field>
      <field name="Prm3" units="" type="float">
        <description>Parameter 3</description>
      </field>
      <field name="Prm4" units="" type="float">
        <description>Parameter 4</description>
      </field>
      <field name="Lat" units="deglatitude" type="int32_t latitude/longitude">
        <description>Command latitude</description>
      </field>
      <field name="Lng" units="deglongitude" type="int32_t latitude/longitude">
        <description>Command longitude</description>
      </field>
      <field name="Alt" units="m" type="float">
        <description>Command altitude</description>
      </field>
      <field name="Frame" units="" type="uint8_t">
        <description>Frame used for position</description>
      </field>
    </fields>
  </logformat>
  <logformat name="CP">
    <description>Custom Controller data</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Type" units="" type="uint8_t">
        <description>controller type</description>
        <enum name="AP_CustomControl::CustomControlType">
          <element name="NONE">
            <value>0</value>
          </element>
          <element name="EMPTY">
            <value>1</value>
          </element>
          <element name="PID">
            <value>2</value>
          </element>
        </enum>
      </field>
      <field name="Act" units="" type="uint8_t">
        <description>true if the controller is switched on by the pilot</description>
      </field>
      <field name="Run" units="" type="uint8_t">
        <description>true if the controller is actually running. Act can be true while Run is false, for example during an RC failsafe or in a flight mode the backend refuses to run in.</description>
      </field>
    </fields>
  </logformat>
  <logformat name="CSCU">
    <description>Generic DroneCAN circuit status</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>driver index</description>
      </field>
      <field name="Id" units="" type="uint16_t">
        <description>circuit id</description>
      </field>
      <field name="V" units="V" type="float">
        <description>Voltage</description>
      </field>
      <field name="A" units="A" type="float">
        <description>Current</description>
      </field>
      <field name="Err" units="" type="uint8_t">
        <description>error flags</description>
      </field>
    </fields>
  </logformat>
  <logformat name="CSRV">
    <description>Servo feedback data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Id" units="instance" type="uint8_t">
        <description>Servo number this data relates to</description>
      </field>
      <field name="Pos" units="deg" type="float">
        <description>Current servo position</description>
      </field>
      <field name="Force" units="N.m" type="float">
        <description>Force being applied</description>
      </field>
      <field name="Speed" units="deg/s" type="float">
        <description>Current servo movement speed</description>
      </field>
      <field name="Pow" units="%" type="uint8_t">
        <description>Amount of rated power being applied</description>
      </field>
      <field name="PosCmd" units="deg" type="float">
        <description>commanded servo position</description>
      </field>
      <field name="V" units="V" type="float">
        <description>Voltage</description>
      </field>
      <field name="A" units="A" type="float">
        <description>Current</description>
      </field>
      <field name="MotT" units="degC" type="float">
        <description>motor temperature</description>
      </field>
      <field name="PCBT" units="degC" type="float">
        <description>PCB temperature</description>
      </field>
      <field name="Err" units="" type="uint8_t">
        <description>error flags</description>
      </field>
    </fields>
  </logformat>
  <logformat name="CTUN">
    <description>Control Tuning information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="ThI" units="" type="float">
        <description>throttle input</description>
      </field>
      <field name="ABst" units="" type="float">
        <description>angle boost</description>
      </field>
      <field name="ThO" units="" type="float">
        <description>throttle output</description>
      </field>
      <field name="ThH" units="" type="float">
        <description>calculated hover throttle</description>
      </field>
      <field name="DAlt" units="m" type="float">
        <description>desired altitude</description>
      </field>
      <field name="Alt" units="m" type="float">
        <description>achieved altitude</description>
      </field>
      <field name="BAlt" units="m" type="float">
        <description>barometric altitude</description>
      </field>
      <field name="DSAlt" units="m" type="float">
        <description>desired rangefinder altitude</description>
      </field>
      <field name="SAlt" units="m" type="float">
        <description>achieved rangefinder altitude</description>
      </field>
      <field name="TAlt" units="m" type="float">
        <description>terrain altitude</description>
      </field>
      <field name="DCRt" units="m/s" type="float">
        <description>desired climb rate</description>
      </field>
      <field name="CRt" units="m/s" type="float">
        <description>climb rate</description>
      </field>
    </fields>
  </logformat>
  <logformat name="D16">
    <description>Generic 16-bit-signed-integer storage</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Id" units="" type="uint8_t">
        <description>Data type identifier</description>
      </field>
      <field name="Value" units="" type="int16_t">
        <description>Value</description>
      </field>
    </fields>
  </logformat>
  <logformat name="D32">
    <description>Generic 32-bit-signed-integer storage</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Id" units="" type="uint8_t">
        <description>Data type identifier</description>
      </field>
      <field name="Value" units="" type="int32_t">
        <description>Value</description>
      </field>
    </fields>
  </logformat>
  <logformat name="DCM">
    <description>DCM Estimator Data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Roll" units="deg" type="float">
        <description>estimated roll</description>
      </field>
      <field name="Pitch" units="deg" type="float">
        <description>estimated pitch</description>
      </field>
      <field name="Yaw" units="deg" type="float">
        <description>estimated yaw</description>
      </field>
      <field name="ErrRP" units="deg" type="float">
        <description>lowest estimated gyro drift error</description>
      </field>
      <field name="ErrYaw" units="degheading" type="float">
        <description>difference between measured yaw and DCM yaw estimate</description>
      </field>
      <field name="VWN" units="m/s" type="float">
        <description>wind velocity, to-the-North component</description>
      </field>
      <field name="VWE" units="m/s" type="float">
        <description>wind velocity, to-the-East component</description>
      </field>
      <field name="VWD" units="m/s" type="float">
        <description>wind velocity, Up-to-Down component</description>
      </field>
      <field name="SAs" units="m/s" type="float">
        <description>synthetic (equivalent) airspeed</description>
      </field>
    </fields>
  </logformat>
  <logformat name="DFLT">
    <description>Generic float storage</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Id" units="" type="uint8_t">
        <description>Data type identifier</description>
      </field>
      <field name="Value" units="" type="float">
        <description>Value</description>
      </field>
    </fields>
  </logformat>
  <logformat name="DMS">
    <description>DataFlash-Over-MAVLink statistics</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="N" units="" type="uint32_t">
        <description>Current block number</description>
      </field>
      <field name="Dp" units="" type="uint32_t">
        <description>Number of times we rejected a write to the backend</description>
      </field>
      <field name="RT" units="" type="uint32_t">
        <description>Number of blocks sent from the retry queue</description>
      </field>
      <field name="RS" units="" type="uint32_t">
        <description>Number of resends of unacknowledged data made</description>
      </field>
      <field name="Fa" units="" type="uint8_t">
        <description>Average number of blocks on the free list</description>
      </field>
      <field name="Fmn" units="" type="uint8_t">
        <description>Minimum number of blocks on the free list</description>
      </field>
      <field name="Fmx" units="" type="uint8_t">
        <description>Maximum number of blocks on the free list</description>
      </field>
      <field name="Pa" units="" type="uint8_t">
        <description>Average number of blocks on the pending list</description>
      </field>
      <field name="Pmn" units="" type="uint8_t">
        <description>Minimum number of blocks on the pending list</description>
      </field>
      <field name="Pmx" units="" type="uint8_t">
        <description>Maximum number of blocks on the pending list</description>
      </field>
      <field name="Sa" units="" type="uint8_t">
        <description>Average number of blocks on the sent list</description>
      </field>
      <field name="Smn" units="" type="uint8_t">
        <description>Minimum number of blocks on the sent list</description>
      </field>
      <field name="Smx" units="" type="uint8_t">
        <description>Maximum number of blocks on the sent list</description>
      </field>
    </fields>
  </logformat>
  <logformat name="DSF">
    <description>Onboard logging statistics</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Dp" units="" type="uint32_t">
        <description>Number of times we rejected a write to the backend</description>
      </field>
      <field name="Blk" units="" type="uint16_t">
        <description>Current block number</description>
      </field>
      <field name="Bytes" units="B" type="uint32_t">
        <description>Current write offset</description>
      </field>
      <field name="FMn" units="" type="uint32_t">
        <description>Minimum free space in write buffer in last time period</description>
      </field>
      <field name="FMx" units="" type="uint32_t">
        <description>Maximum free space in write buffer in last time period</description>
      </field>
      <field name="FAv" units="" type="uint32_t">
        <description>Average free space in write buffer in last time period</description>
      </field>
    </fields>
  </logformat>
  <logformat name="DSTL">
    <description>Deepstall Landing data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Stg" units="" type="uint8_t">
        <description>Deepstall landing stage</description>
      </field>
      <field name="THdg" units="degheading" type="float">
        <description>Target heading</description>
      </field>
      <field name="Lat" units="deglatitude" type="int32_t latitude/longitude">
        <description>Landing point latitude</description>
      </field>
      <field name="Lng" units="deglongitude" type="int32_t latitude/longitude">
        <description>Landing point longitude</description>
      </field>
      <field name="Alt" units="m" type="int32_t * 100">
        <description>Landing point altitude</description>
      </field>
      <field name="XT" units="" type="int16_t * 100">
        <description>Crosstrack error</description>
      </field>
      <field name="Travel" units="" type="int16_t * 100">
        <description>Expected travel distance vehicle will travel from this point</description>
      </field>
      <field name="L1I" units="" type="float">
        <description>L1 controller crosstrack integrator value</description>
      </field>
      <field name="Loiter" units="" type="int32_t * 100">
        <description>wind estimate loiter angle flown</description>
      </field>
      <field name="Des" units="" type="float">
        <description>Deepstall steering PID desired value</description>
      </field>
      <field name="P" units="" type="float">
        <description>Deepstall steering PID Proportional response component</description>
      </field>
      <field name="I" units="" type="float">
        <description>Deepstall steering PID Integral response component</description>
      </field>
      <field name="D" units="" type="float">
        <description>Deepstall steering PID Derivative response component</description>
      </field>
    </fields>
  </logformat>
  <logformat name="DU16">
    <description>Generic 16-bit-unsigned-integer storage</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Id" units="" type="uint8_t">
        <description>Data type identifier</description>
      </field>
      <field name="Value" units="" type="uint16_t">
        <description>Value</description>
      </field>
    </fields>
  </logformat>
  <logformat name="DU32">
    <description>Generic 32-bit-unsigned-integer storage</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Id" units="" type="uint8_t">
        <description>Data type identifier</description>
      </field>
      <field name="Value" units="" type="uint32_t">
        <description>Value</description>
      </field>
    </fields>
  </logformat>
  <logformat name="EAHR">
    <description>External AHRS data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Roll" units="deg" type="float">
        <description>euler roll</description>
      </field>
      <field name="Pitch" units="deg" type="float">
        <description>euler pitch</description>
      </field>
      <field name="Yaw" units="deg" type="float">
        <description>euler yaw</description>
      </field>
      <field name="VN" units="m/s" type="float">
        <description>velocity north</description>
      </field>
      <field name="VE" units="m/s" type="float">
        <description>velocity east</description>
      </field>
      <field name="VD" units="m/s" type="float">
        <description>velocity down</description>
      </field>
      <field name="Lat" units="deglatitude" type="int32_t latitude/longitude">
        <description>latitude</description>
      </field>
      <field name="Lon" units="deglongitude" type="int32_t latitude/longitude">
        <description>longitude</description>
      </field>
      <field name="Alt" units="m" type="float">
        <description>altitude AMSL</description>
      </field>
      <field name="Flg" units="" type="uint32_t">
        <description>nav status flags</description>
      </field>
    </fields>
  </logformat>
  <logformat name="EAHV">
    <description>External AHRS variances</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Vel" units="" type="float">
        <description>velocity variance</description>
      </field>
      <field name="Pos" units="" type="float">
        <description>position variance</description>
      </field>
      <field name="Hgt" units="" type="float">
        <description>height variance</description>
      </field>
      <field name="MagX" units="" type="float">
        <description>magnetic variance, X</description>
      </field>
      <field name="MagY" units="" type="float">
        <description>magnetic variance, Y</description>
      </field>
      <field name="MagZ" units="" type="float">
        <description>magnetic variance, Z</description>
      </field>
      <field name="TAS" units="" type="float">
        <description>true airspeed variance</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ECYL">
    <description>EFI per-cylinder information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Inst" units="instance" type="uint8_t">
        <description>Cylinder this data belongs to</description>
      </field>
      <field name="IgnT" units="deg" type="float">
        <description>Ignition timing</description>
      </field>
      <field name="InjT" units="ms" type="float">
        <description>Injection time</description>
      </field>
      <field name="CHT" units="degC" type="float">
        <description>Cylinder head temperature</description>
      </field>
      <field name="EGT" units="degC" type="float">
        <description>Exhaust gas temperature</description>
      </field>
      <field name="Lambda" units="" type="float">
        <description>Estimated lambda coefficient (dimensionless ratio)</description>
      </field>
      <field name="CHT2" units="degC" type="float">
        <description>Cylinder2 head temperature</description>
      </field>
      <field name="EGT2" units="degC" type="float">
        <description>Cylinder2 Exhaust gas temperature</description>
      </field>
      <field name="IDX" units="" type="float">
        <description>Index of the publishing ECU</description>
      </field>
    </fields>
  </logformat>
  <logformat name="EDT2">
    <description>Status received from ESCs via Extended DShot telemetry v2</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>microseconds since system startup</description>
      </field>
      <field name="Instance" units="instance" type="uint8_t">
        <description>ESC instance number</description>
      </field>
      <field name="Stress" units="" type="uint8_t">
        <description>current stress level (commutation effort), scaled to [0..255]</description>
      </field>
      <field name="MaxStress" units="" type="uint8_t">
        <description>maximum stress level (commutation effort) since arming, scaled to [0..15]</description>
      </field>
      <field name="Status" units="" type="uint8_t">
        <description>status bits</description>
        <bitmask name="log_Edt2_Status">
          <bit name="HAS_STRESS_DATA">
            <value>1</value>
            <description>true if the message contains up-to-date stress data</description>
          </bit>
          <bit name="HAS_STATUS_DATA">
            <value>2</value>
            <description>true if the message contains up-to-date status data</description>
          </bit>
          <bit name="ALERT_BIT">
            <value>4</value>
            <description>true if the last status had the "alert" bit (e.g. demag)</description>
          </bit>
          <bit name="WARNING_BIT">
            <value>8</value>
            <description>true if the last status had the "warning" bit (e.g. desync)</description>
          </bit>
          <bit name="ERROR_BIT">
            <value>16</value>
            <description>true if the last status had the "error" bit (e.g. stall)</description>
          </bit>
        </bitmask>
      </field>
    </fields>
  </logformat>
  <logformat name="EFI">
    <description>Electronic Fuel Injection system data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="LP" units="%" type="uint8_t">
        <description>Reported engine load</description>
      </field>
      <field name="Rpm" units="rpm" type="uint32_t">
        <description>Reported engine RPM</description>
      </field>
      <field name="SDT" units="ms" type="float">
        <description>Spark Dwell Time</description>
      </field>
      <field name="ATM" units="Pa" type="float">
        <description>Atmospheric pressure</description>
      </field>
      <field name="IMP" units="Pa" type="float">
        <description>Intake manifold pressure</description>
      </field>
      <field name="IMT" units="degC" type="float">
        <description>Intake manifold temperature</description>
      </field>
      <field name="ECT" units="degC" type="float">
        <description>Engine Coolant Temperature</description>
      </field>
      <field name="OilP" units="Pa" type="float">
        <description>Oil Pressure</description>
      </field>
      <field name="OilT" units="degC" type="float">
        <description>Oil temperature</description>
      </field>
      <field name="FP" units="Pa" type="float">
        <description>Fuel Pressure</description>
      </field>
      <field name="FCR" units="" type="float">
        <description>Fuel Consumption Rate</description>
      </field>
      <field name="CFV" units="" type="float">
        <description>Consumed fuel volume</description>
      </field>
      <field name="TPS" units="%" type="uint8_t">
        <description>Throttle Position</description>
      </field>
      <field name="IDX" units="" type="uint8_t">
        <description>Index of the publishing ECU</description>
      </field>
    </fields>
  </logformat>
  <logformat name="EFI2">
    <description>Electronic Fuel Injection system data - redux</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Healthy" units="" type="uint8_t">
        <description>True if EFI is healthy</description>
      </field>
      <field name="ES" units="" type="uint8_t">
        <description>Engine state</description>
      </field>
      <field name="GE" units="" type="uint8_t">
        <description>General error</description>
      </field>
      <field name="CSE" units="" type="uint8_t">
        <description>Crankshaft sensor status</description>
      </field>
      <field name="TS" units="" type="uint8_t">
        <description>Temperature status</description>
      </field>
      <field name="FPS" units="" type="uint8_t">
        <description>Fuel pressure status</description>
      </field>
      <field name="OPS" units="" type="uint8_t">
        <description>Oil pressure status</description>
      </field>
      <field name="DS" units="" type="uint8_t">
        <description>Detonation status</description>
      </field>
      <field name="MS" units="" type="uint8_t">
        <description>Misfire status</description>
      </field>
      <field name="DebS" units="" type="uint8_t">
        <description>Debris status</description>
      </field>
      <field name="SPU" units="" type="uint8_t">
        <description>Spark plug usage</description>
      </field>
      <field name="IDX" units="" type="uint8_t">
        <description>Index of the publishing ECU</description>
      </field>
    </fields>
  </logformat>
  <logformat name="EFIS">
    <description>Electronic Fuel Injection data - Hirth specific Status information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="EET" units="" type="uint16_t">
        <description>Error Excess Temperature Bitfield</description>
        <bitmask name="AP_EFI_Serial_Hirth:::Error_Excess_Temp_Bitfield">
          <bit name="CHT_1_LOW">
            <value>1</value>
            <description>true if CHT1 is too low</description>
          </bit>
          <bit name="CHT_1_HIGH">
            <value>2</value>
            <description>true if CHT1 is too high</description>
          </bit>
          <bit name="CHT_1_ENRC_ACTIVE">
            <value>4</value>
            <description>true if CHT1 Enrichment is active</description>
          </bit>
          <bit name="CHT_2_LOW">
            <value>8</value>
            <description>true if CHT2 is too low</description>
          </bit>
          <bit name="CHT_2_HIGH">
            <value>16</value>
            <description>true if CHT2 is too high</description>
          </bit>
          <bit name="CHT_2_ENRC_ACTIVE">
            <value>32</value>
            <description>true if CHT2 Enrichment is active</description>
          </bit>
          <bit name="EGT_1_LOW">
            <value>64</value>
            <description>true if EGT1 is too low</description>
          </bit>
          <bit name="EGT_1_HIGH">
            <value>128</value>
            <description>true if EGT1 is too high</description>
          </bit>
          <bit name="EGT_1_ENRC_ACTIVE">
            <value>256</value>
            <description>true if EGT1 Enrichment is active</description>
          </bit>
          <bit name="EGT_2_LOW">
            <value>512</value>
            <description>true if EGT2 is too low</description>
          </bit>
          <bit name="EGT_2_HIGH">
            <value>1024</value>
            <description>true if EGT2 is too high</description>
          </bit>
          <bit name="EGT_2_ENRC_ACTIVE">
            <value>2048</value>
            <description>true if EGT2 Enrichment is active</description>
          </bit>
        </bitmask>
      </field>
      <field name="FLAG" units="" type="uint8_t">
        <description>Sensor Status Bitfield</description>
        <bitmask name="AP_EFI_Serial_Hirth:::Sensor_Status_Bitfield">
          <bit name="ENGINE_TEMP_SENSOR_OK">
            <value>2</value>
            <description>true if engine temperature sensor is OK</description>
          </bit>
          <bit name="AIR_TEMP_SENSOR_OK">
            <value>4</value>
            <description>true if air temperature sensor is OK</description>
          </bit>
          <bit name="AIR_PRESSURE_SENSOR_OK">
            <value>8</value>
            <description>true if intake air pressure sensor is OK</description>
          </bit>
          <bit name="THROTTLE_SENSOR_OK">
            <value>16</value>
            <description>true if throttle sensor is OK</description>
          </bit>
        </bitmask>
      </field>
      <field name="CRF" units="" type="uint32_t">
        <description>CRC failure count</description>
      </field>
      <field name="AKF" units="" type="uint32_t">
        <description>ACK failure count</description>
      </field>
      <field name="Up" units="" type="uint32_t">
        <description>Uptime between 2 messages</description>
      </field>
      <field name="ThO" units="" type="float">
        <description>Throttle output as received by the engine</description>
      </field>
      <field name="ThM" units="" type="uint16_t">
        <description>Modified throttle_to_hirth output sent to the engine</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ERR">
    <description>Specifically coded error messages</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Subsys" units="" type="uint8_t">
        <description>Subsystem in which the error occurred</description>
        <enum name="LogErrorSubsystem">
          <element name="MAIN">
            <value>1</value>
          </element>
          <element name="RADIO">
            <value>2</value>
          </element>
          <element name="COMPASS">
            <value>3</value>
          </element>
          <element name="OPTFLOW">
            <value>4</value>
            <description>not used</description>
          </element>
          <element name="FAILSAFE_RADIO">
            <value>5</value>
          </element>
          <element name="FAILSAFE_BATT">
            <value>6</value>
          </element>
          <element name="FAILSAFE_GPS">
            <value>7</value>
            <description>not used</description>
          </element>
          <element name="FAILSAFE_GCS">
            <value>8</value>
          </element>
          <element name="FAILSAFE_FENCE">
            <value>9</value>
          </element>
          <element name="FLIGHT_MODE">
            <value>10</value>
          </element>
          <element name="GPS">
            <value>11</value>
          </element>
          <element name="CRASH_CHECK">
            <value>12</value>
          </element>
          <element name="FLIP">
            <value>13</value>
          </element>
          <element name="AUTOTUNE">
            <value>14</value>
            <description>not used</description>
          </element>
          <element name="PARACHUTES">
            <value>15</value>
          </element>
          <element name="EKFCHECK">
            <value>16</value>
          </element>
          <element name="FAILSAFE_EKFINAV">
            <value>17</value>
          </element>
          <element name="BARO">
            <value>18</value>
          </element>
          <element name="CPU">
            <value>19</value>
          </element>
          <element name="FAILSAFE_ADSB">
            <value>20</value>
          </element>
          <element name="TERRAIN">
            <value>21</value>
          </element>
          <element name="NAVIGATION">
            <value>22</value>
          </element>
          <element name="FAILSAFE_TERRAIN">
            <value>23</value>
          </element>
          <element name="EKF_PRIMARY">
            <value>24</value>
          </element>
          <element name="THRUST_LOSS_CHECK">
            <value>25</value>
          </element>
          <element name="FAILSAFE_SENSORS">
            <value>26</value>
          </element>
          <element name="FAILSAFE_LEAK">
            <value>27</value>
          </element>
          <element name="PILOT_INPUT">
            <value>28</value>
          </element>
          <element name="FAILSAFE_VIBE">
            <value>29</value>
          </element>
          <element name="INTERNAL_ERROR">
            <value>30</value>
          </element>
          <element name="FAILSAFE_DEADRECKON">
            <value>31</value>
          </element>
        </enum>
      </field>
      <field name="ECode" units="" type="uint8_t">
        <description>Subsystem-specific error code</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ESC">
    <description>Feedback received from ESCs</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>microseconds since system startup</description>
      </field>
      <field name="Instance" units="instance" type="uint8_t">
        <description>ESC instance number</description>
      </field>
      <field name="RPM" units="rpm" type="float">
        <description>reported motor rotation rate</description>
      </field>
      <field name="RawRPM" units="rpm" type="float">
        <description>reported motor rotation rate without slew adjustment</description>
      </field>
      <field name="Volt" units="V" type="float">
        <description>Perceived input voltage for the ESC</description>
      </field>
      <field name="Curr" units="A" type="float">
        <description>Perceived current through the ESC</description>
      </field>
      <field name="Temp" units="degC" type="int16_t * 100">
        <description>ESC temperature in centi-degrees C</description>
      </field>
      <field name="CTot" units="mAh" type="float">
        <description>current consumed total mAh</description>
      </field>
      <field name="MotTemp" units="degC" type="int16_t * 100">
        <description>measured motor temperature in centi-degrees C</description>
      </field>
      <field name="Err" units="%" type="float">
        <description>error rate</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ESCX">
    <description>ESC extended telemetry data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Instance" units="instance" type="uint8_t">
        <description>starts from 0</description>
      </field>
      <field name="inpct" units="%" type="uint8_t">
        <description>input duty cycle in percent</description>
      </field>
      <field name="outpct" units="%" type="uint8_t">
        <description>output duty cycle in percent</description>
      </field>
      <field name="flags" units="" type="uint32_t">
        <description>manufacturer-specific status flags</description>
      </field>
      <field name="Pwr" units="%" type="uint8_t">
        <description>Power percentage</description>
      </field>
    </fields>
  </logformat>
  <logformat name="EV">
    <description>Specifically coded event messages</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Id" units="" type="uint8_t">
        <description>Event identifier</description>
        <enum name="LogEvent">
          <element name="ARMED">
            <value>10</value>
          </element>
          <element name="DISARMED">
            <value>11</value>
          </element>
          <element name="AUTO_ARMED">
            <value>15</value>
          </element>
          <element name="LAND_COMPLETE_MAYBE">
            <value>17</value>
          </element>
          <element name="LAND_COMPLETE">
            <value>18</value>
          </element>
          <element name="LOST_GPS">
            <value>19</value>
          </element>
          <element name="FLIP_START">
            <value>21</value>
          </element>
          <element name="FLIP_END">
            <value>22</value>
          </element>
          <element name="SET_HOME">
            <value>25</value>
          </element>
          <element name="SET_SIMPLE_ON">
            <value>26</value>
          </element>
          <element name="SET_SIMPLE_OFF">
            <value>27</value>
          </element>
          <element name="NOT_LANDED">
            <value>28</value>
          </element>
          <element name="SET_SUPERSIMPLE_ON">
            <value>29</value>
          </element>
          <element name="AUTOTUNE_INITIALISED">
            <value>30</value>
          </element>
          <element name="AUTOTUNE_OFF">
            <value>31</value>
          </element>
          <element name="AUTOTUNE_RESTART">
            <value>32</value>
          </element>
          <element name="AUTOTUNE_SUCCESS">
            <value>33</value>
          </element>
          <element name="AUTOTUNE_FAILED">
            <value>34</value>
          </element>
          <element name="AUTOTUNE_REACHED_LIMIT">
            <value>35</value>
          </element>
          <element name="AUTOTUNE_PILOT_TESTING">
            <value>36</value>
          </element>
          <element name="AUTOTUNE_SAVEDGAINS">
            <value>37</value>
          </element>
          <element name="SAVE_TRIM">
            <value>38</value>
          </element>
          <element name="SAVEWP_ADD_WP">
            <value>39</value>
          </element>
          <element name="FENCE_ENABLE">
            <value>41</value>
          </element>
          <element name="FENCE_DISABLE">
            <value>42</value>
          </element>
          <element name="ACRO_TRAINER_OFF">
            <value>43</value>
          </element>
          <element name="ACRO_TRAINER_LEVELING">
            <value>44</value>
          </element>
          <element name="ACRO_TRAINER_LIMITED">
            <value>45</value>
          </element>
          <element name="GRIPPER_GRAB">
            <value>46</value>
          </element>
          <element name="GRIPPER_RELEASE">
            <value>47</value>
          </element>
          <element name="PARACHUTE_DISABLED">
            <value>49</value>
          </element>
          <element name="PARACHUTE_ENABLED">
            <value>50</value>
          </element>
          <element name="PARACHUTE_RELEASED">
            <value>51</value>
          </element>
          <element name="LANDING_GEAR_DEPLOYED">
            <value>52</value>
          </element>
          <element name="LANDING_GEAR_RETRACTED">
            <value>53</value>
          </element>
          <element name="MOTORS_EMERGENCY_STOPPED">
            <value>54</value>
          </element>
          <element name="MOTORS_EMERGENCY_STOP_CLEARED">
            <value>55</value>
          </element>
          <element name="MOTORS_INTERLOCK_DISABLED">
            <value>56</value>
          </element>
          <element name="MOTORS_INTERLOCK_ENABLED">
            <value>57</value>
          </element>
          <element name="ROTOR_RUNUP_COMPLETE">
            <value>58</value>
            <description>Heli only</description>
          </element>
          <element name="ROTOR_SPEED_BELOW_CRITICAL">
            <value>59</value>
            <description>Heli only</description>
          </element>
          <element name="EKF_ALT_RESET">
            <value>60</value>
          </element>
          <element name="LAND_CANCELLED_BY_PILOT">
            <value>61</value>
          </element>
          <element name="EKF_YAW_RESET">
            <value>62</value>
          </element>
          <element name="AVOIDANCE_ADSB_ENABLE">
            <value>63</value>
          </element>
          <element name="AVOIDANCE_ADSB_DISABLE">
            <value>64</value>
          </element>
          <element name="AVOIDANCE_PROXIMITY_ENABLE">
            <value>65</value>
          </element>
          <element name="AVOIDANCE_PROXIMITY_DISABLE">
            <value>66</value>
          </element>
          <element name="GPS_PRIMARY_CHANGED">
            <value>67</value>
          </element>
          <element name="ZIGZAG_STORE_A">
            <value>71</value>
          </element>
          <element name="ZIGZAG_STORE_B">
            <value>72</value>
          </element>
          <element name="LAND_REPO_ACTIVE">
            <value>73</value>
          </element>
          <element name="STANDBY_ENABLE">
            <value>74</value>
          </element>
          <element name="STANDBY_DISABLE">
            <value>75</value>
          </element>
          <element name="FENCE_ALT_MAX_ENABLE">
            <value>76</value>
          </element>
          <element name="FENCE_ALT_MAX_DISABLE">
            <value>77</value>
          </element>
          <element name="FENCE_CIRCLE_ENABLE">
            <value>78</value>
          </element>
          <element name="FENCE_CIRCLE_DISABLE">
            <value>79</value>
          </element>
          <element name="FENCE_ALT_MIN_ENABLE">
            <value>80</value>
          </element>
          <element name="FENCE_ALT_MIN_DISABLE">
            <value>81</value>
          </element>
          <element name="FENCE_POLYGON_ENABLE">
            <value>82</value>
          </element>
          <element name="FENCE_POLYGON_DISABLE">
            <value>83</value>
          </element>
          <element name="EK3_SOURCES_SET_TO_PRIMARY">
            <value>85</value>
          </element>
          <element name="EK3_SOURCES_SET_TO_SECONDARY">
            <value>86</value>
          </element>
          <element name="EK3_SOURCES_SET_TO_TERTIARY">
            <value>87</value>
          </element>
          <element name="AIRSPEED_PRIMARY_CHANGED">
            <value>90</value>
          </element>
          <element name="SURFACED">
            <value>163</value>
          </element>
          <element name="NOT_SURFACED">
            <value>164</value>
          </element>
          <element name="BOTTOMED">
            <value>165</value>
          </element>
          <element name="NOT_BOTTOMED">
            <value>166</value>
          </element>
          <element name="EKF_MAG_OFFSETS_SAVED">
            <value>167</value>
            <description>compass offsets learned by the EKF were saved on disarm</description>
          </element>
        </enum>
      </field>
    </fields>
  </logformat>
  <logformat name="FCN">
    <description>Filter Center Message - per motor</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>microseconds since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>instance</description>
      </field>
      <field name="NF" units="" type="uint16_t">
        <description>total number of active harmonic notches</description>
      </field>
      <field name="CF1" units="Hz" type="float">
        <description>First harmonic centre frequency for motor 1</description>
      </field>
      <field name="CF2" units="Hz" type="float">
        <description>First harmonic centre frequency for motor 2</description>
      </field>
      <field name="CF3" units="Hz" type="float">
        <description>First harmonic centre frequency for motor 3</description>
      </field>
      <field name="CF4" units="Hz" type="float">
        <description>First harmonic centre frequency for motor 4</description>
      </field>
      <field name="CF5" units="Hz" type="float">
        <description>First harmonic centre frequency for motor 5</description>
      </field>
      <field name="CF6" units="Hz" type="float">
        <description>First harmonic centre frequency for motor 6</description>
      </field>
      <field name="HF1" units="Hz" type="float">
        <description>Second harmonic centre frequency for motor 1</description>
      </field>
      <field name="HF2" units="Hz" type="float">
        <description>Second harmonic centre frequency for motor 2</description>
      </field>
      <field name="HF3" units="Hz" type="float">
        <description>Second harmonic centre frequency for motor 3</description>
      </field>
      <field name="HF4" units="Hz" type="float">
        <description>Second harmonic centre frequency for motor 4</description>
      </field>
      <field name="HF5" units="Hz" type="float">
        <description>Second harmonic centre frequency for motor 5</description>
      </field>
      <field name="HF6" units="Hz" type="float">
        <description>Second harmonic centre frequency for motor 6</description>
      </field>
    </fields>
  </logformat>
  <logformat name="FCNS">
    <description>Filter Center Message</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>microseconds since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>instance</description>
      </field>
      <field name="CF" units="Hz" type="float">
        <description>notch centre frequency</description>
      </field>
      <field name="HF" units="Hz" type="float">
        <description>2nd harmonic frequency</description>
      </field>
    </fields>
  </logformat>
  <logformat name="FENC">
    <description>Fence status - development diagnostic message</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="EN" units="" type="uint32_t">
        <description>bitmask of enabled fences</description>
      </field>
      <field name="AE" units="" type="uint32_t">
        <description>bitmask of automatically enabled fences</description>
      </field>
      <field name="CF" units="" type="uint32_t">
        <description>bitmask of configured-in-parameters fences</description>
      </field>
      <field name="EF" units="" type="uint32_t">
        <description>bitmask of enabled fences</description>
      </field>
      <field name="DF" units="" type="uint32_t">
        <description>bitmask of currently disabled fences</description>
      </field>
      <field name="Alt" units="" type="float">
        <description>current vehicle altitude</description>
      </field>
    </fields>
  </logformat>
  <logformat name="FHLD">
    <url>https://ardupilot.org/copter/docs/flowhold-mode.html</url>
    <description>FlowHold mode messages</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="SFx" units="" type="float">
        <description>Filtered flow rate, X-Axis</description>
      </field>
      <field name="SFy" units="" type="float">
        <description>Filtered flow rate, Y-Axis</description>
      </field>
      <field name="Ax" units="" type="float">
        <description>Target lean angle, X-Axis</description>
      </field>
      <field name="Ay" units="" type="float">
        <description>Target lean angle, Y-Axis</description>
      </field>
      <field name="Qual" units="" type="float">
        <description>Flow sensor quality. If this value falls below FHLD_QUAL_MIN parameter, FlowHold will act just like AltHold.</description>
      </field>
      <field name="Ix" units="" type="float">
        <description>Integral part of PI controller, X-Axis</description>
      </field>
      <field name="Iy" units="" type="float">
        <description>Integral part of PI controller, Y-Axis</description>
      </field>
    </fields>
  </logformat>
  <logformat name="FHXY">
    <description>Height estimation using optical flow sensor </description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="DFx" units="" type="float">
        <description>Delta flow rate, X-Axis</description>
      </field>
      <field name="DFy" units="" type="float">
        <description>Delta flow rate, Y-Axis</description>
      </field>
      <field name="DVx" units="" type="float">
        <description>Integrated delta velocity rate, X-Axis</description>
      </field>
      <field name="DVy" units="" type="float">
        <description>Integrated delta velocity rate, Y-Axis</description>
      </field>
      <field name="Hest" units="" type="float">
        <description>Estimated Height</description>
      </field>
      <field name="DH" units="" type="float">
        <description>Delta Height</description>
      </field>
      <field name="Hofs" units="" type="float">
        <description>Height offset</description>
      </field>
      <field name="InsH" units="" type="float">
        <description>Height estimate from inertial navigation library</description>
      </field>
      <field name="LastInsH" units="" type="float">
        <description>Last used INS height in optical flow sensor height estimation calculations </description>
      </field>
      <field name="DTms" units="" type="uint32_t">
        <description>Time between optical flow sensor updates. This should be less than 500ms for performing the height estimation calculations</description>
      </field>
    </fields>
  </logformat>
  <logformat name="FILE">
    <description>File data</description>
    <fields>
      <field name="FileName" units="" type="char[16]">
        <description>File name</description>
      </field>
      <field name="Offset" units="" type="uint32_t">
        <description>Offset into the file of this block</description>
      </field>
      <field name="Length" units="" type="uint8_t">
        <description>Length of this data block</description>
      </field>
      <field name="Data" units="" type="char[64]">
        <description>File data of this block</description>
      </field>
    </fields>
  </logformat>
  <logformat name="FMT">
    <url>https://ardupilot.org/dev/docs/code-overview-adding-a-new-log-message.html</url>
    <description>Message defining the format of messages in this file</description>
    <fields>
      <field name="Type" units="" type="uint8_t">
        <description>unique-to-this-log identifier for message being defined</description>
      </field>
      <field name="Length" units="B" type="uint8_t">
        <description>the number of bytes taken up by this message (including all headers)</description>
      </field>
      <field name="Name" units="" type="char[4]">
        <description>name of the message being defined</description>
      </field>
      <field name="Format" units="" type="char[16]">
        <description>character string defining the C-storage-type of the fields in this message</description>
      </field>
      <field name="Columns" units="" type="char[64]">
        <description>the labels of the message being defined</description>
      </field>
    </fields>
  </logformat>
  <logformat name="FMTU">
    <description>Message defining units and multipliers used for fields of other messages</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="FmtType" units="" type="uint8_t">
        <description>numeric reference to associated FMT message</description>
      </field>
      <field name="UnitIds" units="" type="char[16]">
        <description>each character refers to a UNIT message.  The unit at an offset corresponds to the field at the same offset in FMT.Format</description>
      </field>
      <field name="MultIds" units="" type="char[16]">
        <description>each character refers to a MULT message.  The multiplier at an offset corresponds to the field at the same offset in FMT.Format</description>
      </field>
    </fields>
  </logformat>
  <logformat name="FNCE">
    <description>currently loaded Geo Fence points</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Tot" units="" type="uint8_t">
        <description>total number of stored items</description>
      </field>
      <field name="Seq" units="" type="uint8_t">
        <description>index in current sequence</description>
      </field>
      <field name="Type" units="" type="uint8_t">
        <description>point type</description>
      </field>
      <field name="Lat" units="deglatitude" type="int32_t latitude/longitude">
        <description>point latitude</description>
      </field>
      <field name="Lng" units="deglongitude" type="int32_t latitude/longitude">
        <description>point longitude</description>
      </field>
      <field name="Count" units="" type="uint8_t">
        <description>vertex cound in polygon if applicable</description>
      </field>
      <field name="Radius" units="m" type="float">
        <description>radius of circle if applicable</description>
      </field>
    </fields>
  </logformat>
  <logformat name="FOLL">
    <description>Follow library diagnostic data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup (microseconds)</description>
      </field>
      <field name="Lat" units="deglatitude" type="int32_t latitude/longitude">
        <description>Target latitude (degrees * 1E7)</description>
      </field>
      <field name="Lon" units="deglongitude" type="int32_t latitude/longitude">
        <description>Target longitude (degrees * 1E7)</description>
      </field>
      <field name="Alt" units="cm" type="int32_t">
        <description>Target absolute altitude (centimeters)</description>
      </field>
      <field name="VelN" units="m/s" type="float">
        <description>Target velocity, North (m/s)</description>
      </field>
      <field name="VelE" units="m/s" type="float">
        <description>Target velocity, East (m/s)</description>
      </field>
      <field name="VelD" units="m/s" type="float">
        <description>Target velocity, Down (m/s)</description>
      </field>
      <field name="LatE" units="deglatitude" type="int32_t latitude/longitude">
        <description>Vehicle estimated latitude (degrees * 1E7)</description>
      </field>
      <field name="LonE" units="deglongitude" type="int32_t latitude/longitude">
        <description>Vehicle estimated longitude (degrees * 1E7)</description>
      </field>
      <field name="AltE" units="cm" type="int32_t">
        <description>Vehicle estimated altitude (centimeters)</description>
      </field>
      <field name="FrmE" units="" type="int8_t">
        <description>Vehicle estimated altitude Frame</description>
      </field>
    </fields>
  </logformat>
  <logformat name="FTN">
    <description>Filter Tuning Message - per motor</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>microseconds since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>instance</description>
      </field>
      <field name="NDn" units="" type="uint8_t">
        <description>number of active harmonic notches</description>
      </field>
      <field name="NF1" units="Hz" type="float">
        <description>desired harmonic notch centre frequency for motor 1</description>
      </field>
      <field name="NF2" units="Hz" type="float">
        <description>desired harmonic notch centre frequency for motor 2</description>
      </field>
      <field name="NF3" units="Hz" type="float">
        <description>desired harmonic notch centre frequency for motor 3</description>
      </field>
      <field name="NF4" units="Hz" type="float">
        <description>desired harmonic notch centre frequency for motor 4</description>
      </field>
      <field name="NF5" units="Hz" type="float">
        <description>desired harmonic notch centre frequency for motor 5</description>
      </field>
      <field name="NF6" units="Hz" type="float">
        <description>desired harmonic notch centre frequency for motor 6</description>
      </field>
      <field name="NF7" units="Hz" type="float">
        <description>desired harmonic notch centre frequency for motor 7</description>
      </field>
      <field name="NF8" units="Hz" type="float">
        <description>desired harmonic notch centre frequency for motor 8</description>
      </field>
      <field name="NF9" units="Hz" type="float">
        <description>desired harmonic notch centre frequency for motor 9</description>
      </field>
      <field name="NF10" units="Hz" type="float">
        <description>desired harmonic notch centre frequency for motor 10</description>
      </field>
      <field name="NF11" units="Hz" type="float">
        <description>desired harmonic notch centre frequency for motor 11</description>
      </field>
      <field name="NF12" units="Hz" type="float">
        <description>desired harmonic notch centre frequency for motor 12</description>
      </field>
    </fields>
  </logformat>
  <logformat name="FTN1">
    <description>FFT Filter Tuning</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>microseconds since system startup</description>
      </field>
      <field name="PkAvg" units="Hz" type="float">
        <description>peak noise frequency as an energy-weighted average of roll and pitch peak frequencies</description>
      </field>
      <field name="BwAvg" units="Hz" type="float">
        <description>bandwidth of weighted peak frequency where edges are determined by FFT_ATT_REF</description>
      </field>
      <field name="SnX" units="" type="float">
        <description>signal-to-noise ratio on the roll axis</description>
      </field>
      <field name="SnY" units="" type="float">
        <description>signal-to-noise ratio on the pitch axis</description>
      </field>
      <field name="SnZ" units="" type="float">
        <description>signal-to-noise ratio on the yaw axis</description>
      </field>
      <field name="FtX" units="%" type="float">
        <description>harmonic fit on roll of the highest noise peak to the second highest noise peak</description>
      </field>
      <field name="FtY" units="%" type="float">
        <description>harmonic fit on pitch of the highest noise peak to the second highest noise peak</description>
      </field>
      <field name="FtZ" units="%" type="float">
        <description>harmonic fit on yaw of the highest noise peak to the second highest noise peak</description>
      </field>
      <field name="FHX" units="" type="uint8_t">
        <description>FFT health, X-axis</description>
      </field>
      <field name="FHY" units="" type="uint8_t">
        <description>FFT health, Y-axis</description>
      </field>
      <field name="FHZ" units="" type="uint8_t">
        <description>FFT health, Z-axis</description>
      </field>
      <field name="Tc" units="μs" type="uint32_t">
        <description>FFT cycle time</description>
      </field>
    </fields>
  </logformat>
  <logformat name="FTN2">
    <description>FFT Noise Frequency Peak</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>microseconds since system startup</description>
      </field>
      <field name="Id" units="instance" type="uint8_t">
        <description>peak id where 0 is the centre peak, 1 is the lower shoulder and 2 is the upper shoulder</description>
      </field>
      <field name="PkX" units="Hz" type="float">
        <description>noise frequency of the peak on roll</description>
      </field>
      <field name="PkY" units="Hz" type="float">
        <description>noise frequency of the peak on pitch</description>
      </field>
      <field name="PkZ" units="Hz" type="float">
        <description>noise frequency of the peak on yaw</description>
      </field>
      <field name="BwX" units="Hz" type="float">
        <description>bandwidth of the peak frequency on roll where edges are determined by FFT_ATT_REF</description>
      </field>
      <field name="BwY" units="Hz" type="float">
        <description>bandwidth of the peak frequency on pitch where edges are determined by FFT_ATT_REF</description>
      </field>
      <field name="BwZ" units="Hz" type="float">
        <description>bandwidth of the peak frequency on yaw where edges are determined by FFT_ATT_REF</description>
      </field>
      <field name="SnX" units="" type="float">
        <description>signal-to-noise ratio on the roll axis</description>
      </field>
      <field name="SnY" units="" type="float">
        <description>signal-to-noise ratio on the pitch axis</description>
      </field>
      <field name="SnZ" units="" type="float">
        <description>signal-to-noise ratio on the yaw axis</description>
      </field>
      <field name="EnX" units="" type="float">
        <description>power spectral density bin energy of the peak on roll</description>
      </field>
      <field name="EnY" units="" type="float">
        <description>power spectral density bin energy of the peak on roll</description>
      </field>
      <field name="EnZ" units="" type="float">
        <description>power spectral density bin energy of the peak on roll</description>
      </field>
    </fields>
  </logformat>
  <logformat name="FTN3">
    <description>Additional FFT Noise Frequency Peak</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>microseconds since system startup</description>
      </field>
      <field name="Id" units="instance" type="uint8_t">
        <description>update axis</description>
      </field>
      <field name="Pk1" units="Hz" type="float">
        <description>Peak 1 frequency</description>
      </field>
      <field name="Pk2" units="Hz" type="float">
        <description>Peak 2 frequency</description>
      </field>
      <field name="Pk3" units="Hz" type="float">
        <description>Peak 3 Frequency</description>
      </field>
      <field name="Bw1" units="Hz" type="float">
        <description>Peak 1 noise bandwidth</description>
      </field>
      <field name="Bw2" units="Hz" type="float">
        <description>Peak 2 noise bandwidth</description>
      </field>
      <field name="Bw3" units="Hz" type="float">
        <description>Peak 3 noise bandwidth</description>
      </field>
      <field name="En1" units="" type="float">
        <description>Peak 1 Maximum energy</description>
      </field>
      <field name="En2" units="" type="float">
        <description>Peak 2 Maximum energy</description>
      </field>
      <field name="En3" units="" type="float">
        <description>Peak 3 Maximum energy</description>
      </field>
    </fields>
  </logformat>
  <logformat name="FTNS">
    <description>Filter Tuning Message</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>microseconds since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>instance</description>
      </field>
      <field name="NF" units="Hz" type="float">
        <description>desired harmonic notch centre frequency</description>
      </field>
    </fields>
  </logformat>
  <logformat name="GLT">
    <description>Simulated Glider Angles and coefficients</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Alpha" units="" type="float">
        <description>alpha angle</description>
      </field>
      <field name="Beta" units="" type="float">
        <description>beta angle</description>
      </field>
      <field name="Cl" units="" type="float">
        <description>lift coefficent</description>
      </field>
      <field name="Cm" units="" type="float">
        <description>roll coffecient</description>
      </field>
      <field name="Cn" units="" type="float">
        <description>yaw coefficient</description>
      </field>
    </fields>
  </logformat>
  <logformat name="GMB1">
    <description>Solo Gimbal measurements</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="dt" units="ms" type="float">
        <description>sum of time across measurements in this packet</description>
      </field>
      <field name="dax" units="rad" type="float">
        <description>delta-angle sum, x-axis</description>
      </field>
      <field name="day" units="rad" type="float">
        <description>delta-angle sum, y-axis</description>
      </field>
      <field name="daz" units="rad" type="float">
        <description>delta-angle sum, z-axis</description>
      </field>
      <field name="dvx" units="rad/s" type="float">
        <description>delta-velocity sum, x-axis</description>
      </field>
      <field name="dvy" units="rad/s" type="float">
        <description>delta-velocity sum, y-axis</description>
      </field>
      <field name="dvz" units="rad/s" type="float">
        <description>delta-velocity sum, z-axis</description>
      </field>
      <field name="jx" units="rad/s/s" type="float">
        <description>joint angle, x</description>
      </field>
      <field name="jy" units="rad/s/s" type="float">
        <description>joint angle, y</description>
      </field>
      <field name="jz" units="rad/s/s" type="float">
        <description>joint angle, z</description>
      </field>
    </fields>
  </logformat>
  <logformat name="GMB2">
    <description>Solo Gimbal estimation and demands</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="es" units="" type="uint8_t">
        <description>Solo Gimbal EKF status bits</description>
      </field>
      <field name="ex" units="rad" type="float">
        <description>Solo Gimbal EKF estimate of gimbal angle, x-axis</description>
      </field>
      <field name="ey" units="rad" type="float">
        <description>Solo Gimbal EKF estimate of gimbal angle, y-axis</description>
      </field>
      <field name="ez" units="rad" type="float">
        <description>Solo Gimbal EKF estimate of gimbal angle, y-axis</description>
      </field>
      <field name="rx" units="rad/s" type="float">
        <description>Angular velocity demand around x-axis</description>
      </field>
      <field name="ry" units="rad/s" type="float">
        <description>Angular velocity demand around y-axis</description>
      </field>
      <field name="rz" units="rad/s" type="float">
        <description>Angular velocity demand around z-axis</description>
      </field>
      <field name="tx" units="rad/s/s" type="float">
        <description>Angular position target around x-axis</description>
      </field>
      <field name="ty" units="rad/s/s" type="float">
        <description>Angular position target around y-axis</description>
      </field>
      <field name="tz" units="rad/s/s" type="float">
        <description>Angular position target around z-axis</description>
      </field>
    </fields>
  </logformat>
  <logformat name="GPA">
    <description>GPS accuracy information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>GPS instance number</description>
      </field>
      <field name="VDop" units="" type="uint16_t * 100">
        <description>vertical dilution of precision</description>
      </field>
      <field name="HAcc" units="m" type="uint16_t * 100">
        <description>horizontal position accuracy</description>
      </field>
      <field name="VAcc" units="m" type="uint16_t * 100">
        <description>vertical position accuracy</description>
      </field>
      <field name="SAcc" units="m/s" type="uint16_t * 100">
        <description>speed accuracy</description>
      </field>
      <field name="YAcc" units="deg" type="float">
        <description>yaw accuracy</description>
      </field>
      <field name="VV" units="" type="uint8_t">
        <description>true if vertical velocity is available</description>
      </field>
      <field name="SMS" units="ms" type="uint32_t">
        <description>time since system startup this sample was taken</description>
      </field>
      <field name="Delta" units="ms" type="uint16_t">
        <description>system time delta between the last two reported positions</description>
      </field>
      <field name="AEl" units="m" type="int32_t * 100">
        <description>altitude above WGS-84 ellipsoid; INT32_MIN (-2147483648) if unknown</description>
      </field>
      <field name="RTCMFU" units="" type="uint16_t">
        <description>RTCM fragments used</description>
      </field>
      <field name="RTCMFD" units="" type="uint16_t">
        <description>RTCM fragments discarded</description>
      </field>
    </fields>
  </logformat>
  <logformat name="GPS">
    <description>Information received from GNSS systems attached to the autopilot</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>GPS instance number</description>
      </field>
      <field name="Status" units="" type="uint8_t">
        <description>GPS Fix type; 2D fix, 3D fix etc.</description>
        <enum name="AP_GPS_FixType">
          <element name="NO_GPS">
            <value>0</value>
            <description>No GPS connected/detected</description>
          </element>
          <element name="NONE">
            <value>1</value>
            <description>Receiving valid GPS messages but no lock</description>
          </element>
          <element name="FIX_2D">
            <value>2</value>
            <description>Receiving valid messages and 2D lock</description>
          </element>
          <element name="FIX_3D">
            <value>3</value>
            <description>Receiving valid messages and 3D lock</description>
          </element>
          <element name="DGPS">
            <value>4</value>
            <description>Receiving valid messages and 3D lock with differential improvements</description>
          </element>
          <element name="RTK_FLOAT">
            <value>5</value>
            <description>Receiving valid messages and 3D RTK Float</description>
          </element>
          <element name="RTK_FIXED">
            <value>6</value>
            <description>Receiving valid messages and 3D RTK Fixed</description>
          </element>
          <element name="STATIC">
            <value>7</value>
            <description>Receiving valid messages and static fixed, typically used for base stations</description>
          </element>
          <element name="PPP">
            <value>8</value>
            <description>Receiving valid messages and improved with PPP</description>
          </element>
        </enum>
      </field>
      <field name="GMS" units="ms" type="uint32_t">
        <description>milliseconds since start of GPS Week</description>
      </field>
      <field name="GWk" units="" type="uint16_t">
        <description>weeks since 5 Jan 1980</description>
      </field>
      <field name="NSats" units="satellites" type="uint8_t">
        <description>number of satellites visible</description>
      </field>
      <field name="HDop" units="" type="int16_t * 100">
        <description>horizontal dilution of precision</description>
      </field>
      <field name="Lat" units="deglatitude" type="int32_t latitude/longitude">
        <description>latitude</description>
      </field>
      <field name="Lng" units="deglongitude" type="int32_t latitude/longitude">
        <description>longitude</description>
      </field>
      <field name="Alt" units="m" type="int32_t * 100">
        <description>altitude</description>
      </field>
      <field name="Spd" units="m/s" type="float">
        <description>ground speed</description>
      </field>
      <field name="GCrs" units="degheading" type="float">
        <description>ground course</description>
      </field>
      <field name="VZ" units="m/s" type="float">
        <description>vertical speed</description>
      </field>
      <field name="Yaw" units="degheading" type="float">
        <description>vehicle yaw</description>
      </field>
      <field name="U" units="" type="uint8_t">
        <description>boolean value indicating whether this GPS is in use</description>
      </field>
    </fields>
  </logformat>
  <logformat name="GPYW">
    <description>GPS Yaw</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Id" units="instance" type="uint8_t">
        <description>instance</description>
      </field>
      <field name="RHD" units="deg" type="float">
        <description>reported heading,deg</description>
      </field>
      <field name="RDist" units="m" type="float">
        <description>antenna separation,m</description>
      </field>
      <field name="RDown" units="m" type="float">
        <description>vertical antenna separation,m</description>
      </field>
      <field name="MinCDown" units="m" type="float">
        <description>minimum tolerable vertical antenna separation,m</description>
      </field>
      <field name="MaxCDown" units="m" type="float">
        <description>maximum tolerable vertical antenna separation,m </description>
      </field>
      <field name="OK" units="" type="uint8_t">
        <description>1 if have yaw</description>
      </field>
    </fields>
  </logformat>
  <logformat name="GRAW">
    <description>Raw uBlox data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="WkMS" units="ms" type="uint32_t">
        <description>receiver TimeOfWeek measurement</description>
      </field>
      <field name="Week" units="" type="uint16_t">
        <description>GPS week</description>
      </field>
      <field name="numSV" units="satellites" type="uint8_t">
        <description>number of space vehicles seen</description>
      </field>
      <field name="sv" units="" type="uint8_t">
        <description>space vehicle number of first vehicle</description>
      </field>
      <field name="cpMes" units="" type="double">
        <description>carrier phase measurement</description>
      </field>
      <field name="prMes" units="" type="double">
        <description>pseudorange measurement</description>
      </field>
      <field name="doMes" units="" type="float">
        <description>Doppler measurement</description>
      </field>
      <field name="mesQI" units="" type="uint8_t">
        <description>measurement quality index</description>
      </field>
      <field name="cno" units="" type="int8_t">
        <description>carrier-to-noise density ratio</description>
      </field>
      <field name="lli" units="" type="uint8_t">
        <description>loss of lock indicator</description>
      </field>
    </fields>
  </logformat>
  <logformat name="GRXH">
    <description>Raw uBlox data - header</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="rcvTime" units="" type="double">
        <description>receiver TimeOfWeek measurement</description>
      </field>
      <field name="week" units="" type="uint16_t">
        <description>GPS week</description>
      </field>
      <field name="leapS" units="" type="int8_t">
        <description>GPS leap seconds</description>
      </field>
      <field name="numMeas" units="" type="uint8_t">
        <description>number of space-vehicle measurements to follow</description>
      </field>
      <field name="recStat" units="" type="uint8_t">
        <description>receiver tracking status bitfield</description>
      </field>
    </fields>
  </logformat>
  <logformat name="GRXS">
    <description>Raw uBlox data - space-vehicle data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="prMes" units="" type="double">
        <description>Pseudorange measurement</description>
      </field>
      <field name="cpMes" units="" type="double">
        <description>Carrier phase measurement</description>
      </field>
      <field name="doMes" units="" type="float">
        <description>Doppler measurement</description>
      </field>
      <field name="gnss" units="" type="uint8_t">
        <description>GNSS identifier</description>
      </field>
      <field name="sv" units="" type="uint8_t">
        <description>Satellite identifier</description>
      </field>
      <field name="freq" units="" type="uint8_t">
        <description>GLONASS frequency slot</description>
      </field>
      <field name="lock" units="" type="uint16_t">
        <description>carrier phase locktime counter</description>
      </field>
      <field name="cno" units="" type="uint8_t">
        <description>carrier-to-noise density ratio</description>
      </field>
      <field name="prD" units="" type="uint8_t">
        <description>estimated pseudorange measurement standard deviation</description>
      </field>
      <field name="cpD" units="" type="uint8_t">
        <description>estimated carrier phase measurement standard deviation</description>
      </field>
      <field name="doD" units="" type="uint8_t">
        <description>estimated Doppler measurement standard deviation</description>
      </field>
      <field name="trk" units="" type="uint8_t">
        <description>tracking status bitfield</description>
      </field>
    </fields>
  </logformat>
  <logformat name="GSLH">
    <description>GSOF70 LLH with MSL Altitude</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup [µs]</description>
      </field>
      <field name="Lat" units="deglatitude" type="double">
        <description>Latitude [deg]</description>
      </field>
      <field name="Lng" units="deglongitude" type="double">
        <description>Longitude [deg]</description>
      </field>
      <field name="AltMSL" units="m" type="double">
        <description>Altitude above mean sea level [m]</description>
      </field>
      <field name="Model" units="" type="char[64]">
        <description>Geoid model used (null-terminated string)</description>
      </field>
    </fields>
  </logformat>
  <logformat name="GSN1">
    <description>GSOF49 Full INS Navigation Solution 1</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup [us]</description>
      </field>
      <field name="GpsWk" units="" type="uint16_t">
        <description>GPS week number since Jan 1980</description>
      </field>
      <field name="GpsTs" units="ms" type="uint32_t">
        <description>GPS time of week [ms]</description>
      </field>
      <field name="ImuStat" units="" type="uint8_t">
        <description>IMU alignment status (enum)</description>
      </field>
      <field name="GStat" units="" type="uint8_t">
        <description>GNSS status (enum)</description>
      </field>
      <field name="Lat" units="deglatitude" type="double">
        <description>Latitude [degrees]</description>
      </field>
      <field name="Lng" units="deglongitude" type="double">
        <description>Longitude [degrees]</description>
      </field>
      <field name="Alt" units="m" type="double">
        <description>Altitude in ITRF 2020 [meters]</description>
      </field>
      <field name="VN" units="m/s" type="float">
        <description>Velocity North [m/s]</description>
      </field>
      <field name="VE" units="m/s" type="float">
        <description>Velocity East [m/s]</description>
      </field>
      <field name="VD" units="m/s" type="float">
        <description>Velocity Down [m/s]</description>
      </field>
      <field name="Spd" units="m/s" type="float">
        <description>3D Speed [m/s]</description>
      </field>
    </fields>
  </logformat>
  <logformat name="GSN2">
    <description>GSOF49 Full INS Navigation Solution 2</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup [us]</description>
      </field>
      <field name="Roll" units="deg" type="double">
        <description>Roll [degrees]</description>
      </field>
      <field name="Pitch" units="deg" type="double">
        <description>Pitch [degrees]</description>
      </field>
      <field name="Heading" units="degheading" type="double">
        <description>Heading [degrees]</description>
      </field>
      <field name="Track" units="deg" type="double">
        <description>Track angle [degrees]</description>
      </field>
      <field name="RateX" units="deg/s" type="float">
        <description>Angular rate X [deg/s]</description>
      </field>
      <field name="RateY" units="deg/s" type="float">
        <description>Angular rate Y [deg/s]</description>
      </field>
      <field name="RateZ" units="rad/s" type="float">
        <description>Angular rate Z [m/s]</description>
      </field>
      <field name="AccX" units="m/s/s" type="float">
        <description>Acceleration X [m/s^2]</description>
      </field>
      <field name="AccY" units="m/s/s" type="float">
        <description>Acceleration Y [m/s^2]</description>
      </field>
      <field name="AccZ" units="m/s/s" type="float">
        <description>Acceleration Z [m/s^2]</description>
      </field>
    </fields>
  </logformat>
  <logformat name="GSPT">
    <description>GSOF1 GPS Position Time Metadata</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>GPS Time since system startup [us]</description>
      </field>
      <field name="TOWms" units="ms" type="uint32_t">
        <description>GPS Time of week [ms]</description>
      </field>
      <field name="Week" units="" type="uint16_t">
        <description>GPS week number</description>
      </field>
      <field name="Sats" units="satellites" type="uint8_t">
        <description>Number of satellites</description>
      </field>
      <field name="Flags1" units="" type="uint8_t">
        <description>Positioning flags byte 1</description>
      </field>
      <field name="Flags2" units="" type="uint8_t">
        <description>Positioning flags byte 2</description>
      </field>
      <field name="InitNum" units="" type="uint8_t">
        <description>Initialization count</description>
      </field>
    </fields>
  </logformat>
  <logformat name="GSR1">
    <description>GSOF50 INS Solution RMS Values 1</description>
    <fields>
      <field name="TUS" units="μs" type="uint64_t">
        <description>Time since system startup [us]</description>
      </field>
      <field name="GpsTMs" units="ms" type="uint32_t">
        <description>GPS time of week [ms]</description>
      </field>
      <field name="PUN" units="m" type="float">
        <description>North Position uncertainty RMS [m]</description>
      </field>
      <field name="PUE" units="m" type="float">
        <description>East Position uncertainty RMS [m]</description>
      </field>
      <field name="PUD" units="m" type="float">
        <description>Down Position uncertainty RMS [m]</description>
      </field>
      <field name="VUN" units="m/s" type="float">
        <description>North Velocity uncertainty RMS [m/s]</description>
      </field>
      <field name="VUE" units="m/s" type="float">
        <description>East Velocity uncertainty RMS [m/s]</description>
      </field>
      <field name="VUD" units="m/s" type="float">
        <description>Down Velocity uncertainty RMS [m/s]</description>
      </field>
      <field name="RollU" units="deg" type="float">
        <description>Roll RMS uncertainty [deg]</description>
      </field>
      <field name="PitchU" units="deg" type="float">
        <description>Pitch RMS uncertainty[deg]</description>
      </field>
      <field name="YawU" units="deg" type="float">
        <description>Yaw RMS uncertainty[deg]</description>
      </field>
    </fields>
  </logformat>
  <logformat name="GUIA">
    <description>Guided mode attitude target information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Type" units="" type="uint8_t">
        <description>Type of guided mode</description>
      </field>
      <field name="Roll" units="deg" type="float">
        <description>Target attitude, Roll</description>
      </field>
      <field name="Pitch" units="deg" type="float">
        <description>Target attitude, Pitch</description>
      </field>
      <field name="Yaw" units="deg" type="float">
        <description>Target attitude, Yaw</description>
      </field>
      <field name="RollRt" units="deg/s" type="float">
        <description>Roll rate</description>
      </field>
      <field name="PitchRt" units="deg/s" type="float">
        <description>Pitch rate</description>
      </field>
      <field name="YawRt" units="deg/s" type="float">
        <description>Yaw rate</description>
      </field>
      <field name="Thrust" units="" type="float">
        <description>Thrust </description>
      </field>
      <field name="ClimbRt" units="m/s" type="float">
        <description>Climb rate</description>
      </field>
    </fields>
  </logformat>
  <logformat name="GUIP">
    <description>Guided mode position target information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Type" units="" type="uint8_t">
        <description>Type of guided mode</description>
      </field>
      <field name="pX" units="m" type="float">
        <description>Target position, X-Axis</description>
      </field>
      <field name="pY" units="m" type="float">
        <description>Target position, Y-Axis</description>
      </field>
      <field name="pZ" units="m" type="float">
        <description>Target position, Z-Axis</description>
      </field>
      <field name="Terrain" units="" type="int8_t">
        <description>Target position, Z-Axis is alt above terrain</description>
      </field>
      <field name="vX" units="m/s" type="float">
        <description>Target velocity, X-Axis</description>
      </field>
      <field name="vY" units="m/s" type="float">
        <description>Target velocity, Y-Axis</description>
      </field>
      <field name="vZ" units="m/s" type="float">
        <description>Target velocity, Z-Axis</description>
      </field>
      <field name="aX" units="m/s/s" type="float">
        <description>Target acceleration, X-Axis</description>
      </field>
      <field name="aY" units="m/s/s" type="float">
        <description>Target acceleration, Y-Axis</description>
      </field>
      <field name="aZ" units="m/s/s" type="float">
        <description>Target acceleration, Z-Axis</description>
      </field>
    </fields>
  </logformat>
  <logformat name="GYR">
    <description>IMU gyroscope data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>gyroscope sensor instance number</description>
      </field>
      <field name="SampleUS" units="μs" type="uint64_t">
        <description>time since system startup this sample was taken</description>
      </field>
      <field name="GyrX" units="rad/s" type="float">
        <description>measured rotation rate about X axis</description>
      </field>
      <field name="GyrY" units="rad/s" type="float">
        <description>measured rotation rate about Y axis</description>
      </field>
      <field name="GyrZ" units="rad/s" type="float">
        <description>measured rotation rate about Z axis</description>
      </field>
    </fields>
  </logformat>
  <logformat name="HEAT">
    <description>IMU Heater data</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Temp" units="" type="float">
        <description>Current IMU temperature</description>
      </field>
      <field name="Targ" units="" type="int8_t">
        <description>Target IMU temperature</description>
      </field>
      <field name="P" units="" type="float">
        <description>Proportional portion of response</description>
      </field>
      <field name="I" units="" type="float">
        <description>Integral portion of response</description>
      </field>
      <field name="Out" units="" type="float">
        <description>Controller output to heating element</description>
      </field>
    </fields>
  </logformat>
  <logformat name="HRSC">
    <description>Helicopter related messages </description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>Instance, 0=Main, 1=Tail</description>
      </field>
      <field name="DRRPM" units="" type="float">
        <description>Desired rotor speed</description>
      </field>
      <field name="ERRPM" units="" type="float">
        <description>Estimated rotor speed</description>
      </field>
      <field name="Gov" units="" type="float">
        <description>Governor Output</description>
      </field>
      <field name="Throt" units="" type="float">
        <description>Throttle output</description>
      </field>
      <field name="Ramp" units="" type="float">
        <description>throttle ramp up</description>
      </field>
    </fields>
  </logformat>
  <logformat name="HYGR">
    <description>Hygrometer data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Id" units="instance" type="uint8_t">
        <description>sensor ID</description>
      </field>
      <field name="Humidity" units="%" type="float">
        <description>percentage humidity</description>
      </field>
      <field name="Temp" units="degC" type="float">
        <description>temperature in degrees C</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ICMB">
    <description>ICM20789 diagnostics</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Traw" units="" type="uint32_t">
        <description>raw temperature from sensor</description>
      </field>
      <field name="Praw" units="" type="uint32_t">
        <description>raw pressure from sensor</description>
      </field>
      <field name="P" units="" type="float">
        <description>pressure</description>
      </field>
      <field name="T" units="" type="float">
        <description>temperature</description>
      </field>
    </fields>
  </logformat>
  <logformat name="IE24">
    <url>https://ardupilot.org/copter/docs/common-ie24-fuelcell.html</url>
    <description>Intelligent Energy Fuel Cell generator (legacy protocol)</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="FUEL" units="1e2 %" type="float">
        <description>Fuel remaining</description>
      </field>
      <field name="SPMPWR" units="Watt" type="int32_t">
        <description>stack power module power draw</description>
      </field>
      <field name="POUT" units="Watt" type="int32_t">
        <description>output power</description>
      </field>
      <field name="ERR" units="" type="int32_t">
        <description>error codes</description>
        <enum name="AP_Generator_IE_2400::ErrorCode">
          <element name="MINOR_INTERNAL">
            <value>1</value>
            <description>Minor internal error is to be ignored</description>
          </element>
          <element name="REDUCED_POWER">
            <value>10</value>
          </element>
          <element name="SPM_LOST">
            <value>11</value>
          </element>
          <element name="PRESSURE_LOW">
            <value>20</value>
          </element>
          <element name="BATTERY_LOW">
            <value>21</value>
          </element>
          <element name="PRESSURE_ALERT">
            <value>30</value>
          </element>
          <element name="START_DENIED">
            <value>31</value>
          </element>
          <element name="SYSTEM_CRITICAL">
            <value>32</value>
          </element>
          <element name="PRESSURE_CRITICAL">
            <value>33</value>
          </element>
          <element name="BATTERY_CRITICAL">
            <value>40</value>
          </element>
        </enum>
      </field>
    </fields>
  </logformat>
  <logformat name="IEFC">
    <url>https://ardupilot.org/copter/docs/common-ie24-fuelcell.html</url>
    <description>Intelligent Energy Fuel Cell generator</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Tank" units="%" type="float">
        <description>Fuel remaining</description>
      </field>
      <field name="Inlet" units="" type="float">
        <description>Inlet pressure</description>
      </field>
      <field name="BattV" units="V" type="float">
        <description>battery voltage</description>
      </field>
      <field name="OutPwr" units="Watt" type="int16_t">
        <description>output power</description>
      </field>
      <field name="SPMPwr" units="Watt" type="uint16_t">
        <description>stack power module power draw</description>
      </field>
      <field name="FNo" units="" type="uint8_t">
        <description>fault number</description>
      </field>
      <field name="BPwr" units="Watt" type="int16_t">
        <description>battery power draw</description>
      </field>
      <field name="State" units="" type="uint8_t">
        <description>generator state</description>
        <enum name="AP_Generator_IE_2400::V2_State">
          <element name="FCPM_Off">
            <value>0</value>
          </element>
          <element name="Starting">
            <value>1</value>
          </element>
          <element name="Running">
            <value>2</value>
          </element>
          <element name="Stopping">
            <value>3</value>
          </element>
          <element name="Go_to_Sleep">
            <value>4</value>
          </element>
        </enum>
      </field>
      <field name="F1" units="" type="uint32_t">
        <description>error code</description>
        <enum name="AP_Generator_IE_2400::ErrorCode">
          <element name="MINOR_INTERNAL">
            <value>1</value>
            <description>Minor internal error is to be ignored</description>
          </element>
          <element name="REDUCED_POWER">
            <value>10</value>
          </element>
          <element name="SPM_LOST">
            <value>11</value>
          </element>
          <element name="PRESSURE_LOW">
            <value>20</value>
          </element>
          <element name="BATTERY_LOW">
            <value>21</value>
          </element>
          <element name="PRESSURE_ALERT">
            <value>30</value>
          </element>
          <element name="START_DENIED">
            <value>31</value>
          </element>
          <element name="SYSTEM_CRITICAL">
            <value>32</value>
          </element>
          <element name="PRESSURE_CRITICAL">
            <value>33</value>
          </element>
          <element name="BATTERY_CRITICAL">
            <value>40</value>
          </element>
        </enum>
      </field>
      <field name="F2" units="" type="uint32_t">
        <description>sub-error code</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ILB1">
    <description>InertialLabs AHRS data1</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="GMS" units="" type="uint32_t">
        <description>GPS INS time (round)</description>
      </field>
      <field name="GyrX" units="deg/s" type="float">
        <description>Gyro X</description>
      </field>
      <field name="GyrY" units="deg/s" type="float">
        <description>Gyro Y</description>
      </field>
      <field name="GyrZ" units="deg/s" type="float">
        <description>Gyro z</description>
      </field>
      <field name="AccX" units="m/s/s" type="float">
        <description>Accelerometer X</description>
      </field>
      <field name="AccY" units="m/s/s" type="float">
        <description>Accelerometer Y</description>
      </field>
      <field name="AccZ" units="m/s/s" type="float">
        <description>Accelerometer Z</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ILB2">
    <description>InertialLabs AHRS data2</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="GMS" units="" type="uint32_t">
        <description>GPS INS time (round)</description>
      </field>
      <field name="MagX" units="" type="float">
        <description>Magnetometer X</description>
      </field>
      <field name="MagY" units="" type="float">
        <description>Magnetometer Y</description>
      </field>
      <field name="MagZ" units="" type="float">
        <description>Magnetometer Z</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ILB3">
    <description>InertialLabs AHRS data3</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="GMS" units="" type="uint32_t">
        <description>GPS INS time (round)</description>
      </field>
      <field name="Press" units="Pa" type="float">
        <description>Static pressure</description>
      </field>
      <field name="Diff" units="Pa" type="float">
        <description>Differential pressure</description>
      </field>
      <field name="Temp" units="degC" type="float">
        <description>Temperature</description>
      </field>
      <field name="Alt" units="m" type="float">
        <description>Baro altitude</description>
      </field>
      <field name="TAS" units="m/s" type="float">
        <description>true airspeed</description>
      </field>
      <field name="VWN" units="m/s" type="float">
        <description>Wind velocity north</description>
      </field>
      <field name="VWE" units="m/s" type="float">
        <description>Wind velocity east</description>
      </field>
      <field name="VWD" units="m/s" type="float">
        <description>Wind velocity down</description>
      </field>
      <field name="ADU" units="" type="uint16_t">
        <description>Air Data Unit status</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ILB4">
    <description>InertialLabs AHRS data4</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="GMS" units="" type="uint32_t">
        <description>GNSS Position timestamp</description>
      </field>
      <field name="GWk" units="" type="uint16_t">
        <description>GPS Week</description>
      </field>
      <field name="NSat" units="" type="uint8_t">
        <description>Number of satellites</description>
      </field>
      <field name="NewGPS" units="" type="uint8_t">
        <description>Indicator of new update of GPS data</description>
      </field>
      <field name="Lat" units="deglatitude" type="float">
        <description>GNSS Latitude</description>
      </field>
      <field name="Lng" units="deglongitude" type="float">
        <description>GNSS Longitude</description>
      </field>
      <field name="Alt" units="m" type="float">
        <description>GNSS Altitude</description>
      </field>
      <field name="GCrs" units="degheading" type="float">
        <description>GNSS Track over ground</description>
      </field>
      <field name="Spd" units="m/s" type="float">
        <description>GNSS Horizontal speed</description>
      </field>
      <field name="VZ" units="m/s" type="float">
        <description>GNSS Vertical speed</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ILB5">
    <description>InertialLabs AHRS data5</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="GMS" units="" type="uint32_t">
        <description>GNSS Position timestamp</description>
      </field>
      <field name="FType" units="" type="uint8_t">
        <description>fix type</description>
      </field>
      <field name="GSS" units="" type="uint8_t">
        <description>GNSS spoofing status</description>
      </field>
      <field name="GJS" units="" type="uint8_t">
        <description>GNSS jamming status</description>
      </field>
      <field name="GI1" units="" type="uint8_t">
        <description>GNSS Info1</description>
      </field>
      <field name="GI2" units="" type="uint8_t">
        <description>GNSS Info2</description>
      </field>
      <field name="GAPS" units="" type="uint8_t">
        <description>GNSS Angles position type</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ILB6">
    <description>InertialLabs AHRS data6</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="GMS" units="" type="uint32_t">
        <description>GNSS Position timestamp</description>
      </field>
      <field name="GpsHTS" units="" type="uint32_t">
        <description>GNSS Heading timestamp</description>
      </field>
      <field name="GpsYaw" units="degheading" type="float">
        <description>GNSS Heading</description>
      </field>
      <field name="GpsPitch" units="deg" type="float">
        <description>GNSS Pitch</description>
      </field>
      <field name="GDOP" units="" type="float">
        <description>GNSS GDOP</description>
      </field>
      <field name="PDOP" units="" type="float">
        <description>GNSS PDOP</description>
      </field>
      <field name="HDOP" units="" type="float">
        <description>GNSS HDOP</description>
      </field>
      <field name="VDOP" units="" type="float">
        <description>GNSS VDOP</description>
      </field>
      <field name="TDOP" units="" type="float">
        <description>GNSS TDOP</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ILB7">
    <description>InertialLabs AHRS data7</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="GMS" units="" type="uint32_t">
        <description>GPS INS time (round)</description>
      </field>
      <field name="Roll" units="deg" type="float">
        <description>euler roll</description>
      </field>
      <field name="Pitch" units="deg" type="float">
        <description>euler pitch</description>
      </field>
      <field name="Yaw" units="deg" type="float">
        <description>euler yaw</description>
      </field>
      <field name="VN" units="m/s" type="float">
        <description>velocity north</description>
      </field>
      <field name="VE" units="m/s" type="float">
        <description>velocity east</description>
      </field>
      <field name="VD" units="m/s" type="float">
        <description>velocity down</description>
      </field>
      <field name="Lat" units="deglatitude" type="float">
        <description>latitude</description>
      </field>
      <field name="Lng" units="deglongitude" type="float">
        <description>longitude</description>
      </field>
      <field name="Alt" units="m" type="float">
        <description>altitude MSL</description>
      </field>
      <field name="USW" units="" type="uint16_t">
        <description>USW1</description>
      </field>
      <field name="USW2" units="" type="uint16_t">
        <description>USW2</description>
      </field>
      <field name="Vdc" units="V" type="float">
        <description>Supply voltage</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ILB8">
    <description>InertialLabs AHRS data8</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="GMS" units="" type="uint32_t">
        <description>GPS INS time (round)</description>
      </field>
      <field name="PVN" units="m" type="float">
        <description>position variance north</description>
      </field>
      <field name="PVE" units="m" type="float">
        <description>position variance east</description>
      </field>
      <field name="PVD" units="m" type="float">
        <description>position variance down</description>
      </field>
      <field name="VVN" units="m/s" type="float">
        <description>velocity variance north</description>
      </field>
      <field name="VVE" units="m/s" type="float">
        <description>velocity variance east</description>
      </field>
      <field name="VVD" units="m/s" type="float">
        <description>velocity variance down</description>
      </field>
    </fields>
  </logformat>
  <logformat name="IMU">
    <description>Inertial Measurement Unit data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>IMU sensor instance number</description>
      </field>
      <field name="GyrX" units="rad/s" type="float">
        <description>measured rotation rate about X axis</description>
      </field>
      <field name="GyrY" units="rad/s" type="float">
        <description>measured rotation rate about Y axis</description>
      </field>
      <field name="GyrZ" units="rad/s" type="float">
        <description>measured rotation rate about Z axis</description>
      </field>
      <field name="AccX" units="m/s/s" type="float">
        <description>acceleration along X axis</description>
      </field>
      <field name="AccY" units="m/s/s" type="float">
        <description>acceleration along Y axis</description>
      </field>
      <field name="AccZ" units="m/s/s" type="float">
        <description>acceleration along Z axis</description>
      </field>
      <field name="EG" units="" type="uint32_t">
        <description>gyroscope error count</description>
      </field>
      <field name="EA" units="" type="uint32_t">
        <description>accelerometer error count</description>
      </field>
      <field name="T" units="degC" type="float">
        <description>IMU temperature</description>
      </field>
      <field name="GH" units="" type="uint8_t">
        <description>gyroscope health</description>
      </field>
      <field name="AH" units="" type="uint8_t">
        <description>accelerometer health</description>
      </field>
      <field name="GHz" units="Hz" type="uint16_t">
        <description>gyroscope measurement rate</description>
      </field>
      <field name="AHz" units="Hz" type="uint16_t">
        <description>accelerometer measurement rate</description>
      </field>
    </fields>
  </logformat>
  <logformat name="IOMC">
    <description>IOMCU diagnostic information</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="RSErr" units="" type="uint16_t">
        <description>Status Read error count (zeroed on successful read)</description>
      </field>
      <field name="Mem" units="" type="uint16_t">
        <description>Free memory</description>
      </field>
      <field name="TS" units="" type="uint32_t">
        <description>IOMCU uptime</description>
      </field>
      <field name="NPkt" units="" type="uint32_t">
        <description>Number of packets received by IOMCU</description>
      </field>
      <field name="Nerr" units="" type="uint32_t">
        <description>Protocol failures on MCU side</description>
      </field>
      <field name="Nerr2" units="" type="uint32_t">
        <description>Reported number of failures on IOMCU side</description>
      </field>
      <field name="NDel" units="" type="uint32_t">
        <description>Number of delayed packets received by MCU</description>
      </field>
    </fields>
  </logformat>
  <logformat name="IREG">
    <description>IMU Register unexpected value change</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="DevID" units="" type="uint32_t">
        <description>bus ID</description>
      </field>
      <field name="Bank" units="" type="uint8_t">
        <description>device register bank</description>
      </field>
      <field name="Reg" units="" type="uint8_t">
        <description>device register</description>
      </field>
      <field name="Val" units="" type="uint8_t">
        <description>unexpected value</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ISBD">
    <description>InertialSensor Batch Logging Data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="N" units="" type="uint16_t">
        <description>batch sequence number</description>
      </field>
      <field name="seqno" units="" type="uint16_t">
        <description>sample sequence number</description>
      </field>
      <field name="x" units="m/s/s" type="int16_t[32]">
        <description>x-axis sample value</description>
      </field>
      <field name="y" units="m/s/s" type="int16_t[32]">
        <description>y-axis sample value</description>
      </field>
      <field name="z" units="m/s/s" type="int16_t[32]">
        <description>z-axis sample value</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ISBH">
    <description>InertialSensor Batch Logging Header</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="N" units="" type="uint16_t">
        <description>batch sequence number</description>
      </field>
      <field name="type" units="" type="uint8_t">
        <description>indicates if this is accel or gyro data</description>
      </field>
      <field name="instance" units="" type="uint8_t">
        <description>IMU sensor instance</description>
      </field>
      <field name="mul" units="" type="uint16_t">
        <description>multiplier to be applied to samples in this batch</description>
      </field>
      <field name="smp_cnt" units="" type="uint16_t">
        <description>samples in this batch</description>
      </field>
      <field name="SampleUS" units="μs" type="uint64_t">
        <description>timestamp of first sample</description>
      </field>
      <field name="smp_rate" units="Hz" type="float">
        <description>rate at which samples have been collected</description>
      </field>
    </fields>
  </logformat>
  <logformat name="JSN1">
    <description>Log data received from JSON simulator</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup (us)</description>
      </field>
      <field name="TStamp" units="s" type="float">
        <description>Simulation's timestamp (s)</description>
      </field>
      <field name="R" units="rad" type="float">
        <description>Simulation's roll (rad)</description>
      </field>
      <field name="P" units="rad" type="float">
        <description>Simulation's pitch (rad)</description>
      </field>
      <field name="Y" units="rad" type="float">
        <description>Simulation's yaw (rad)</description>
      </field>
      <field name="GX" units="rad/s" type="float">
        <description>Simulated gyroscope, X-axis (rad/sec)</description>
      </field>
      <field name="GY" units="rad/s" type="float">
        <description>Simulated gyroscope, Y-axis (rad/sec)</description>
      </field>
      <field name="GZ" units="rad/s" type="float">
        <description>Simulated gyroscope, Z-axis (rad/sec)</description>
      </field>
    </fields>
  </logformat>
  <logformat name="JSN2">
    <description>Log data received from JSON simulator</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup (us)</description>
      </field>
      <field name="VN" units="m/s" type="float">
        <description>simulation's velocity, North-axis (m/s)</description>
      </field>
      <field name="VE" units="m/s" type="float">
        <description>simulation's velocity, East-axis (m/s)</description>
      </field>
      <field name="VD" units="m/s" type="float">
        <description>simulation's velocity, Down-axis (m/s)</description>
      </field>
      <field name="AX" units="m/s/s" type="float">
        <description>simulation's acceleration, X-axis (m/s^2)</description>
      </field>
      <field name="AY" units="m/s/s" type="float">
        <description>simulation's acceleration, Y-axis (m/s^2)</description>
      </field>
      <field name="AZ" units="m/s/s" type="float">
        <description>simulation's acceleration, Z-axis (m/s^2)</description>
      </field>
      <field name="AN" units="m/s/s" type="float">
        <description>simulation's acceleration, North (m/s^2)</description>
      </field>
      <field name="AE" units="m/s/s" type="float">
        <description>simulation's acceleration, East (m/s^2)</description>
      </field>
      <field name="AD" units="m/s/s" type="float">
        <description>simulation's acceleration, Down (m/s^2)</description>
      </field>
    </fields>
  </logformat>
  <logformat name="LAND">
    <description>Slope Landing data</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="stage" units="" type="uint8_t">
        <description>progress through landing sequence</description>
      </field>
      <field name="f1" units="" type="uint8_t">
        <description>Landing flags</description>
      </field>
      <field name="f2" units="" type="uint8_t">
        <description>Slope-specific landing flags</description>
      </field>
      <field name="slope" units="" type="float">
        <description>Slope to landing point</description>
      </field>
      <field name="slopeInit" units="" type="float">
        <description>Initial slope to landing point</description>
      </field>
      <field name="altO" units="" type="float">
        <description>Rangefinder correction</description>
      </field>
      <field name="fh" units="" type="float">
        <description>Height for flare timing.</description>
      </field>
    </fields>
  </logformat>
  <logformat name="LDET">
    <description>Land Detector State</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Flags" units="" type="uint16_t">
        <description>boolean state flags</description>
        <bitmask name="Copter::LandDetectorLoggingFlag">
          <bit name="LANDED">
            <value>1</value>
          </bit>
          <bit name="LANDED_MAYBE">
            <value>2</value>
          </bit>
          <bit name="LANDING">
            <value>4</value>
          </bit>
          <bit name="STANDBY_ACTIVE">
            <value>8</value>
          </bit>
          <bit name="WOW">
            <value>16</value>
          </bit>
          <bit name="RANGEFINDER_BELOW_2M">
            <value>32</value>
          </bit>
          <bit name="DESCENT_RATE_LOW">
            <value>64</value>
          </bit>
          <bit name="ACCEL_STATIONARY">
            <value>128</value>
          </bit>
          <bit name="LARGE_ANGLE_ERROR">
            <value>256</value>
          </bit>
          <bit name="MOTOR_AT_LOWER_LIMIT">
            <value>512</value>
          </bit>
          <bit name="THROTTLE_MIX_AT_MIN">
            <value>1024</value>
          </bit>
          <bit name="LARGE_ANGLE_REQUEST">
            <value>2048</value>
          </bit>
        </bitmask>
      </field>
      <field name="Count" units="" type="uint32_t">
        <description>landing_detector pass count</description>
      </field>
    </fields>
  </logformat>
  <logformat name="LGR">
    <description>Landing gear information</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="LandingGear" units="" type="int8_t">
        <description>Current landing gear state</description>
        <enum name="AP_LandingGear::LG_LandingGear_State">
          <element name="LG_UNKNOWN">
            <value>-1</value>
          </element>
          <element name="LG_RETRACTED">
            <value>0</value>
          </element>
          <element name="LG_DEPLOYED">
            <value>1</value>
          </element>
          <element name="LG_RETRACTING">
            <value>2</value>
          </element>
          <element name="LG_DEPLOYING">
            <value>3</value>
          </element>
        </enum>
      </field>
      <field name="WeightOnWheels" units="" type="int8_t">
        <description>Weight on wheels state</description>
        <enum name="AP_LandingGear::LG_WOW_State">
          <element name="LG_WOW_UNKNOWN">
            <value>-1</value>
          </element>
          <element name="LG_NO_WOW">
            <value>0</value>
          </element>
          <element name="LG_WOW">
            <value>1</value>
          </element>
        </enum>
      </field>
    </fields>
  </logformat>
  <logformat name="LOEC">
    <description>Gathered Loweheiser EFI/Governor telemetry</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="SI" units="" type="uint32_t">
        <description>target system ID</description>
      </field>
      <field name="CI" units="" type="uint8_t">
        <description>target component ID</description>
      </field>
      <field name="C" units="" type="uint32_t">
        <description>command</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>efi index</description>
      </field>
      <field name="ES" units="" type="uint8_t">
        <description>desired engine state (0:EFI off 1:EFI on)</description>
      </field>
      <field name="GS" units="" type="uint8_t">
        <description>desired governor state (0:Governor off 1:Governor on)</description>
      </field>
      <field name="Thr" units="" type="float">
        <description>manual throttle value</description>
      </field>
      <field name="Strtr" units="" type="uint8_t">
        <description>desired electric start</description>
      </field>
    </fields>
  </logformat>
  <logformat name="LOEG">
    <description>Gathered Loweheiser EFI/Governor telemetry</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>EFI/Gov sensor instance number</description>
      </field>
      <field name="VB" units="V" type="float">
        <description>battery voltage</description>
      </field>
      <field name="CB" units="A" type="float">
        <description>battery current</description>
      </field>
      <field name="CG" units="A" type="float">
        <description>generator current</description>
      </field>
      <field name="Th" units="%" type="float">
        <description>throttle input</description>
      </field>
      <field name="EB" units="V" type="float">
        <description>EFI battery voltage</description>
      </field>
      <field name="RPM" units="rpm" type="float">
        <description>generator RPM</description>
      </field>
      <field name="PW" units="μs" type="float">
        <description>EFI pulse-width</description>
      </field>
      <field name="FF" units="l/s" type="float">
        <description>fuel flow</description>
      </field>
      <field name="FC" units="l" type="float">
        <description>fuel consumed</description>
      </field>
      <field name="EP" units="Pa" type="float">
        <description>EFI pressure</description>
      </field>
      <field name="EMT" units="degC" type="float">
        <description>EFI manifold air temperature</description>
      </field>
      <field name="CHT" units="degC" type="float">
        <description>cylinder head temperature</description>
      </field>
      <field name="TPS" units="%" type="float">
        <description>throttle position sensor</description>
      </field>
    </fields>
  </logformat>
  <logformat name="MAG">
    <description>Information received from compasses</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>magnetometer sensor instance number</description>
      </field>
      <field name="MagX" units="mGauss" type="int16_t">
        <description>magnetic field strength in body frame</description>
      </field>
      <field name="MagY" units="mGauss" type="int16_t">
        <description>magnetic field strength in body frame</description>
      </field>
      <field name="MagZ" units="mGauss" type="int16_t">
        <description>magnetic field strength in body frame</description>
      </field>
      <field name="OfsX" units="mGauss" type="int16_t">
        <description>magnetic field offset in body frame</description>
      </field>
      <field name="OfsY" units="mGauss" type="int16_t">
        <description>magnetic field offset in body frame</description>
      </field>
      <field name="OfsZ" units="mGauss" type="int16_t">
        <description>magnetic field offset in body frame</description>
      </field>
      <field name="MOX" units="mGauss" type="int16_t">
        <description>motor interference magnetic field offset in body frame</description>
      </field>
      <field name="MOY" units="mGauss" type="int16_t">
        <description>motor interference magnetic field offset in body frame</description>
      </field>
      <field name="MOZ" units="mGauss" type="int16_t">
        <description>motor interference magnetic field offset in body frame</description>
      </field>
      <field name="Health" units="" type="uint8_t">
        <description>true if the compass is considered healthy</description>
      </field>
      <field name="S" units="μs" type="uint32_t">
        <description>time measurement was taken</description>
      </field>
    </fields>
  </logformat>
  <logformat name="MAGH">
    <description>Magnetometer high resolution data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Node" units="instance" type="uint8_t">
        <description>CAN node</description>
      </field>
      <field name="Sensor" units="" type="uint8_t">
        <description>sensor ID on node</description>
      </field>
      <field name="Bus" units="" type="uint8_t">
        <description>CAN bus</description>
      </field>
      <field name="Mx" units="" type="float">
        <description>X axis field</description>
      </field>
      <field name="My" units="" type="float">
        <description>y axis field</description>
      </field>
      <field name="Mz" units="" type="float">
        <description>z axis field</description>
      </field>
    </fields>
  </logformat>
  <logformat name="MAV">
    <description>GCS MAVLink link statistics</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="chan" units="instance" type="uint8_t">
        <description>mavlink channel number</description>
      </field>
      <field name="txp" units="" type="uint16_t">
        <description>transmitted packet count</description>
      </field>
      <field name="rxp" units="" type="uint16_t">
        <description>received packet count</description>
      </field>
      <field name="rxdp" units="" type="uint16_t">
        <description>perceived number of packets we never received</description>
      </field>
      <field name="flags" units="" type="uint8_t">
        <description>compact representation of some state of the channel</description>
        <bitmask name="GCS_MAVLINK::Flags">
          <bit name="USING_SIGNING">
            <value>1</value>
          </bit>
          <bit name="ACTIVE">
            <value>2</value>
          </bit>
          <bit name="STREAMING">
            <value>4</value>
          </bit>
          <bit name="PRIVATE">
            <value>8</value>
          </bit>
          <bit name="LOCKED">
            <value>16</value>
          </bit>
        </bitmask>
      </field>
      <field name="ss" units="ms" type="uint16_t">
        <description>stream slowdown is the number of ms being added to each message to fit within bandwidth</description>
      </field>
      <field name="tf" units="" type="uint16_t">
        <description>times buffer was full when a message was going to be sent</description>
      </field>
      <field name="mgs" units="ms" type="uint32_t">
        <description>time MAV_GCS_SYSID heartbeat (or manual control) last seen</description>
      </field>
    </fields>
  </logformat>
  <logformat name="MAVC">
    <description>MAVLink command we have just executed</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="TS" units="" type="uint32_t">
        <description>target system for command</description>
      </field>
      <field name="TC" units="" type="uint8_t">
        <description>target component for command</description>
      </field>
      <field name="SS" units="" type="uint32_t">
        <description>source system for command</description>
      </field>
      <field name="SC" units="" type="uint8_t">
        <description>source component for command</description>
      </field>
      <field name="Fr" units="" type="uint8_t">
        <description>command frame</description>
      </field>
      <field name="Cmd" units="" type="uint16_t">
        <description>mavlink command enum value</description>
      </field>
      <field name="P1" units="" type="float">
        <description>first parameter from mavlink packet</description>
      </field>
      <field name="P2" units="" type="float">
        <description>second parameter from mavlink packet</description>
      </field>
      <field name="P3" units="" type="float">
        <description>third parameter from mavlink packet</description>
      </field>
      <field name="P4" units="" type="float">
        <description>fourth parameter from mavlink packet</description>
      </field>
      <field name="X" units="" type="int32_t">
        <description>X coordinate from mavlink packet</description>
      </field>
      <field name="Y" units="" type="int32_t">
        <description>Y coordinate from mavlink packet</description>
      </field>
      <field name="Z" units="" type="float">
        <description>Z coordinate from mavlink packet</description>
      </field>
      <field name="Res" units="" type="uint8_t">
        <description>command result being returned from autopilot</description>
      </field>
      <field name="WL" units="" type="uint8_t">
        <description>true if this command arrived via a COMMAND_LONG rather than COMMAND_INT</description>
      </field>
    </fields>
  </logformat>
  <logformat name="MCU">
    <description>MCU voltage and temprature monitering</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="MTemp" units="degC" type="float">
        <description>Temperature</description>
      </field>
      <field name="MVolt" units="V" type="float">
        <description>Voltage</description>
      </field>
      <field name="MVmin" units="V" type="float">
        <description>Voltage min</description>
      </field>
      <field name="MVmax" units="V" type="float">
        <description>Voltage max</description>
      </field>
    </fields>
  </logformat>
  <logformat name="MISE">
    <description>Executed mission command information; emitted when we start to run an item</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="CTot" units="" type="uint16_t">
        <description>Total number of mission commands</description>
      </field>
      <field name="CNum" units="" type="uint16_t">
        <description>This command's offset in mission</description>
      </field>
      <field name="CId" units="" type="uint16_t">
        <description>Command type</description>
      </field>
      <field name="Prm1" units="" type="float">
        <description>Parameter 1</description>
      </field>
      <field name="Prm2" units="" type="float">
        <description>Parameter 2</description>
      </field>
      <field name="Prm3" units="" type="float">
        <description>Parameter 3</description>
      </field>
      <field name="Prm4" units="" type="float">
        <description>Parameter 4</description>
      </field>
      <field name="Lat" units="deglatitude" type="int32_t latitude/longitude">
        <description>Command latitude</description>
      </field>
      <field name="Lng" units="deglongitude" type="int32_t latitude/longitude">
        <description>Command longitude</description>
      </field>
      <field name="Alt" units="m" type="float">
        <description>Command altitude</description>
      </field>
      <field name="Frame" units="" type="uint8_t">
        <description>Frame used for position</description>
      </field>
    </fields>
  </logformat>
  <logformat name="MMO">
    <description>MMC3416 compass data</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Nx" units="" type="float">
        <description>new measurement X axis</description>
      </field>
      <field name="Ny" units="" type="float">
        <description>new measurement Y axis</description>
      </field>
      <field name="Nz" units="" type="float">
        <description>new measurement Z axis</description>
      </field>
      <field name="Ox" units="" type="float">
        <description>new offset X axis</description>
      </field>
      <field name="Oy" units="" type="float">
        <description>new offset Y axis</description>
      </field>
      <field name="Oz" units="" type="float">
        <description>new offset Z axis</description>
      </field>
    </fields>
  </logformat>
  <logformat name="MNT">
    <description>Mount's desired and actual roll, pitch and yaw angles</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>Instance number</description>
      </field>
      <field name="Mode" units="" type="uint8_t">
        <description>Mount mode</description>
      </field>
      <field name="DRoll" units="deg" type="float">
        <description>Desired roll</description>
      </field>
      <field name="Roll" units="deg" type="float">
        <description>Actual roll</description>
      </field>
      <field name="DPitch" units="deg" type="float">
        <description>Desired pitch</description>
      </field>
      <field name="Pitch" units="deg" type="float">
        <description>Actual pitch</description>
      </field>
      <field name="DYawB" units="deg" type="float">
        <description>Desired yaw in body frame</description>
      </field>
      <field name="YawB" units="deg" type="float">
        <description>Actual yaw in body frame</description>
      </field>
      <field name="DYawE" units="deg" type="float">
        <description>Desired yaw in earth frame</description>
      </field>
      <field name="YawE" units="deg" type="float">
        <description>Actual yaw in earth frame</description>
      </field>
      <field name="Dist" units="m" type="float">
        <description>Rangefinder distance</description>
      </field>
    </fields>
  </logformat>
  <logformat name="MODE">
    <description>vehicle control mode information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Mode" units="" type="uint8_t flight mode">
        <description>vehicle-specific mode number</description>
      </field>
      <field name="ModeNum" units="" type="uint8_t">
        <description>alias for Mode</description>
      </field>
      <field name="Rsn" units="" type="uint8_t">
        <description>reason for entering this mode; enumeration value</description>
        <enum name="ModeReason">
          <element name="UNKNOWN">
            <value>0</value>
          </element>
          <element name="RC_COMMAND">
            <value>1</value>
          </element>
          <element name="GCS_COMMAND">
            <value>2</value>
          </element>
          <element name="RADIO_FAILSAFE">
            <value>3</value>
          </element>
          <element name="BATTERY_FAILSAFE">
            <value>4</value>
          </element>
          <element name="GCS_FAILSAFE">
            <value>5</value>
          </element>
          <element name="EKF_FAILSAFE">
            <value>6</value>
          </element>
          <element name="GPS_GLITCH">
            <value>7</value>
          </element>
          <element name="MISSION_END">
            <value>8</value>
          </element>
          <element name="THROTTLE_LAND_ESCAPE">
            <value>9</value>
          </element>
          <element name="FENCE_BREACHED">
            <value>10</value>
          </element>
          <element name="TERRAIN_FAILSAFE">
            <value>11</value>
          </element>
          <element name="BRAKE_TIMEOUT">
            <value>12</value>
          </element>
          <element name="FLIP_COMPLETE">
            <value>13</value>
          </element>
          <element name="AVOIDANCE">
            <value>14</value>
          </element>
          <element name="AVOIDANCE_RECOVERY">
            <value>15</value>
          </element>
          <element name="THROW_COMPLETE">
            <value>16</value>
          </element>
          <element name="TERMINATE">
            <value>17</value>
          </element>
          <element name="TOY_MODE">
            <value>18</value>
          </element>
          <element name="CRASH_FAILSAFE">
            <value>19</value>
          </element>
          <element name="SOARING_FBW_B_WITH_MOTOR_RUNNING">
            <value>20</value>
          </element>
          <element name="SOARING_THERMAL_DETECTED">
            <value>21</value>
          </element>
          <element name="SOARING_THERMAL_ESTIMATE_DETERIORATED">
            <value>22</value>
          </element>
          <element name="VTOL_FAILED_TRANSITION">
            <value>23</value>
          </element>
          <element name="VTOL_FAILED_TAKEOFF">
            <value>24</value>
          </element>
          <element name="FAILSAFE">
            <value>25</value>
            <description>general failsafes, prefer specific failsafes over this as much as possible</description>
          </element>
          <element name="INITIALISED">
            <value>26</value>
          </element>
          <element name="SURFACE_COMPLETE">
            <value>27</value>
          </element>
          <element name="BAD_DEPTH">
            <value>28</value>
          </element>
          <element name="LEAK_FAILSAFE">
            <value>29</value>
          </element>
          <element name="SERVOTEST">
            <value>30</value>
          </element>
          <element name="STARTUP">
            <value>31</value>
          </element>
          <element name="SCRIPTING">
            <value>32</value>
          </element>
          <element name="UNAVAILABLE">
            <value>33</value>
          </element>
          <element name="AUTOROTATION_START">
            <value>34</value>
          </element>
          <element name="AUTOROTATION_BAILOUT">
            <value>35</value>
          </element>
          <element name="SOARING_ALT_TOO_HIGH">
            <value>36</value>
          </element>
          <element name="SOARING_ALT_TOO_LOW">
            <value>37</value>
          </element>
          <element name="SOARING_DRIFT_EXCEEDED">
            <value>38</value>
          </element>
          <element name="RTL_COMPLETE_SWITCHING_TO_VTOL_LAND_RTL">
            <value>39</value>
          </element>
          <element name="RTL_COMPLETE_SWITCHING_TO_FIXEDWING_AUTOLAND">
            <value>40</value>
          </element>
          <element name="MISSION_CMD">
            <value>41</value>
          </element>
          <element name="FRSKY_COMMAND">
            <value>42</value>
          </element>
          <element name="FENCE_RETURN_PREVIOUS_MODE">
            <value>43</value>
          </element>
          <element name="QRTL_INSTEAD_OF_RTL">
            <value>44</value>
          </element>
          <element name="AUTO_RTL_EXIT">
            <value>45</value>
          </element>
          <element name="LOITER_ALT_REACHED_QLAND">
            <value>46</value>
          </element>
          <element name="LOITER_ALT_IN_VTOL">
            <value>47</value>
          </element>
          <element name="RADIO_FAILSAFE_RECOVERY">
            <value>48</value>
          </element>
          <element name="QLAND_INSTEAD_OF_RTL">
            <value>49</value>
          </element>
          <element name="DEADRECKON_FAILSAFE">
            <value>50</value>
          </element>
          <element name="MODE_TAKEOFF_FAILSAFE">
            <value>51</value>
          </element>
          <element name="DDS_COMMAND">
            <value>52</value>
          </element>
          <element name="AUX_FUNCTION">
            <value>53</value>
          </element>
          <element name="FIXED_WING_AUTOLAND">
            <value>54</value>
          </element>
          <element name="FENCE_REENABLE">
            <value>55</value>
          </element>
        </enum>
      </field>
    </fields>
  </logformat>
  <logformat name="MON">
    <description>Main loop performance monitoring message.</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Dly" units="" type="uint32_t">
        <description>Loop delay so far</description>
      </field>
      <field name="Tsk" units="" type="int8_t">
        <description>Current task</description>
      </field>
      <field name="IErr" units="" type="uint32_t">
        <description>Internal error mask</description>
      </field>
      <field name="IErrCnt" units="" type="uint16_t">
        <description>Count of internal error occurances</description>
      </field>
      <field name="IErrLn" units="" type="uint16_t">
        <description>Internal Error line</description>
      </field>
      <field name="MM" units="" type="uint16_t">
        <description>MAVLink message currently being processed</description>
      </field>
      <field name="MC" units="" type="uint16_t">
        <description>MAVLink command currently being processed</description>
      </field>
      <field name="SmLn" units="" type="uint16_t">
        <description>If semaphore taken, line of semaphore take call</description>
      </field>
      <field name="SPICnt" units="" type="uint32_t">
        <description>count of SPI transactions</description>
      </field>
      <field name="I2CCnt" units="" type="uint32_t">
        <description>count of i2c transactions</description>
      </field>
    </fields>
  </logformat>
  <logformat name="MOTB">
    <description>Motor mixer information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="LiftMax" units="" type="float">
        <description>Maximum motor compensation gain</description>
      </field>
      <field name="BatVolt" units="" type="float">
        <description>Ratio between detected battery voltage and maximum battery voltage</description>
      </field>
      <field name="ThLimit" units="" type="float">
        <description>Throttle limit set due to battery current limitations</description>
      </field>
      <field name="ThrAvMx" units="" type="float">
        <description>Maximum average throttle that can be used to maintain attitude control, derived from throttle mix params</description>
      </field>
      <field name="ThrOut" units="" type="float">
        <description>Throttle output</description>
      </field>
      <field name="FailFlags" units="" type="uint8_t">
        <description>bit 0 motor failed, bit 1 motors balanced, should be 2 in normal flight</description>
      </field>
    </fields>
  </logformat>
  <logformat name="MSG">
    <description>Textual messages</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="ID" units="" type="uint8_t">
        <description>identifier for chunks making up a message</description>
      </field>
      <field name="Seq" units="" type="uint16_t">
        <description>chunk sequence number within message identified by ID</description>
      </field>
      <field name="Message" units="" type="char[64]">
        <description>message text</description>
      </field>
    </fields>
  </logformat>
  <logformat name="MULT">
    <description>Message mapping from single character to numeric multiplier</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Id" units="" type="int8_t">
        <description>character referenced by FMTU</description>
      </field>
      <field name="Mult" units="" type="double">
        <description>numeric multiplier</description>
      </field>
    </fields>
  </logformat>
  <logformat name="NKF0">
    <description>EKF2 beacon sensor diagnostics</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF2 core this data is for</description>
      </field>
      <field name="ID" units="" type="uint8_t">
        <description>Beacon sensor ID</description>
      </field>
      <field name="rng" units="m" type="int16_t * 100">
        <description>Beacon range</description>
      </field>
      <field name="innov" units="" type="int16_t * 100">
        <description>Beacon range innovation</description>
      </field>
      <field name="SIV" units="" type="uint16_t * 100">
        <description>sqrt of beacon range innovation variance</description>
      </field>
      <field name="TR" units="" type="uint16_t * 100">
        <description>Beacon range innovation consistency test ratio</description>
      </field>
      <field name="BPN" units="m" type="int16_t * 100">
        <description>Beacon north position</description>
      </field>
      <field name="BPE" units="m" type="int16_t * 100">
        <description>Beacon east position</description>
      </field>
      <field name="BPD" units="m" type="int16_t * 100">
        <description>Beacon down position</description>
      </field>
      <field name="OFH" units="m" type="int16_t * 100">
        <description>High estimate of vertical position offset of beacons rel to EKF origin</description>
      </field>
      <field name="OFL" units="m" type="int16_t * 100">
        <description>Low estimate of vertical position offset of beacons rel to EKF origin</description>
      </field>
      <field name="OFN" units="m" type="int16_t * 100">
        <description>always zero</description>
      </field>
      <field name="OFE" units="m" type="int16_t * 100">
        <description>always zero</description>
      </field>
      <field name="OFD" units="m" type="int16_t * 100">
        <description>always zero</description>
      </field>
    </fields>
  </logformat>
  <logformat name="NKF1">
    <description>EKF2 estimator outputs</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF2 core this data is for</description>
      </field>
      <field name="Roll" units="deg" type="int16_t * 100">
        <description>Estimated roll</description>
      </field>
      <field name="Pitch" units="deg" type="int16_t * 100">
        <description>Estimated pitch</description>
      </field>
      <field name="Yaw" units="degheading" type="uint16_t * 100">
        <description>Estimated yaw</description>
      </field>
      <field name="VN" units="m/s" type="float">
        <description>Estimated velocity (North component)</description>
      </field>
      <field name="VE" units="m/s" type="float">
        <description>Estimated velocity (East component)</description>
      </field>
      <field name="VD" units="m/s" type="float">
        <description>Estimated velocity (Down component)</description>
      </field>
      <field name="dPD" units="m/s" type="float">
        <description>Filtered derivative of vertical position (down)</description>
      </field>
      <field name="PN" units="m" type="float">
        <description>Estimated distance from origin (North component)</description>
      </field>
      <field name="PE" units="m" type="float">
        <description>Estimated distance from origin (East component)</description>
      </field>
      <field name="PD" units="m" type="float">
        <description>Estimated distance from origin (Down component)</description>
      </field>
      <field name="GX" units="deg/s" type="int16_t * 100">
        <description>Estimated gyro bias, X axis</description>
      </field>
      <field name="GY" units="deg/s" type="int16_t * 100">
        <description>Estimated gyro bias, Y axis</description>
      </field>
      <field name="GZ" units="deg/s" type="int16_t * 100">
        <description>Estimated gyro bias, Z axis</description>
      </field>
      <field name="OH" units="m" type="int32_t * 100">
        <description>Height of origin above WGS-84</description>
      </field>
    </fields>
  </logformat>
  <logformat name="NKF2">
    <description>EKF2 estimator secondary outputs</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF2 core this data is for</description>
      </field>
      <field name="AZbias" units="" type="int8_t">
        <description>Estimated accelerometer Z bias</description>
      </field>
      <field name="GSX" units="" type="int16_t * 100">
        <description>Gyro Scale Factor (X-axis)</description>
      </field>
      <field name="GSY" units="" type="int16_t * 100">
        <description>Gyro Scale Factor (Y-axis)</description>
      </field>
      <field name="GSZ" units="" type="int16_t * 100">
        <description>Gyro Scale Factor (Z-axis)</description>
      </field>
      <field name="VWN" units="m/s" type="int16_t * 100">
        <description>Estimated wind velocity (moving-to-North component)</description>
      </field>
      <field name="VWE" units="m/s" type="int16_t * 100">
        <description>Estimated wind velocity (moving-to-East component)</description>
      </field>
      <field name="MN" units="mGauss" type="int16_t">
        <description>Magnetic field strength (North component)</description>
      </field>
      <field name="ME" units="mGauss" type="int16_t">
        <description>Magnetic field strength (East component)</description>
      </field>
      <field name="MD" units="mGauss" type="int16_t">
        <description>Magnetic field strength (Down component)</description>
      </field>
      <field name="MX" units="mGauss" type="int16_t">
        <description>Magnetic field strength (body X-axis)</description>
      </field>
      <field name="MY" units="mGauss" type="int16_t">
        <description>Magnetic field strength (body Y-axis)</description>
      </field>
      <field name="MZ" units="mGauss" type="int16_t">
        <description>Magnetic field strength (body Z-axis)</description>
      </field>
      <field name="MI" units="" type="uint8_t">
        <description>Magnetometer used for data</description>
      </field>
    </fields>
  </logformat>
  <logformat name="NKF3">
    <description>EKF2 innovations</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF2 core this data is for</description>
      </field>
      <field name="IVN" units="m/s" type="int16_t * 100">
        <description>Innovation in velocity (North component)</description>
      </field>
      <field name="IVE" units="m/s" type="int16_t * 100">
        <description>Innovation in velocity (East component)</description>
      </field>
      <field name="IVD" units="m/s" type="int16_t * 100">
        <description>Innovation in velocity (Down component)</description>
      </field>
      <field name="IPN" units="m" type="int16_t * 100">
        <description>Innovation in position (North component)</description>
      </field>
      <field name="IPE" units="m" type="int16_t * 100">
        <description>Innovation in position (East component)</description>
      </field>
      <field name="IPD" units="m" type="int16_t * 100">
        <description>Innovation in position (Down component)</description>
      </field>
      <field name="IMX" units="mGauss" type="int16_t">
        <description>Innovation in magnetic field strength (X-axis component)</description>
      </field>
      <field name="IMY" units="mGauss" type="int16_t">
        <description>Innovation in magnetic field strength (Y-axis component)</description>
      </field>
      <field name="IMZ" units="mGauss" type="int16_t">
        <description>Innovation in magnetic field strength (Z-axis component)</description>
      </field>
      <field name="IYAW" units="deg" type="int16_t * 100">
        <description>Innovation in vehicle yaw</description>
      </field>
      <field name="IVT" units="UNKNOWN" type="int16_t * 100">
        <description>Innovation in true-airspeed</description>
      </field>
      <field name="RErr" units="" type="float">
        <description>Accumulated relative error of this core with respect to active primary core</description>
      </field>
      <field name="ErSc" units="" type="float">
        <description>A consolidated error score where higher numbers are less healthy</description>
      </field>
    </fields>
  </logformat>
  <logformat name="NKF4">
    <description>EKF2 variances  SV, SP, SH and SM are probably best described as 'Squared Innovation Test Ratios' where values &lt;1 tells us the measurement was accepted and &gt;1 tells us it was rejected. They represent the square of the (innovation / maximum allowed innovation) where the innovation is the difference between predicted and measured value and the maximum allowed innovation is determined from the uncertainty of the measurement, uncertainty of the prediction and scaled using the number of standard deviations set by the innovation gate parameter for that measurement, eg EK2_MAG_I_GATE, EK2_HGT_I_GATE, etc</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF2 core this data is for</description>
      </field>
      <field name="SV" units="" type="int16_t * 100">
        <description>Square root of the velocity variance</description>
      </field>
      <field name="SP" units="" type="int16_t * 100">
        <description>Square root of the position variance</description>
      </field>
      <field name="SH" units="" type="int16_t * 100">
        <description>Square root of the height variance</description>
      </field>
      <field name="SM" units="" type="int16_t * 100">
        <description>Magnetic field variance</description>
      </field>
      <field name="SVT" units="" type="int16_t * 100">
        <description>tilt error convergence metric</description>
      </field>
      <field name="errRP" units="" type="float">
        <description>Filtered error in roll/pitch estimate</description>
      </field>
      <field name="OFN" units="m" type="float">
        <description>Most recent position reset (North component)</description>
      </field>
      <field name="OFE" units="m" type="float">
        <description>Most recent position reset (East component)</description>
      </field>
      <field name="FS" units="" type="uint16_t">
        <description>Filter fault status</description>
        <bitmask name="NavFilterFaultBit">
          <bit name="BAD_QUATERNION">
            <value>1</value>
            <description>0 - quaternion attitude estimate is NaN</description>
          </bit>
          <bit name="BAD_VELOCITY">
            <value>2</value>
            <description>1 - velocity estimate is NaN</description>
          </bit>
          <bit name="BAD_XMAG">
            <value>4</value>
            <description>2 - X magnetometer measurement is bad</description>
          </bit>
          <bit name="BAD_YMAG">
            <value>8</value>
            <description>3 - Y magnetometer measurement is bad</description>
          </bit>
          <bit name="BAD_ZMAG">
            <value>16</value>
            <description>4 - Z magnetometer measurement is bad</description>
          </bit>
          <bit name="BAD_AIRSPEED">
            <value>32</value>
            <description>5 - airspeed measurement is bad</description>
          </bit>
          <bit name="BAD_SIDESLIP">
            <value>64</value>
            <description>6 - synthetic sideslip measurement is bad</description>
          </bit>
          <bit name="NOT_INITIALISED">
            <value>128</value>
            <description>7 - filter states have not been initialised</description>
          </bit>
        </bitmask>
      </field>
      <field name="TS" units="" type="uint8_t">
        <description>Filter timeout status bitmask (0:position measurement, 1:velocity measurement, 2:height measurement, 3:magnetometer measurement, 4:airspeed measurement)</description>
      </field>
      <field name="SS" units="" type="uint32_t">
        <description>Filter solution status</description>
        <bitmask name="NavFilterStatusBit">
          <bit name="ATTITUDE_VALID">
            <value>1</value>
            <description>attitude estimate valid</description>
          </bit>
          <bit name="HORIZ_VEL">
            <value>2</value>
            <description>horizontal velocity estimate valid</description>
          </bit>
          <bit name="VERT_VEL">
            <value>4</value>
            <description>vertical velocity estimate valid</description>
          </bit>
          <bit name="HORIZ_POS_REL">
            <value>8</value>
            <description>relative horizontal position estimate valid</description>
          </bit>
          <bit name="HORIZ_POS_ABS">
            <value>16</value>
            <description>absolute horizontal position estimate valid</description>
          </bit>
          <bit name="VERT_POS">
            <value>32</value>
            <description>vertical position estimate valid</description>
          </bit>
          <bit name="TERRAIN_ALT">
            <value>64</value>
            <description>terrain height estimate valid</description>
          </bit>
          <bit name="CONST_POS_MODE">
            <value>128</value>
            <description>in constant position mode</description>
          </bit>
          <bit name="PRED_HORIZ_POS_REL">
            <value>256</value>
            <description>expected good relative horizontal position estimate - used before takeoff</description>
          </bit>
          <bit name="PRED_HORIZ_POS_ABS">
            <value>512</value>
            <description>expected good absolute horizontal position estimate - used before takeoff</description>
          </bit>
          <bit name="TAKEOFF_DETECTED">
            <value>1024</value>
            <description>optical flow takeoff has been detected</description>
          </bit>
          <bit name="TAKEOFF_EXPECTED">
            <value>2048</value>
            <description>compensating for baro errors during takeoff</description>
          </bit>
          <bit name="TOUCHDOWN_EXPECTED">
            <value>4096</value>
            <description>compensating for baro errors during touchdown</description>
          </bit>
          <bit name="USING_GPS">
            <value>8192</value>
            <description>using GPS position</description>
          </bit>
          <bit name="GPS_GLITCHING">
            <value>16384</value>
            <description>GPS glitching is affecting navigation accuracy</description>
          </bit>
          <bit name="GPS_QUALITY_GOOD">
            <value>32768</value>
            <description>can use GPS for navigation</description>
          </bit>
          <bit name="INITALIZED">
            <value>65536</value>
            <description>has ever been healthy</description>
          </bit>
          <bit name="REJECTING_AIRSPEED">
            <value>131072</value>
            <description>rejecting airspeed data</description>
          </bit>
          <bit name="DEAD_RECKONING">
            <value>262144</value>
            <description>dead reckoning (e.g. no position or velocity source)</description>
          </bit>
        </bitmask>
      </field>
      <field name="GPS" units="" type="uint16_t">
        <description>Filter GPS status</description>
      </field>
      <field name="PI" units="" type="int8_t">
        <description>Primary core index</description>
      </field>
    </fields>
  </logformat>
  <logformat name="NKF5">
    <description>EKF2 Sensor innovations (primary core) and general dumping ground</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF2 core this data is for</description>
      </field>
      <field name="NI" units="" type="uint8_t">
        <description>Normalised flow variance</description>
      </field>
      <field name="FIX" units="" type="int16_t">
        <description>Optical flow LOS rate vector innovations from the main nav filter (X-axis)</description>
      </field>
      <field name="FIY" units="" type="int16_t">
        <description>Optical flow LOS rate vector innovations from the main nav filter (Y-axis)</description>
      </field>
      <field name="AFI" units="" type="int16_t">
        <description>Optical flow LOS rate innovation from terrain offset estimator</description>
      </field>
      <field name="HAGL" units="m" type="int16_t * 100">
        <description>Height above ground level</description>
      </field>
      <field name="offset" units="UNKNOWN" type="int16_t * 100">
        <description>Estimated vertical position of the terrain relative to the nav filter zero datum</description>
      </field>
      <field name="RI" units="UNKNOWN" type="int16_t * 100">
        <description>Range finder innovations</description>
      </field>
      <field name="rng" units="UNKNOWN" type="uint16_t * 100">
        <description>Measured range</description>
      </field>
      <field name="Herr" units="m" type="uint16_t * 100">
        <description>Filter ground offset state error</description>
      </field>
      <field name="eAng" units="rad" type="float">
        <description>Magnitude of angular error</description>
      </field>
      <field name="eVel" units="m/s" type="float">
        <description>Magnitude of velocity error</description>
      </field>
      <field name="ePos" units="m" type="float">
        <description>Magnitude of position error</description>
      </field>
    </fields>
  </logformat>
  <logformat name="NKQ">
    <description>EKF2 quaternion defining the rotation from NED to XYZ (autopilot) axes</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF2 core this data is for</description>
      </field>
      <field name="Q1" units="" type="float">
        <description>Quaternion a term</description>
      </field>
      <field name="Q2" units="" type="float">
        <description>Quaternion b term</description>
      </field>
      <field name="Q3" units="" type="float">
        <description>Quaternion c term</description>
      </field>
      <field name="Q4" units="" type="float">
        <description>Quaternion d term</description>
      </field>
    </fields>
  </logformat>
  <logformat name="NKT">
    <description>EKF2 timing information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF core this message instance applies to</description>
      </field>
      <field name="Cnt" units="s" type="uint32_t">
        <description>count of samples used to create this message</description>
      </field>
      <field name="IMUMin" units="s" type="float">
        <description>smallest IMU sample interval</description>
      </field>
      <field name="IMUMax" units="s" type="float">
        <description>largest IMU sample interval</description>
      </field>
      <field name="EKFMin" units="s" type="float">
        <description>low-passed achieved average time step rate for the EKF (minimum)</description>
      </field>
      <field name="EKFMax" units="s" type="float">
        <description>low-passed achieved average time step rate for the EKF (maximum)</description>
      </field>
      <field name="AngMin" units="s" type="float">
        <description>accumulated measurement time interval for the delta angle (minimum)</description>
      </field>
      <field name="AngMax" units="s" type="float">
        <description>accumulated measurement time interval for the delta angle (maximum)</description>
      </field>
      <field name="VMin" units="s" type="float">
        <description>accumulated measurement time interval for the delta velocity (minimum)</description>
      </field>
      <field name="VMax" units="s" type="float">
        <description>accumulated measurement time interval for the delta velocity (maximum)</description>
      </field>
    </fields>
  </logformat>
  <logformat name="NKY0">
    <description>EKF Yaw Estimator States</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF core this data is for</description>
      </field>
      <field name="YC" units="degheading" type="float">
        <description>GSF yaw estimate (deg)</description>
      </field>
      <field name="YCS" units="deg" type="float">
        <description>GSF yaw estimate 1-Sigma uncertainty (deg)</description>
      </field>
      <field name="Y0" units="degheading" type="float">
        <description>Yaw estimate from individual EKF filter 0 (deg)</description>
      </field>
      <field name="Y1" units="degheading" type="float">
        <description>Yaw estimate from individual EKF filter 1 (deg)</description>
      </field>
      <field name="Y2" units="degheading" type="float">
        <description>Yaw estimate from individual EKF filter 2 (deg)</description>
      </field>
      <field name="Y3" units="degheading" type="float">
        <description>Yaw estimate from individual EKF filter 3 (deg)</description>
      </field>
      <field name="Y4" units="degheading" type="float">
        <description>Yaw estimate from individual EKF filter 4 (deg)</description>
      </field>
      <field name="W0" units="" type="float">
        <description>Weighting applied to yaw estimate from individual EKF filter 0</description>
      </field>
      <field name="W1" units="" type="float">
        <description>Weighting applied to yaw estimate from individual EKF filter 1</description>
      </field>
      <field name="W2" units="" type="float">
        <description>Weighting applied to yaw estimate from individual EKF filter 2</description>
      </field>
      <field name="W3" units="" type="float">
        <description>Weighting applied to yaw estimate from individual EKF filter 3</description>
      </field>
      <field name="W4" units="" type="float">
        <description>Weighting applied to yaw estimate from individual EKF filter 4</description>
      </field>
    </fields>
  </logformat>
  <logformat name="NKY1">
    <description>EKF Yaw Estimator Innovations</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF core this data is for</description>
      </field>
      <field name="IVN0" units="m/s" type="float">
        <description>North velocity innovation from individual EKF filter 0 (m/s)</description>
      </field>
      <field name="IVN1" units="m/s" type="float">
        <description>North velocity innovation from individual EKF filter 1 (m/s)</description>
      </field>
      <field name="IVN2" units="m/s" type="float">
        <description>North velocity innovation from individual EKF filter 2 (m/s)</description>
      </field>
      <field name="IVN3" units="m/s" type="float">
        <description>North velocity innovation from individual EKF filter 3 (m/s)</description>
      </field>
      <field name="IVN4" units="m/s" type="float">
        <description>North velocity innovation from individual EKF filter 4 (m/s)</description>
      </field>
      <field name="IVE0" units="m/s" type="float">
        <description>East velocity innovation from individual EKF filter 0 (m/s)</description>
      </field>
      <field name="IVE1" units="m/s" type="float">
        <description>East velocity innovation from individual EKF filter 1 (m/s)</description>
      </field>
      <field name="IVE2" units="m/s" type="float">
        <description>East velocity innovation from individual EKF filter 2 (m/s)</description>
      </field>
      <field name="IVE3" units="m/s" type="float">
        <description>East velocity innovation from individual EKF filter 3 (m/s)</description>
      </field>
      <field name="IVE4" units="m/s" type="float">
        <description>East velocity innovation from individual EKF filter 4 (m/s)</description>
      </field>
    </fields>
  </logformat>
  <logformat name="NVF">
    <description>Named Value Float messages; messages sent to GCS via NAMED_VALUE_FLOAT</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Name" units="instance" type="char[16]">
        <description>Name of float</description>
      </field>
      <field name="Value" units="" type="float">
        <description>Value of float</description>
      </field>
    </fields>
  </logformat>
  <logformat name="NVI">
    <description>Named Value Int messages; messages sent to GCS via NAMED_VALUE_INT</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Name" units="instance" type="char[16]">
        <description>Name of int</description>
      </field>
      <field name="Value" units="" type="float">
        <description>Value of int</description>
      </field>
    </fields>
  </logformat>
  <logformat name="NVS">
    <description>Named Value String messages; messages sent to GCS via NAMED_VALUE_STRING</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Name" units="instance" type="char[16]">
        <description>Name of string</description>
      </field>
      <field name="Value" units="" type="char[64]">
        <description>Value of string</description>
      </field>
    </fields>
  </logformat>
  <logformat name="OABR">
    <description>Object avoidance (Bendy Ruler) diagnostics</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Type" units="" type="uint8_t">
        <description>Type of BendyRuler currently active</description>
      </field>
      <field name="Act" units="" type="uint8_t">
        <description>True if Bendy Ruler avoidance is being used</description>
      </field>
      <field name="DYaw" units="deg" type="uint16_t">
        <description>Best yaw chosen to avoid obstacle</description>
      </field>
      <field name="Yaw" units="deg" type="uint16_t">
        <description>Current vehicle yaw</description>
      </field>
      <field name="DP" units="deg" type="uint16_t">
        <description>Desired pitch chosen to avoid obstacle</description>
      </field>
      <field name="RChg" units="" type="uint8_t">
        <description>True if BendyRuler resisted changing bearing and continued in last calculated bearing</description>
      </field>
      <field name="Mar" units="m" type="float">
        <description>Margin from path to obstacle on best yaw chosen</description>
      </field>
      <field name="DLt" units="deglatitude" type="int32_t latitude/longitude">
        <description>Destination latitude</description>
      </field>
      <field name="DLg" units="deglongitude" type="int32_t latitude/longitude">
        <description>Destination longitude</description>
      </field>
      <field name="DAlt" units="m" type="float">
        <description>Desired alt above EKF Origin</description>
      </field>
      <field name="OLt" units="deglatitude" type="int32_t latitude/longitude">
        <description>Intermediate location chosen for avoidance</description>
      </field>
      <field name="OLg" units="deglongitude" type="int32_t latitude/longitude">
        <description>Intermediate location chosen for avoidance</description>
      </field>
      <field name="OAlt" units="m" type="float">
        <description>Intermediate alt chosen for avoidance above EKF origin</description>
      </field>
    </fields>
  </logformat>
  <logformat name="OADJ">
    <description>Object avoidance (Dijkstra) diagnostics</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="State" units="" type="uint8_t">
        <description>Dijkstra avoidance library state</description>
      </field>
      <field name="Err" units="" type="uint8_t">
        <description>Dijkstra library error condition</description>
      </field>
      <field name="CurrPoint" units="" type="uint8_t">
        <description>Destination point in calculated path to destination</description>
      </field>
      <field name="TotPoints" units="" type="uint8_t">
        <description>Number of points in path to destination</description>
      </field>
      <field name="DLat" units="deglatitude" type="int32_t latitude/longitude">
        <description>Destination latitude</description>
      </field>
      <field name="DLng" units="deglongitude" type="int32_t latitude/longitude">
        <description>Destination longitude</description>
      </field>
      <field name="OALat" units="deglatitude" type="int32_t latitude/longitude">
        <description>Object Avoidance chosen destination point latitude</description>
      </field>
      <field name="OALng" units="deglongitude" type="int32_t latitude/longitude">
        <description>Object Avoidance chosen destination point longitude</description>
      </field>
    </fields>
  </logformat>
  <logformat name="OAVG">
    <description>Object avoidance path planning visgraph points</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="version" units="" type="uint8_t">
        <description>Visgraph version, increments each time the visgraph is re-generated</description>
      </field>
      <field name="point_num" units="" type="uint8_t">
        <description>point number in visgraph</description>
      </field>
      <field name="Lat" units="deglatitude" type="int32_t latitude/longitude">
        <description>Latitude</description>
      </field>
      <field name="Lon" units="deglongitude" type="int32_t latitude/longitude">
        <description>longitude</description>
      </field>
    </fields>
  </logformat>
  <logformat name="OF">
    <description>Optical flow sensor data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Qual" units="" type="uint8_t">
        <description>Estimated sensor data quality</description>
      </field>
      <field name="flowX" units="rad/s" type="float">
        <description>Sensor flow rate, X-axis</description>
      </field>
      <field name="flowY" units="rad/s" type="float">
        <description>Sensor flow rate,Y-axis</description>
      </field>
      <field name="bodyX" units="rad/s" type="float">
        <description>derived rotational velocity, X-axis</description>
      </field>
      <field name="bodyY" units="rad/s" type="float">
        <description>derived rotational velocity, Y-axis</description>
      </field>
    </fields>
  </logformat>
  <logformat name="OFCA">
    <description>Optical Flow Calibration sample</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Axis" units="instance" type="uint8_t">
        <description>Axis (X=0 Y=1)</description>
      </field>
      <field name="Num" units="" type="uint8_t">
        <description>Sample number</description>
      </field>
      <field name="FRate" units="rad/s" type="float">
        <description>Flow rate</description>
      </field>
      <field name="BRate" units="rad/s" type="float">
        <description>Body rate</description>
      </field>
      <field name="LPred" units="rad/s" type="float">
        <description>Los pred</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ORGN">
    <description>Vehicle navigation origin or other notable position</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Type" units="instance" type="uint8_t">
        <description>Position type</description>
        <enum name="AP_AHRS::LogOriginType">
          <element name="ekf_origin">
            <value>0</value>
          </element>
          <element name="ahrs_home">
            <value>1</value>
          </element>
        </enum>
      </field>
      <field name="Lat" units="deglatitude" type="int32_t latitude/longitude">
        <description>Position latitude</description>
      </field>
      <field name="Lng" units="deglongitude" type="int32_t latitude/longitude">
        <description>Position longitude</description>
      </field>
      <field name="Alt" units="m" type="int32_t * 100">
        <description>Position altitude</description>
      </field>
    </fields>
  </logformat>
  <logformat name="PARM">
    <description>parameter value</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Name" units="" type="char[16]">
        <description>parameter name</description>
      </field>
      <field name="Value" units="" type="float">
        <description>parameter value</description>
      </field>
      <field name="Default" units="" type="float">
        <description>default parameter value for this board and config</description>
      </field>
    </fields>
  </logformat>
  <logformat name="PIDA">
    <description>Proportional/Integral/Derivative gain values for vertical acceleration</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Tar" units="" type="float">
        <description>desired value</description>
      </field>
      <field name="Act" units="" type="float">
        <description>achieved value</description>
      </field>
      <field name="Err" units="" type="float">
        <description>error between target and achieved</description>
      </field>
      <field name="P" units="" type="float">
        <description>proportional part of PID</description>
      </field>
      <field name="I" units="" type="float">
        <description>integral part of PID</description>
      </field>
      <field name="D" units="" type="float">
        <description>derivative part of PID</description>
      </field>
      <field name="FF" units="" type="float">
        <description>controller feed-forward portion of response</description>
      </field>
      <field name="DFF" units="" type="float">
        <description>controller derivative feed-forward portion of response</description>
      </field>
      <field name="Dmod" units="" type="float">
        <description>scaler applied to D gain to reduce limit cycling</description>
      </field>
      <field name="SRate" units="" type="float">
        <description>slew rate used in slew limiter</description>
      </field>
      <field name="Flags" units="" type="uint8_t">
        <description>bitmask of PID state flags</description>
        <bitmask name="log_PID_Flags">
          <bit name="LIMIT">
            <value>1</value>
            <description>true if the output is saturated, I term anti windup is active</description>
          </bit>
          <bit name="PD_SUM_LIMIT">
            <value>2</value>
            <description>true if the PD sum limit is active</description>
          </bit>
          <bit name="RESET">
            <value>4</value>
            <description>true if the controller was reset</description>
          </bit>
          <bit name="I_TERM_SET">
            <value>8</value>
            <description>true if the I term has been set externally including reseting to 0</description>
          </bit>
        </bitmask>
      </field>
    </fields>
  </logformat>
  <logformat name="PIDE">
    <description>Proportional/Integral/Derivative gain values for East/West velocity</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Tar" units="" type="float">
        <description>desired value</description>
      </field>
      <field name="Act" units="" type="float">
        <description>achieved value</description>
      </field>
      <field name="Err" units="" type="float">
        <description>error between target and achieved</description>
      </field>
      <field name="P" units="" type="float">
        <description>proportional part of PID</description>
      </field>
      <field name="I" units="" type="float">
        <description>integral part of PID</description>
      </field>
      <field name="D" units="" type="float">
        <description>derivative part of PID</description>
      </field>
      <field name="FF" units="" type="float">
        <description>controller feed-forward portion of response</description>
      </field>
      <field name="DFF" units="" type="float">
        <description>controller derivative feed-forward portion of response</description>
      </field>
      <field name="Dmod" units="" type="float">
        <description>scaler applied to D gain to reduce limit cycling</description>
      </field>
      <field name="SRate" units="" type="float">
        <description>slew rate used in slew limiter</description>
      </field>
      <field name="Flags" units="" type="uint8_t">
        <description>bitmask of PID state flags</description>
        <bitmask name="log_PID_Flags">
          <bit name="LIMIT">
            <value>1</value>
            <description>true if the output is saturated, I term anti windup is active</description>
          </bit>
          <bit name="PD_SUM_LIMIT">
            <value>2</value>
            <description>true if the PD sum limit is active</description>
          </bit>
          <bit name="RESET">
            <value>4</value>
            <description>true if the controller was reset</description>
          </bit>
          <bit name="I_TERM_SET">
            <value>8</value>
            <description>true if the I term has been set externally including reseting to 0</description>
          </bit>
        </bitmask>
      </field>
    </fields>
  </logformat>
  <logformat name="PIDN">
    <description>Proportional/Integral/Derivative gain values for North/South velocity</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Tar" units="" type="float">
        <description>desired value</description>
      </field>
      <field name="Act" units="" type="float">
        <description>achieved value</description>
      </field>
      <field name="Err" units="" type="float">
        <description>error between target and achieved</description>
      </field>
      <field name="P" units="" type="float">
        <description>proportional part of PID</description>
      </field>
      <field name="I" units="" type="float">
        <description>integral part of PID</description>
      </field>
      <field name="D" units="" type="float">
        <description>derivative part of PID</description>
      </field>
      <field name="FF" units="" type="float">
        <description>controller feed-forward portion of response</description>
      </field>
      <field name="DFF" units="" type="float">
        <description>controller derivative feed-forward portion of response</description>
      </field>
      <field name="Dmod" units="" type="float">
        <description>scaler applied to D gain to reduce limit cycling</description>
      </field>
      <field name="SRate" units="" type="float">
        <description>slew rate used in slew limiter</description>
      </field>
      <field name="Flags" units="" type="uint8_t">
        <description>bitmask of PID state flags</description>
        <bitmask name="log_PID_Flags">
          <bit name="LIMIT">
            <value>1</value>
            <description>true if the output is saturated, I term anti windup is active</description>
          </bit>
          <bit name="PD_SUM_LIMIT">
            <value>2</value>
            <description>true if the PD sum limit is active</description>
          </bit>
          <bit name="RESET">
            <value>4</value>
            <description>true if the controller was reset</description>
          </bit>
          <bit name="I_TERM_SET">
            <value>8</value>
            <description>true if the I term has been set externally including reseting to 0</description>
          </bit>
        </bitmask>
      </field>
    </fields>
  </logformat>
  <logformat name="PIDP">
    <description>Proportional/Integral/Derivative gain values for Pitch rate</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Tar" units="" type="float">
        <description>desired value</description>
      </field>
      <field name="Act" units="" type="float">
        <description>achieved value</description>
      </field>
      <field name="Err" units="" type="float">
        <description>error between target and achieved</description>
      </field>
      <field name="P" units="" type="float">
        <description>proportional part of PID</description>
      </field>
      <field name="I" units="" type="float">
        <description>integral part of PID</description>
      </field>
      <field name="D" units="" type="float">
        <description>derivative part of PID</description>
      </field>
      <field name="FF" units="" type="float">
        <description>controller feed-forward portion of response</description>
      </field>
      <field name="DFF" units="" type="float">
        <description>controller derivative feed-forward portion of response</description>
      </field>
      <field name="Dmod" units="" type="float">
        <description>scaler applied to D gain to reduce limit cycling</description>
      </field>
      <field name="SRate" units="" type="float">
        <description>slew rate used in slew limiter</description>
      </field>
      <field name="Flags" units="" type="uint8_t">
        <description>bitmask of PID state flags</description>
        <bitmask name="log_PID_Flags">
          <bit name="LIMIT">
            <value>1</value>
            <description>true if the output is saturated, I term anti windup is active</description>
          </bit>
          <bit name="PD_SUM_LIMIT">
            <value>2</value>
            <description>true if the PD sum limit is active</description>
          </bit>
          <bit name="RESET">
            <value>4</value>
            <description>true if the controller was reset</description>
          </bit>
          <bit name="I_TERM_SET">
            <value>8</value>
            <description>true if the I term has been set externally including reseting to 0</description>
          </bit>
        </bitmask>
      </field>
    </fields>
  </logformat>
  <logformat name="PIDR">
    <description>Proportional/Integral/Derivative gain values for Roll rate</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Tar" units="" type="float">
        <description>desired value</description>
      </field>
      <field name="Act" units="" type="float">
        <description>achieved value</description>
      </field>
      <field name="Err" units="" type="float">
        <description>error between target and achieved</description>
      </field>
      <field name="P" units="" type="float">
        <description>proportional part of PID</description>
      </field>
      <field name="I" units="" type="float">
        <description>integral part of PID</description>
      </field>
      <field name="D" units="" type="float">
        <description>derivative part of PID</description>
      </field>
      <field name="FF" units="" type="float">
        <description>controller feed-forward portion of response</description>
      </field>
      <field name="DFF" units="" type="float">
        <description>controller derivative feed-forward portion of response</description>
      </field>
      <field name="Dmod" units="" type="float">
        <description>scaler applied to D gain to reduce limit cycling</description>
      </field>
      <field name="SRate" units="" type="float">
        <description>slew rate used in slew limiter</description>
      </field>
      <field name="Flags" units="" type="uint8_t">
        <description>bitmask of PID state flags</description>
        <bitmask name="log_PID_Flags">
          <bit name="LIMIT">
            <value>1</value>
            <description>true if the output is saturated, I term anti windup is active</description>
          </bit>
          <bit name="PD_SUM_LIMIT">
            <value>2</value>
            <description>true if the PD sum limit is active</description>
          </bit>
          <bit name="RESET">
            <value>4</value>
            <description>true if the controller was reset</description>
          </bit>
          <bit name="I_TERM_SET">
            <value>8</value>
            <description>true if the I term has been set externally including reseting to 0</description>
          </bit>
        </bitmask>
      </field>
    </fields>
  </logformat>
  <logformat name="PIDS">
    <description>Proportional/Integral/Derivative gain values for ground steering yaw rate</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Tar" units="" type="float">
        <description>desired value</description>
      </field>
      <field name="Act" units="" type="float">
        <description>achieved value</description>
      </field>
      <field name="Err" units="" type="float">
        <description>error between target and achieved</description>
      </field>
      <field name="P" units="" type="float">
        <description>proportional part of PID</description>
      </field>
      <field name="I" units="" type="float">
        <description>integral part of PID</description>
      </field>
      <field name="D" units="" type="float">
        <description>derivative part of PID</description>
      </field>
      <field name="FF" units="" type="float">
        <description>controller feed-forward portion of response</description>
      </field>
      <field name="DFF" units="" type="float">
        <description>controller derivative feed-forward portion of response</description>
      </field>
      <field name="Dmod" units="" type="float">
        <description>scaler applied to D gain to reduce limit cycling</description>
      </field>
      <field name="SRate" units="" type="float">
        <description>slew rate used in slew limiter</description>
      </field>
      <field name="Flags" units="" type="uint8_t">
        <description>bitmask of PID state flags</description>
        <bitmask name="log_PID_Flags">
          <bit name="LIMIT">
            <value>1</value>
            <description>true if the output is saturated, I term anti windup is active</description>
          </bit>
          <bit name="PD_SUM_LIMIT">
            <value>2</value>
            <description>true if the PD sum limit is active</description>
          </bit>
          <bit name="RESET">
            <value>4</value>
            <description>true if the controller was reset</description>
          </bit>
          <bit name="I_TERM_SET">
            <value>8</value>
            <description>true if the I term has been set externally including reseting to 0</description>
          </bit>
        </bitmask>
      </field>
    </fields>
  </logformat>
  <logformat name="PIDW">
    <description>Proportional/Integral/Derivative gain values for wheel rate</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Tar" units="" type="float">
        <description>desired value</description>
      </field>
      <field name="Act" units="" type="float">
        <description>achieved value</description>
      </field>
      <field name="Err" units="" type="float">
        <description>error between target and achieved</description>
      </field>
      <field name="P" units="" type="float">
        <description>proportional part of PID</description>
      </field>
      <field name="I" units="" type="float">
        <description>integral part of PID</description>
      </field>
      <field name="D" units="" type="float">
        <description>derivative part of PID</description>
      </field>
      <field name="FF" units="" type="float">
        <description>controller feed-forward portion of response</description>
      </field>
      <field name="DFF" units="" type="float">
        <description>controller derivative feed-forward portion of response</description>
      </field>
      <field name="Dmod" units="" type="float">
        <description>scaler applied to D gain to reduce limit cycling</description>
      </field>
      <field name="SRate" units="" type="float">
        <description>slew rate used in slew limiter</description>
      </field>
      <field name="Flags" units="" type="uint8_t">
        <description>bitmask of PID state flags</description>
        <bitmask name="log_PID_Flags">
          <bit name="LIMIT">
            <value>1</value>
            <description>true if the output is saturated, I term anti windup is active</description>
          </bit>
          <bit name="PD_SUM_LIMIT">
            <value>2</value>
            <description>true if the PD sum limit is active</description>
          </bit>
          <bit name="RESET">
            <value>4</value>
            <description>true if the controller was reset</description>
          </bit>
          <bit name="I_TERM_SET">
            <value>8</value>
            <description>true if the I term has been set externally including reseting to 0</description>
          </bit>
        </bitmask>
      </field>
    </fields>
  </logformat>
  <logformat name="PIDY">
    <description>Proportional/Integral/Derivative gain values for Yaw rate</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Tar" units="" type="float">
        <description>desired value</description>
      </field>
      <field name="Act" units="" type="float">
        <description>achieved value</description>
      </field>
      <field name="Err" units="" type="float">
        <description>error between target and achieved</description>
      </field>
      <field name="P" units="" type="float">
        <description>proportional part of PID</description>
      </field>
      <field name="I" units="" type="float">
        <description>integral part of PID</description>
      </field>
      <field name="D" units="" type="float">
        <description>derivative part of PID</description>
      </field>
      <field name="FF" units="" type="float">
        <description>controller feed-forward portion of response</description>
      </field>
      <field name="DFF" units="" type="float">
        <description>controller derivative feed-forward portion of response</description>
      </field>
      <field name="Dmod" units="" type="float">
        <description>scaler applied to D gain to reduce limit cycling</description>
      </field>
      <field name="SRate" units="" type="float">
        <description>slew rate used in slew limiter</description>
      </field>
      <field name="Flags" units="" type="uint8_t">
        <description>bitmask of PID state flags</description>
        <bitmask name="log_PID_Flags">
          <bit name="LIMIT">
            <value>1</value>
            <description>true if the output is saturated, I term anti windup is active</description>
          </bit>
          <bit name="PD_SUM_LIMIT">
            <value>2</value>
            <description>true if the PD sum limit is active</description>
          </bit>
          <bit name="RESET">
            <value>4</value>
            <description>true if the controller was reset</description>
          </bit>
          <bit name="I_TERM_SET">
            <value>8</value>
            <description>true if the I term has been set externally including reseting to 0</description>
          </bit>
        </bitmask>
      </field>
    </fields>
  </logformat>
  <logformat name="PL">
    <description>Precision Landing messages</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Heal" units="" type="uint8_t">
        <description>True if Precision Landing is healthy</description>
      </field>
      <field name="TAcq" units="" type="uint8_t">
        <description>True if landing target is detected</description>
      </field>
      <field name="pX" units="m" type="float">
        <description>Target position relative to vehicle, X-Axis (0 if target not found)</description>
      </field>
      <field name="pY" units="m" type="float">
        <description>Target position relative to vehicle, Y-Axis (0 if target not found)</description>
      </field>
      <field name="vX" units="m/s" type="float">
        <description>Target velocity relative to vehicle, X-Axis (0 if target not found)</description>
      </field>
      <field name="vY" units="m/s" type="float">
        <description>Target velocity relative to vehicle, Y-Axis (0 if target not found)</description>
      </field>
      <field name="mX" units="m" type="float">
        <description>Target's relative to origin position as 3-D Vector, X-Axis</description>
      </field>
      <field name="mY" units="m" type="float">
        <description>Target's relative to origin position as 3-D Vector, Y-Axis</description>
      </field>
      <field name="mZ" units="m" type="float">
        <description>Target's relative to origin position as 3-D Vector, Z-Axis</description>
      </field>
      <field name="LastMeasMS" units="ms" type="uint32_t">
        <description>Time when target was last detected</description>
      </field>
      <field name="EKFOutl" units="" type="uint32_t">
        <description>EKF's outlier count</description>
      </field>
      <field name="Est" units="" type="uint8_t">
        <description>Type of estimator used</description>
      </field>
    </fields>
  </logformat>
  <logformat name="PM">
    <description>autopilot system performance and general data dumping ground</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="LR" units="Hz" type="uint16_t">
        <description>Main loop rate</description>
      </field>
      <field name="NLon" units="" type="uint16_t">
        <description>Number of long loops detected</description>
      </field>
      <field name="NL" units="" type="uint16_t">
        <description>Number of measurement loops for this message</description>
      </field>
      <field name="MaxT" units="" type="uint32_t">
        <description>Maximum loop time</description>
      </field>
      <field name="Mem" units="B" type="uint32_t">
        <description>Free memory available</description>
      </field>
      <field name="Load" units="d%" type="uint16_t">
        <description>System processor load</description>
      </field>
      <field name="ErrL" units="" type="uint16_t">
        <description>Internal error line number; last line number on which a internal error was detected</description>
      </field>
      <field name="InE" units="" type="uint32_t">
        <description>Internal error mask; which internal errors have been detected</description>
        <bitmask name="AP_InternalError::error_t">
          <bit name="logger_mapfailure">
            <value>1</value>
          </bit>
          <bit name="logger_missing_logstructure">
            <value>2</value>
          </bit>
          <bit name="logger_logwrite_missingfmt">
            <value>4</value>
          </bit>
          <bit name="logger_too_many_deletions">
            <value>8</value>
          </bit>
          <bit name="logger_bad_getfilename">
            <value>16</value>
          </bit>
          <bit name="panic">
            <value>32</value>
          </bit>
          <bit name="logger_flushing_without_sem">
            <value>64</value>
          </bit>
          <bit name="logger_bad_current_block">
            <value>128</value>
          </bit>
          <bit name="logger_blockcount_mismatch">
            <value>256</value>
          </bit>
          <bit name="logger_dequeue_failure">
            <value>512</value>
          </bit>
          <bit name="constraining_nan">
            <value>1024</value>
          </bit>
          <bit name="watchdog_reset">
            <value>2048</value>
          </bit>
          <bit name="iomcu_reset">
            <value>4096</value>
          </bit>
          <bit name="iomcu_fail">
            <value>8192</value>
          </bit>
          <bit name="spi_fail">
            <value>16384</value>
          </bit>
          <bit name="main_loop_stuck">
            <value>32768</value>
          </bit>
          <bit name="gcs_bad_missionprotocol_link">
            <value>65536</value>
          </bit>
          <bit name="bitmask_range">
            <value>131072</value>
          </bit>
          <bit name="gcs_offset">
            <value>262144</value>
          </bit>
          <bit name="i2c_isr">
            <value>524288</value>
          </bit>
          <bit name="flow_of_control">
            <value>1048576</value>
          </bit>
          <bit name="switch_full_sector_recursion">
            <value>2097152</value>
          </bit>
          <bit name="bad_rotation">
            <value>4194304</value>
          </bit>
          <bit name="stack_overflow">
            <value>8388608</value>
          </bit>
          <bit name="imu_reset">
            <value>16777216</value>
          </bit>
          <bit name="gpio_isr">
            <value>33554432</value>
          </bit>
          <bit name="mem_guard">
            <value>67108864</value>
          </bit>
          <bit name="dma_fail">
            <value>134217728</value>
          </bit>
          <bit name="params_restored">
            <value>268435456</value>
          </bit>
          <bit name="invalid_arg_or_result">
            <value>536870912</value>
          </bit>
          <bit name="__LAST__">
            <value>1073741824</value>
          </bit>
        </bitmask>
      </field>
      <field name="ErC" units="" type="uint32_t">
        <description>Internal error count; how many internal errors have been detected</description>
      </field>
      <field name="SPIC" units="" type="uint32_t">
        <description>Number of SPI transactions processed</description>
      </field>
      <field name="I2CC" units="" type="uint32_t">
        <description>Number of i2c transactions processed</description>
      </field>
      <field name="I2CI" units="" type="uint32_t">
        <description>Number of i2c interrupts serviced</description>
      </field>
      <field name="Ex" units="μs" type="uint32_t">
        <description>number of microseconds being added to each loop to address scheduler overruns</description>
      </field>
      <field name="R" units="μs" type="uint64_t">
        <description>RTC time, time since Unix epoch</description>
      </field>
    </fields>
  </logformat>
  <logformat name="POS">
    <description>Canonical vehicle position</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Lat" units="deglatitude" type="int32_t latitude/longitude">
        <description>Canonical vehicle latitude</description>
      </field>
      <field name="Lng" units="deglongitude" type="int32_t latitude/longitude">
        <description>Canonical vehicle longitude</description>
      </field>
      <field name="Alt" units="m" type="float">
        <description>Canonical vehicle altitude</description>
      </field>
      <field name="RelHomeAlt" units="m" type="float">
        <description>Canonical vehicle altitude relative to home</description>
      </field>
      <field name="RelOriginAlt" units="m" type="float">
        <description>Canonical vehicle altitude relative to navigation origin</description>
      </field>
    </fields>
  </logformat>
  <logformat name="POWR">
    <description>System power information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Vcc" units="V" type="float">
        <description>Flight board voltage</description>
      </field>
      <field name="VServo" units="V" type="float">
        <description>Servo rail voltage</description>
      </field>
      <field name="Flags" units="" type="uint16_t">
        <description>System power flags</description>
        <bitmask name="AP_HAL::AnalogIn::PowerStatusFlag">
          <bit name="BRICK_VALID">
            <value>1</value>
            <description>main brick power supply valid</description>
          </bit>
          <bit name="SERVO_VALID">
            <value>2</value>
            <description>main servo power supply valid for FMU</description>
          </bit>
          <bit name="USB_CONNECTED">
            <value>4</value>
            <description>USB power is connected</description>
          </bit>
          <bit name="PERIPH_OVERCURRENT">
            <value>8</value>
            <description>peripheral supply is in over-current state</description>
          </bit>
          <bit name="PERIPH_HIPOWER_OVERCURRENT">
            <value>16</value>
            <description>hi-power peripheral supply is in over-current state</description>
          </bit>
          <bit name="CHANGED">
            <value>32</value>
            <description>Power status has changed since boot</description>
          </bit>
        </bitmask>
      </field>
      <field name="AccFlags" units="" type="uint16_t">
        <description>Accumulated System power flags; all flags which have ever been set</description>
        <bitmask name="AP_HAL::AnalogIn::PowerStatusFlag">
          <bit name="BRICK_VALID">
            <value>1</value>
            <description>main brick power supply valid</description>
          </bit>
          <bit name="SERVO_VALID">
            <value>2</value>
            <description>main servo power supply valid for FMU</description>
          </bit>
          <bit name="USB_CONNECTED">
            <value>4</value>
            <description>USB power is connected</description>
          </bit>
          <bit name="PERIPH_OVERCURRENT">
            <value>8</value>
            <description>peripheral supply is in over-current state</description>
          </bit>
          <bit name="PERIPH_HIPOWER_OVERCURRENT">
            <value>16</value>
            <description>hi-power peripheral supply is in over-current state</description>
          </bit>
          <bit name="CHANGED">
            <value>32</value>
            <description>Power status has changed since boot</description>
          </bit>
        </bitmask>
      </field>
      <field name="Safety" units="" type="uint8_t">
        <description>Hardware Safety Switch status</description>
      </field>
    </fields>
  </logformat>
  <logformat name="PRTN">
    <description>Plane Parameter Tuning data</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Set" units="" type="uint8_t">
        <description>Parameter set being tuned</description>
      </field>
      <field name="Parm" units="" type="uint8_t">
        <description>Parameter being tuned</description>
      </field>
      <field name="Value" units="" type="float">
        <description>Current parameter value</description>
      </field>
      <field name="CenterValue" units="" type="float">
        <description>Center value (startpoint of current modifications) of parameter being tuned</description>
      </field>
    </fields>
  </logformat>
  <logformat name="PRX">
    <description>Proximity Filtered sensor data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Layer" units="instance" type="uint8_t">
        <description>Pitch(instance) at which the obstacle is at. 0th layer {-75,-45} degrees. 1st layer {-45,-15} degrees. 2nd layer {-15, 15} degrees. 3rd layer {15, 45} degrees. 4th layer {45,75} degrees. Minimum distance in each layer will be logged.</description>
      </field>
      <field name="He" units="" type="uint8_t">
        <description>True if proximity sensor is healthy</description>
      </field>
      <field name="D0" units="m" type="float">
        <description>Nearest object in sector surrounding 0-degrees</description>
      </field>
      <field name="D45" units="m" type="float">
        <description>Nearest object in sector surrounding 45-degrees</description>
      </field>
      <field name="D90" units="m" type="float">
        <description>Nearest object in sector surrounding 90-degrees</description>
      </field>
      <field name="D135" units="m" type="float">
        <description>Nearest object in sector surrounding 135-degrees</description>
      </field>
      <field name="D180" units="m" type="float">
        <description>Nearest object in sector surrounding 180-degrees</description>
      </field>
      <field name="D225" units="m" type="float">
        <description>Nearest object in sector surrounding 225-degrees</description>
      </field>
      <field name="D270" units="m" type="float">
        <description>Nearest object in sector surrounding 270-degrees</description>
      </field>
      <field name="D315" units="m" type="float">
        <description>Nearest object in sector surrounding 315-degrees</description>
      </field>
      <field name="DUp" units="m" type="float">
        <description>Nearest object in upwards direction</description>
      </field>
      <field name="CAn" units="degheading" type="float">
        <description>Angle to closest object</description>
      </field>
      <field name="CDis" units="m" type="float">
        <description>Distance to closest object</description>
      </field>
    </fields>
  </logformat>
  <logformat name="PRXR">
    <description>Proximity Raw sensor data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Layer" units="instance" type="uint8_t">
        <description>Pitch(instance) at which the obstacle is at. 0th layer {-75,-45} degrees. 1st layer {-45,-15} degrees. 2nd layer {-15, 15} degrees. 3rd layer {15, 45} degrees. 4th layer {45,75} degrees. Minimum distance in each layer will be logged.</description>
      </field>
      <field name="D0" units="m" type="float">
        <description>Nearest object in sector surrounding 0-degrees</description>
      </field>
      <field name="D45" units="m" type="float">
        <description>Nearest object in sector surrounding 45-degrees</description>
      </field>
      <field name="D90" units="m" type="float">
        <description>Nearest object in sector surrounding 90-degrees</description>
      </field>
      <field name="D135" units="m" type="float">
        <description>Nearest object in sector surrounding 135-degrees</description>
      </field>
      <field name="D180" units="m" type="float">
        <description>Nearest object in sector surrounding 180-degrees</description>
      </field>
      <field name="D225" units="m" type="float">
        <description>Nearest object in sector surrounding 225-degrees</description>
      </field>
      <field name="D270" units="m" type="float">
        <description>Nearest object in sector surrounding 270-degrees</description>
      </field>
      <field name="D315" units="m" type="float">
        <description>Nearest object in sector surrounding 315-degrees</description>
      </field>
    </fields>
  </logformat>
  <logformat name="PSCD">
    <description>Position Control Down</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="DPD" units="m" type="float">
        <description>Desired position relative to EKF origin + Offsets</description>
      </field>
      <field name="TPD" units="m" type="float">
        <description>Target position relative to EKF origin</description>
      </field>
      <field name="PD" units="m" type="float">
        <description>Position relative to EKF origin</description>
      </field>
      <field name="DVD" units="m/s" type="float">
        <description>Desired velocity Down</description>
      </field>
      <field name="TVD" units="m/s" type="float">
        <description>Target velocity Down</description>
      </field>
      <field name="VD" units="m/s" type="float">
        <description>Velocity Down</description>
      </field>
      <field name="DAD" units="m/s/s" type="float">
        <description>Desired acceleration Down</description>
      </field>
      <field name="TAD" units="m/s/s" type="float">
        <description>Target acceleration Down</description>
      </field>
      <field name="AD" units="m/s/s" type="float">
        <description>Acceleration Down</description>
      </field>
    </fields>
  </logformat>
  <logformat name="PSCE">
    <description>Position Control East</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="DPE" units="m" type="float">
        <description>Desired position relative to EKF origin + Offsets</description>
      </field>
      <field name="TPE" units="m" type="float">
        <description>Target position relative to EKF origin</description>
      </field>
      <field name="PE" units="m" type="float">
        <description>Position relative to EKF origin</description>
      </field>
      <field name="DVE" units="m/s" type="float">
        <description>Desired velocity East</description>
      </field>
      <field name="TVE" units="m/s" type="float">
        <description>Target velocity East</description>
      </field>
      <field name="VE" units="m/s" type="float">
        <description>Velocity East</description>
      </field>
      <field name="DAE" units="m/s/s" type="float">
        <description>Desired acceleration East</description>
      </field>
      <field name="TAE" units="m/s/s" type="float">
        <description>Target acceleration East</description>
      </field>
      <field name="AE" units="m/s/s" type="float">
        <description>Acceleration East</description>
      </field>
    </fields>
  </logformat>
  <logformat name="PSCN">
    <description>Position Control North</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="DPN" units="m" type="float">
        <description>Desired position relative to EKF origin</description>
      </field>
      <field name="TPN" units="m" type="float">
        <description>Target position relative to EKF origin</description>
      </field>
      <field name="PN" units="m" type="float">
        <description>Position relative to EKF origin</description>
      </field>
      <field name="DVN" units="m/s" type="float">
        <description>Desired velocity North</description>
      </field>
      <field name="TVN" units="m/s" type="float">
        <description>Target velocity North</description>
      </field>
      <field name="VN" units="m/s" type="float">
        <description>Velocity North</description>
      </field>
      <field name="DAN" units="m/s/s" type="float">
        <description>Desired acceleration North</description>
      </field>
      <field name="TAN" units="m/s/s" type="float">
        <description>Target acceleration North</description>
      </field>
      <field name="AN" units="m/s/s" type="float">
        <description>Acceleration North</description>
      </field>
    </fields>
  </logformat>
  <logformat name="PSOD">
    <description>Position Control Offsets Down</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="TPOD" units="m" type="float">
        <description>Target position offset Down</description>
      </field>
      <field name="POD" units="m" type="float">
        <description>Position offset Down</description>
      </field>
      <field name="TVOD" units="m/s" type="float">
        <description>Target velocity offset Down</description>
      </field>
      <field name="VOD" units="m/s" type="float">
        <description>Velocity offset Down</description>
      </field>
      <field name="TAOD" units="m/s/s" type="float">
        <description>Target acceleration offset Down</description>
      </field>
      <field name="AOD" units="m/s/s" type="float">
        <description>Acceleration offset Down</description>
      </field>
    </fields>
  </logformat>
  <logformat name="PSOE">
    <description>Position Control Offsets East</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="TPOE" units="m" type="float">
        <description>Target position offset East</description>
      </field>
      <field name="POE" units="m" type="float">
        <description>Position offset East</description>
      </field>
      <field name="TVOE" units="m/s" type="float">
        <description>Target velocity offset East</description>
      </field>
      <field name="VOE" units="m/s" type="float">
        <description>Velocity offset East</description>
      </field>
      <field name="TAOE" units="m/s/s" type="float">
        <description>Target acceleration offset East</description>
      </field>
      <field name="AOE" units="m/s/s" type="float">
        <description>Acceleration offset East</description>
      </field>
    </fields>
  </logformat>
  <logformat name="PSON">
    <description>Position Control Offsets North</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="TPON" units="m" type="float">
        <description>Target position offset North</description>
      </field>
      <field name="PON" units="m" type="float">
        <description>Position offset North</description>
      </field>
      <field name="TVON" units="m/s" type="float">
        <description>Target velocity offset North</description>
      </field>
      <field name="VON" units="m/s" type="float">
        <description>Velocity offset North</description>
      </field>
      <field name="TAON" units="m/s/s" type="float">
        <description>Target acceleration offset North</description>
      </field>
      <field name="AON" units="m/s/s" type="float">
        <description>Acceleration offset North</description>
      </field>
    </fields>
  </logformat>
  <logformat name="PSOT">
    <description>Position Control Offsets Terrain (Down)</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="TPOT" units="m" type="float">
        <description>Target position offset Terrain</description>
      </field>
      <field name="POT" units="m" type="float">
        <description>Position offset Terrain</description>
      </field>
      <field name="TVOT" units="m/s" type="float">
        <description>Target velocity offset Terrain</description>
      </field>
      <field name="VOT" units="m/s" type="float">
        <description>Velocity offset Terrain</description>
      </field>
      <field name="TAOT" units="m/s/s" type="float">
        <description>Target acceleration offset Terrain</description>
      </field>
      <field name="AOT" units="m/s/s" type="float">
        <description>Acceleration offset Terrain</description>
      </field>
    </fields>
  </logformat>
  <logformat name="PTUN">
    <url>https://ardupilot.org/copter/docs/tuning.html#in-flight-tuning</url>
    <description>Parameter Tuning information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Param" units="instance" type="uint8_t">
        <description>Parameter being tuned</description>
      </field>
      <field name="TunVal" units="" type="float">
        <description>Normalized value used inside tuning() function</description>
      </field>
      <field name="TunMin" units="" type="float">
        <description>Tuning minimum limit</description>
      </field>
      <field name="TunMax" units="" type="float">
        <description>Tuning maximum limit</description>
      </field>
      <field name="NIn" units="" type="float">
        <description>normalaised control input (normalised -1 to 1 value)</description>
      </field>
    </fields>
  </logformat>
  <logformat name="QWIK">
    <description>Quicktune</description>
    <fields>
      <field name="TimeUS" units="s" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="ParamNo" units="instance" type="uint8_t">
        <description>number of parameter being tuned</description>
      </field>
      <field name="SRate" units="" type="float">
        <description>slew rate</description>
      </field>
      <field name="Gain" units="" type="float">
        <description>test gain for current axis and PID element</description>
      </field>
      <field name="Param" units="" type="char[16]">
        <description>name of parameter being being tuned</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RAD">
    <description>Telemetry radio statistics</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="RSSI" units="" type="uint8_t">
        <description>RSSI</description>
      </field>
      <field name="RemRSSI" units="" type="uint8_t">
        <description>RSSI reported from remote radio</description>
      </field>
      <field name="TxBuf" units="" type="uint8_t">
        <description>number of bytes in radio ready to be sent</description>
      </field>
      <field name="Noise" units="" type="uint8_t">
        <description>local noise floor</description>
      </field>
      <field name="RemNoise" units="" type="uint8_t">
        <description>local noise floor reported from remote radio</description>
      </field>
      <field name="RxErrors" units="" type="uint16_t">
        <description>damaged packet count</description>
      </field>
      <field name="Fixed" units="" type="uint16_t">
        <description>fixed damaged packet count</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RALY">
    <description>Rally point information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Tot" units="" type="uint8_t">
        <description>total number of rally points onboard</description>
      </field>
      <field name="Seq" units="" type="uint8_t">
        <description>this rally point's sequence number</description>
      </field>
      <field name="Lat" units="deglatitude" type="int32_t latitude/longitude">
        <description>latitude of rally point</description>
      </field>
      <field name="Lng" units="deglongitude" type="int32_t latitude/longitude">
        <description>longitude of rally point</description>
      </field>
      <field name="Alt" units="m" type="int16_t">
        <description>altitude of rally point</description>
      </field>
      <field name="Flags" units="" type="uint8_t">
        <description>altitude frame flags</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RASH">
    <description>Replay Airspeed Sensor Header</description>
    <fields>
      <field name="Primary" units="" type="uint8_t">
        <description>airspeed instance number</description>
      </field>
      <field name="NumInst" units="" type="uint8_t">
        <description>number of airspeed instances</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RASI">
    <description>Replay Airspeed Sensor Instance data</description>
    <fields>
      <field name="pd" units="" type="float">
        <description>measured airspeed</description>
      </field>
      <field name="UpdateMS" units="" type="uint32_t">
        <description>timestamp of measured airspeed</description>
      </field>
      <field name="H" units="" type="uint8_t">
        <description>indicator of airspeed sensor health</description>
      </field>
      <field name="Use" units="" type="uint8_t">
        <description>true if airspeed is configured to be used</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>airspeed instance number</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RATE">
    <description>Desired and achieved vehicle attitude rates. Not logged in Fixed Wing Plane modes.</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="RDes" units="deg/s" type="float">
        <description>vehicle desired roll rate</description>
      </field>
      <field name="R" units="deg/s" type="float">
        <description>achieved vehicle roll rate</description>
      </field>
      <field name="ROut" units="" type="float">
        <description>normalized output for Roll</description>
      </field>
      <field name="PDes" units="deg/s" type="float">
        <description>vehicle desired pitch rate</description>
      </field>
      <field name="P" units="deg/s" type="float">
        <description>vehicle pitch rate</description>
      </field>
      <field name="POut" units="" type="float">
        <description>normalized output for Pitch</description>
      </field>
      <field name="YDes" units="deg/s" type="float">
        <description>vehicle desired yaw rate</description>
      </field>
      <field name="Y" units="deg/s" type="float">
        <description>achieved vehicle yaw rate</description>
      </field>
      <field name="YOut" units="" type="float">
        <description>normalized output for Yaw</description>
      </field>
      <field name="ADes" units="cm/s/s" type="float">
        <description>desired vehicle vertical acceleration</description>
      </field>
      <field name="A" units="cm/s/s" type="float">
        <description>achieved vehicle vertical acceleration</description>
      </field>
      <field name="AOut" units="" type="float">
        <description>percentage of vertical thrust output current being used</description>
      </field>
      <field name="AOutSlew" units="" type="float">
        <description>vertical thrust output slew rate</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RBCH">
    <description>Replay Data Beacon Header</description>
    <fields>
      <field name="PX" units="" type="float">
        <description>beacon system estimated vehicle position, North</description>
      </field>
      <field name="PY" units="" type="float">
        <description>beacon system estimated vehicle position, East</description>
      </field>
      <field name="PZ" units="" type="float">
        <description>beacon system estimated vehicle position, Down</description>
      </field>
      <field name="AE" units="" type="float">
        <description>beacon system estimated vehicle position accuracy</description>
      </field>
      <field name="OLat" units="" type="int32_t">
        <description>origin latitude</description>
      </field>
      <field name="OLng" units="" type="int32_t">
        <description>origin longitude</description>
      </field>
      <field name="OAlt" units="" type="int32_t">
        <description>origin altitude</description>
      </field>
      <field name="Flags" units="" type="uint8_t">
        <description>vehicle_position_ned_returncode,get_origin_returncode,enabled</description>
      </field>
      <field name="NumInst" units="" type="uint8_t">
        <description>number of beacons</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RBCI">
    <description>Replay Data Beacon Instance</description>
    <fields>
      <field name="LU" units="s" type="uint32_t">
        <description>last update from this beacon instance</description>
      </field>
      <field name="PX" units="m" type="float">
        <description>beacon distance from origin, X-axis</description>
      </field>
      <field name="PY" units="m" type="float">
        <description>beacon distance from origin, Y-axis</description>
      </field>
      <field name="PZ" units="m" type="float">
        <description>beacon distance from origin, Z-axis</description>
      </field>
      <field name="Dist" units="m" type="float">
        <description>distance to beacon</description>
      </field>
      <field name="H" units="" type="uint8_t">
        <description>beacon data health</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>beacon instance number</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RBOH">
    <description>Replay body odometry data</description>
    <fields>
      <field name="Q" units="" type="float">
        <description>data quality measure</description>
      </field>
      <field name="DPX" units="" type="float">
        <description>delta-position-X</description>
      </field>
      <field name="DPY" units="" type="float">
        <description>delta-position-Y</description>
      </field>
      <field name="DPZ" units="" type="float">
        <description>delta-position-Z</description>
      </field>
      <field name="DAX" units="" type="float">
        <description>delta-angle-X</description>
      </field>
      <field name="DAY" units="" type="float">
        <description>delta-angle-Y</description>
      </field>
      <field name="DAZ" units="" type="float">
        <description>delta-angle-Z</description>
      </field>
      <field name="DT" units="" type="float">
        <description>delta-time</description>
      </field>
      <field name="TS" units="" type="uint32_t">
        <description>data timestamp</description>
      </field>
      <field name="OX" units="" type="float">
        <description>pos-offset-X</description>
      </field>
      <field name="OY" units="" type="float">
        <description>pos-offset-Y</description>
      </field>
      <field name="OZ" units="" type="float">
        <description>pos-offset-Z</description>
      </field>
      <field name="D" units="" type="uint16_t">
        <description>delay in body odometry data</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RBRH">
    <description>Replay Data Barometer Header</description>
    <fields>
      <field name="Primary" units="" type="uint8_t">
        <description>primary barometer instance number</description>
      </field>
      <field name="NumInst" units="" type="uint8_t">
        <description>number of barometer sensors</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RBRI">
    <description>Replay Data Barometer Instance</description>
    <fields>
      <field name="LastUpdate" units="" type="uint32_t">
        <description>timestamp of barometer data</description>
      </field>
      <field name="Alt" units="" type="float">
        <description>barometer altitude estimate</description>
      </field>
      <field name="H" units="" type="uint8_t">
        <description>barometer sensor health indication</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>barometer instance number</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RCDA">
    <description>Raw RC data</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="TS" units="" type="uint32_t">
        <description>data arrival timestamp</description>
      </field>
      <field name="Prot" units="" type="uint8_t">
        <description>Protocol currently being decoded</description>
      </field>
      <field name="Len" units="" type="uint8_t">
        <description>Number of valid bytes in message</description>
      </field>
      <field name="U0" units="" type="uint32_t">
        <description>first quartet of bytes</description>
      </field>
      <field name="U1" units="" type="uint32_t">
        <description>second quartet of bytes</description>
      </field>
      <field name="U2" units="" type="uint32_t">
        <description>third quartet of bytes</description>
      </field>
      <field name="U3" units="" type="uint32_t">
        <description>fourth quartet of bytes</description>
      </field>
      <field name="U4" units="" type="uint32_t">
        <description>fifth quartet of bytes</description>
      </field>
      <field name="U5" units="" type="uint32_t">
        <description>sixth quartet of bytes</description>
      </field>
      <field name="U6" units="" type="uint32_t">
        <description>seventh quartet of bytes</description>
      </field>
      <field name="U7" units="" type="uint32_t">
        <description>eight quartet of bytes</description>
      </field>
      <field name="U8" units="" type="uint32_t">
        <description>ninth quartet of bytes</description>
      </field>
      <field name="U9" units="" type="uint32_t">
        <description>tenth quartet of bytes</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RCI2">
    <description>(More) RC input channels to vehicle</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C15" units="us" type="uint16_t">
        <description>channel 15 input</description>
      </field>
      <field name="C16" units="us" type="uint16_t">
        <description>channel 16 input</description>
      </field>
      <field name="OMask" units="" type="uint16_t">
        <description>bitmask of RC channels being overridden by mavlink input</description>
      </field>
      <field name="Flags" units="" type="uint8_t">
        <description>bitmask of RC state flags</description>
        <bitmask name="AP_Logger::RCLoggingFlags">
          <bit name="HAS_VALID_INPUT">
            <value>1</value>
            <description>true if the system is receiving good RC values</description>
          </bit>
          <bit name="IN_RC_FAILSAFE">
            <value>2</value>
            <description>true if the system is current in RC failsafe</description>
          </bit>
          <bit name="RC_PROTOCOL_FAILSAFE">
            <value>4</value>
            <description>true if the RC Protocol library is indicating the RC receiver is indicating failsafe via its protocol</description>
          </bit>
        </bitmask>
      </field>
    </fields>
  </logformat>
  <logformat name="RCIN">
    <description>RC input channels to vehicle</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C1" units="us" type="uint16_t">
        <description>channel 1 input</description>
      </field>
      <field name="C2" units="us" type="uint16_t">
        <description>channel 2 input</description>
      </field>
      <field name="C3" units="us" type="uint16_t">
        <description>channel 3 input</description>
      </field>
      <field name="C4" units="us" type="uint16_t">
        <description>channel 4 input</description>
      </field>
      <field name="C5" units="us" type="uint16_t">
        <description>channel 5 input</description>
      </field>
      <field name="C6" units="us" type="uint16_t">
        <description>channel 6 input</description>
      </field>
      <field name="C7" units="us" type="uint16_t">
        <description>channel 7 input</description>
      </field>
      <field name="C8" units="us" type="uint16_t">
        <description>channel 8 input</description>
      </field>
      <field name="C9" units="us" type="uint16_t">
        <description>channel 9 input</description>
      </field>
      <field name="C10" units="us" type="uint16_t">
        <description>channel 10 input</description>
      </field>
      <field name="C11" units="us" type="uint16_t">
        <description>channel 11 input</description>
      </field>
      <field name="C12" units="us" type="uint16_t">
        <description>channel 12 input</description>
      </field>
      <field name="C13" units="us" type="uint16_t">
        <description>channel 13 input</description>
      </field>
      <field name="C14" units="us" type="uint16_t">
        <description>channel 14 input</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RCO2">
    <description>Servo channel output values 15 to 18</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C15" units="us" type="uint16_t">
        <description>channel 15 output</description>
      </field>
      <field name="C16" units="us" type="uint16_t">
        <description>channel 16 output</description>
      </field>
      <field name="C17" units="us" type="uint16_t">
        <description>channel 17 output</description>
      </field>
      <field name="C18" units="us" type="uint16_t">
        <description>channel 18 output</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RCO3">
    <description>Servo channel output values 19 to 32</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C19" units="us" type="uint16_t">
        <description>channel 19 output</description>
      </field>
      <field name="C20" units="us" type="uint16_t">
        <description>channel 20 output</description>
      </field>
      <field name="C21" units="us" type="uint16_t">
        <description>channel 21 output</description>
      </field>
      <field name="C22" units="us" type="uint16_t">
        <description>channel 22 output</description>
      </field>
      <field name="C23" units="us" type="uint16_t">
        <description>channel 23 output</description>
      </field>
      <field name="C24" units="us" type="uint16_t">
        <description>channel 24 output</description>
      </field>
      <field name="C25" units="us" type="uint16_t">
        <description>channel 25 output</description>
      </field>
      <field name="C26" units="us" type="uint16_t">
        <description>channel 26 output</description>
      </field>
      <field name="C27" units="us" type="uint16_t">
        <description>channel 27 output</description>
      </field>
      <field name="C28" units="us" type="uint16_t">
        <description>channel 28 output</description>
      </field>
      <field name="C29" units="us" type="uint16_t">
        <description>channel 29 output</description>
      </field>
      <field name="C30" units="us" type="uint16_t">
        <description>channel 30 output</description>
      </field>
      <field name="C31" units="us" type="uint16_t">
        <description>channel 31 output</description>
      </field>
      <field name="C32" units="us" type="uint16_t">
        <description>channel 32 output</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RCOU">
    <description>Servo channel output values 1 to 14</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C1" units="us" type="uint16_t">
        <description>channel 1 output</description>
      </field>
      <field name="C2" units="us" type="uint16_t">
        <description>channel 2 output</description>
      </field>
      <field name="C3" units="us" type="uint16_t">
        <description>channel 3 output</description>
      </field>
      <field name="C4" units="us" type="uint16_t">
        <description>channel 4 output</description>
      </field>
      <field name="C5" units="us" type="uint16_t">
        <description>channel 5 output</description>
      </field>
      <field name="C6" units="us" type="uint16_t">
        <description>channel 6 output</description>
      </field>
      <field name="C7" units="us" type="uint16_t">
        <description>channel 7 output</description>
      </field>
      <field name="C8" units="us" type="uint16_t">
        <description>channel 8 output</description>
      </field>
      <field name="C9" units="us" type="uint16_t">
        <description>channel 9 output</description>
      </field>
      <field name="C10" units="us" type="uint16_t">
        <description>channel 10 output</description>
      </field>
      <field name="C11" units="us" type="uint16_t">
        <description>channel 11 output</description>
      </field>
      <field name="C12" units="us" type="uint16_t">
        <description>channel 12 output</description>
      </field>
      <field name="C13" units="us" type="uint16_t">
        <description>channel 13 output</description>
      </field>
      <field name="C14" units="us" type="uint16_t">
        <description>channel 14 output</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RELY">
    <description>Relay state</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Instance" units="instance" type="uint8_t">
        <description>relay instance number</description>
      </field>
      <field name="State" units="" type="uint8_t">
        <description>current state</description>
      </field>
    </fields>
  </logformat>
  <logformat name="REPH">
    <description>Replay external position data</description>
    <fields>
      <field name="PX" units="" type="float">
        <description>external position estimate, X-axis</description>
      </field>
      <field name="PY" units="" type="float">
        <description>external position estimate, Y-axis</description>
      </field>
      <field name="PZ" units="" type="float">
        <description>external position estimate, Z-axis</description>
      </field>
      <field name="Q1" units="" type="float">
        <description>external attitude quaternion</description>
      </field>
      <field name="Q2" units="" type="float">
        <description>external attitude quaternion</description>
      </field>
      <field name="Q3" units="" type="float">
        <description>external attitude quaternion</description>
      </field>
      <field name="Q4" units="" type="float">
        <description>external attitude quaternion</description>
      </field>
      <field name="PEr" units="" type="float">
        <description>external position error estimate</description>
      </field>
      <field name="AEr" units="" type="float">
        <description>external attitude error estimate</description>
      </field>
      <field name="TS" units="" type="uint32_t">
        <description>timestamp on external error estimate</description>
      </field>
      <field name="RT" units="" type="uint32_t">
        <description>timestamp of last external reset</description>
      </field>
      <field name="D" units="" type="uint16_t">
        <description>delay on external data</description>
      </field>
    </fields>
  </logformat>
  <logformat name="REV2">
    <description>Replay Event (EKF2)</description>
    <fields>
      <field name="Event" units="" type="uint8_t">
        <description>external event injected into EKF</description>
        <enum name="AP_DAL::Event">
          <element name="resetGyroBias">
            <value>0</value>
          </element>
          <element name="resetHeightDatum">
            <value>1</value>
          </element>
          <element name="setTerrainHgtStable">
            <value>9</value>
          </element>
          <element name="unsetTerrainHgtStable">
            <value>10</value>
          </element>
          <element name="requestYawReset">
            <value>11</value>
          </element>
          <element name="checkLaneSwitch">
            <value>12</value>
          </element>
          <element name="setSourceSet0">
            <value>13</value>
          </element>
          <element name="setSourceSet1">
            <value>14</value>
          </element>
          <element name="setSourceSet2">
            <value>15</value>
          </element>
        </enum>
      </field>
    </fields>
  </logformat>
  <logformat name="REV3">
    <description>Replay Event (EKF3)</description>
    <fields>
      <field name="Event" units="" type="uint8_t">
        <description>external event injected into EKF</description>
        <enum name="AP_DAL::Event">
          <element name="resetGyroBias">
            <value>0</value>
          </element>
          <element name="resetHeightDatum">
            <value>1</value>
          </element>
          <element name="setTerrainHgtStable">
            <value>9</value>
          </element>
          <element name="unsetTerrainHgtStable">
            <value>10</value>
          </element>
          <element name="requestYawReset">
            <value>11</value>
          </element>
          <element name="checkLaneSwitch">
            <value>12</value>
          </element>
          <element name="setSourceSet0">
            <value>13</value>
          </element>
          <element name="setSourceSet1">
            <value>14</value>
          </element>
          <element name="setSourceSet2">
            <value>15</value>
          </element>
        </enum>
      </field>
    </fields>
  </logformat>
  <logformat name="REVH">
    <description>Replay external velocity data</description>
    <fields>
      <field name="VX" units="" type="float">
        <description>external velocity estimate, X-axis</description>
      </field>
      <field name="VY" units="" type="float">
        <description>external velocity estimate, Y-axis</description>
      </field>
      <field name="VZ" units="" type="float">
        <description>external velocity estimate, Z-axis</description>
      </field>
      <field name="Er" units="" type="float">
        <description>error in velocity estimate</description>
      </field>
      <field name="TS" units="" type="uint32_t">
        <description>timestamp of velocity estimate</description>
      </field>
      <field name="D" units="" type="uint16_t">
        <description>delay in external velocity data</description>
      </field>
    </fields>
  </logformat>
  <logformat name="REY3">
    <description>Replay Euler Yaw event</description>
    <fields>
      <field name="yawangle" units="UNKNOWN" type="float">
        <description>externally supplied yaw angle</description>
      </field>
      <field name="yawangleerr" units="UNKNOWN" type="float">
        <description>error in externally supplied yaw angle</description>
      </field>
      <field name="timestamp_ms" units="UNKNOWN" type="uint32_t">
        <description>timestamp associated with yaw angle and yaw angle error</description>
      </field>
      <field name="type" units="" type="uint8_t">
        <description>number that needs documenting</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RF">
    <description>RealFlight mode messages</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Dt" units="" type="double">
        <description>delta time between this frame and the previous frame</description>
      </field>
      <field name="Fps" units="" type="uint32_t">
        <description>frames-per-second implied by the current delta time</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RFND">
    <description>Rangefinder sensor information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Instance" units="instance" type="uint8_t">
        <description>rangefinder instance number this data is from</description>
      </field>
      <field name="Dist" units="m" type="float">
        <description>Reported distance from sensor</description>
      </field>
      <field name="Stat" units="" type="uint8_t">
        <description>Sensor state</description>
        <enum name="RangeFinder::Status">
          <element name="NotConnected">
            <value>0</value>
          </element>
          <element name="NoData">
            <value>1</value>
          </element>
          <element name="OutOfRangeLow">
            <value>2</value>
          </element>
          <element name="OutOfRangeHigh">
            <value>3</value>
          </element>
          <element name="Good">
            <value>4</value>
          </element>
          <element name="PoweredDown">
            <value>5</value>
          </element>
        </enum>
      </field>
      <field name="Orient" units="" type="uint8_t">
        <description>Sensor orientation</description>
        <enum name="Rotation">
          <element name="ROTATION_NONE">
            <value>0</value>
          </element>
          <element name="ROTATION_YAW_45">
            <value>1</value>
          </element>
          <element name="ROTATION_YAW_90">
            <value>2</value>
          </element>
          <element name="ROTATION_YAW_135">
            <value>3</value>
          </element>
          <element name="ROTATION_YAW_180">
            <value>4</value>
          </element>
          <element name="ROTATION_YAW_225">
            <value>5</value>
          </element>
          <element name="ROTATION_YAW_270">
            <value>6</value>
          </element>
          <element name="ROTATION_YAW_315">
            <value>7</value>
          </element>
          <element name="ROTATION_ROLL_180">
            <value>8</value>
          </element>
          <element name="ROTATION_ROLL_180_YAW_45">
            <value>9</value>
          </element>
          <element name="ROTATION_ROLL_180_YAW_90">
            <value>10</value>
          </element>
          <element name="ROTATION_ROLL_180_YAW_135">
            <value>11</value>
          </element>
          <element name="ROTATION_PITCH_180">
            <value>12</value>
          </element>
          <element name="ROTATION_ROLL_180_YAW_225">
            <value>13</value>
          </element>
          <element name="ROTATION_ROLL_180_YAW_270">
            <value>14</value>
          </element>
          <element name="ROTATION_ROLL_180_YAW_315">
            <value>15</value>
          </element>
          <element name="ROTATION_ROLL_90">
            <value>16</value>
          </element>
          <element name="ROTATION_ROLL_90_YAW_45">
            <value>17</value>
          </element>
          <element name="ROTATION_ROLL_90_YAW_90">
            <value>18</value>
          </element>
          <element name="ROTATION_ROLL_90_YAW_135">
            <value>19</value>
          </element>
          <element name="ROTATION_ROLL_270">
            <value>20</value>
          </element>
          <element name="ROTATION_ROLL_270_YAW_45">
            <value>21</value>
          </element>
          <element name="ROTATION_ROLL_270_YAW_90">
            <value>22</value>
          </element>
          <element name="ROTATION_ROLL_270_YAW_135">
            <value>23</value>
          </element>
          <element name="ROTATION_PITCH_90">
            <value>24</value>
          </element>
          <element name="ROTATION_PITCH_270">
            <value>25</value>
          </element>
          <element name="ROTATION_PITCH_180_YAW_90">
            <value>26</value>
            <description>same as ROTATION_ROLL_180_YAW_270</description>
          </element>
          <element name="ROTATION_PITCH_180_YAW_270">
            <value>27</value>
            <description>same as ROTATION_ROLL_180_YAW_90</description>
          </element>
          <element name="ROTATION_ROLL_90_PITCH_90">
            <value>28</value>
          </element>
          <element name="ROTATION_ROLL_180_PITCH_90">
            <value>29</value>
          </element>
          <element name="ROTATION_ROLL_270_PITCH_90">
            <value>30</value>
          </element>
          <element name="ROTATION_ROLL_90_PITCH_180">
            <value>31</value>
          </element>
          <element name="ROTATION_ROLL_270_PITCH_180">
            <value>32</value>
          </element>
          <element name="ROTATION_ROLL_90_PITCH_270">
            <value>33</value>
          </element>
          <element name="ROTATION_ROLL_180_PITCH_270">
            <value>34</value>
          </element>
          <element name="ROTATION_ROLL_270_PITCH_270">
            <value>35</value>
          </element>
          <element name="ROTATION_ROLL_90_PITCH_180_YAW_90">
            <value>36</value>
          </element>
          <element name="ROTATION_ROLL_90_YAW_270">
            <value>37</value>
          </element>
          <element name="ROTATION_ROLL_90_PITCH_68_YAW_293">
            <value>38</value>
            <description>this is actually, roll 90, pitch 68.8, yaw 293.3</description>
          </element>
          <element name="ROTATION_PITCH_315">
            <value>39</value>
          </element>
          <element name="ROTATION_ROLL_90_PITCH_315">
            <value>40</value>
          </element>
          <element name="ROTATION_PITCH_7">
            <value>41</value>
          </element>
          <element name="ROTATION_ROLL_45">
            <value>42</value>
          </element>
          <element name="ROTATION_ROLL_315">
            <value>43</value>
          </element>
          <element name="ROTATION_MAX">
            <value>44</value>
          </element>
          <element name="ROTATION_CUSTOM_OLD">
            <value>100</value>
          </element>
          <element name="ROTATION_CUSTOM_1">
            <value>101</value>
          </element>
          <element name="ROTATION_CUSTOM_2">
            <value>102</value>
          </element>
          <element name="ROTATION_CUSTOM_END">
            <value>103</value>
          </element>
        </enum>
      </field>
      <field name="Quality" units="%" type="int8_t">
        <description>Signal quality. -1 means invalid, 0 is no signal, 100 is perfect signal</description>
      </field>
      <field name="Temp" units="degC" type="float">
        <description>Temperature of the fluid (air or water) the rangefinder measures through, not the sensor internal temperature</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RFRF">
    <description>Replay FRame data - Finished frame</description>
    <fields>
      <field name="FTypes" units="" type="uint8_t">
        <description>accumulated method calls made during frame</description>
        <bitmask name="AP_DAL::FrameType">
          <bit name="InitialiseFilterEKF2">
            <value>1</value>
          </bit>
          <bit name="UpdateFilterEKF2">
            <value>2</value>
          </bit>
          <bit name="InitialiseFilterEKF3">
            <value>4</value>
          </bit>
          <bit name="UpdateFilterEKF3">
            <value>8</value>
          </bit>
          <bit name="LogWriteEKF2">
            <value>16</value>
          </bit>
          <bit name="LogWriteEKF3">
            <value>32</value>
          </bit>
        </bitmask>
      </field>
      <field name="Slow" units="" type="uint8_t">
        <description>true if we are not keeping up with IMU loop rate</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RFRH">
    <description>Replay FRame Header</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="TF" units="" type="uint32_t">
        <description>Time flying</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RFRN">
    <description>Replay FRame - aNother frame header</description>
    <fields>
      <field name="HLat" units="1e-7 deglatitude" type="uint32_t">
        <description>home latitude</description>
      </field>
      <field name="HLon" units="1e-7 deglongitude" type="uint32_t">
        <description>home latitude</description>
      </field>
      <field name="HAlt" units="cm" type="uint32_t">
        <description>home altitude AMSL</description>
      </field>
      <field name="E2T" units="" type="float">
        <description>EAS to TAS factor</description>
      </field>
      <field name="AM" units="B" type="uint32_t">
        <description>available memory</description>
      </field>
      <field name="TX" units="deg" type="float">
        <description>AHRS trim X</description>
      </field>
      <field name="TY" units="deg" type="float">
        <description>AHRS trim Y</description>
      </field>
      <field name="TZ" units="deg" type="float">
        <description>AHRS trim Z</description>
      </field>
      <field name="VC" units="" type="uint8_t">
        <description>AHRS Vehicle Class</description>
      </field>
      <field name="EKT" units="" type="uint8_t">
        <description>configured EKF type</description>
        <enum name="AP_DAL::EKFType">
          <element name="EKF2">
            <value>0</value>
          </element>
          <element name="EKF3">
            <value>1</value>
          </element>
        </enum>
      </field>
      <field name="Flags" units="" type="uint8_t">
        <description>bitmask of boolean state</description>
        <bitmask name="AP_DAL::RFRNFlags">
          <bit name="ARMED">
            <value>1</value>
          </bit>
          <bit name="UNUSED">
            <value>2</value>
          </bit>
          <bit name="FLY_FORWARD">
            <value>4</value>
          </bit>
          <bit name="AHRS_AIRSPEED_SENSOR_ENABLED_UNUSED">
            <value>8</value>
          </bit>
          <bit name="OPTICALFLOW_ENABLED">
            <value>16</value>
          </bit>
          <bit name="WHEELENCODER_ENABLED">
            <value>32</value>
          </bit>
          <bit name="TAKEOFF_EXPECTED">
            <value>64</value>
          </bit>
          <bit name="TOUCHDOWN_EXPECTED">
            <value>128</value>
          </bit>
        </bitmask>
      </field>
    </fields>
  </logformat>
  <logformat name="RGPH">
    <description>Replay Data GPS Header</description>
    <fields>
      <field name="NumInst" units="" type="uint8_t">
        <description>number of GPS sensors</description>
      </field>
      <field name="Primary" units="" type="uint8_t">
        <description>instance number of primary sensor</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RGPI">
    <description>Replay Data GPS Instance, infrequently changing data</description>
    <fields>
      <field name="OX" units="" type="float">
        <description>antenna body-frame offset, X-axis</description>
      </field>
      <field name="OY" units="" type="float">
        <description>antenna body-frame offset, Y-axis</description>
      </field>
      <field name="OZ" units="" type="float">
        <description>antenna body-frame offset, Z-axis</description>
      </field>
      <field name="Lg" units="" type="float">
        <description>GPS time lag</description>
      </field>
      <field name="Flags" units="" type="uint8_t">
        <description>various GPS flags</description>
        <bitmask name="RGPIFlags">
          <bit name="have_vertical_velocity">
            <value>1</value>
          </bit>
          <bit name="horizontal_accuracy_returncode">
            <value>2</value>
          </bit>
          <bit name="vertical_accuracy_returncode">
            <value>4</value>
          </bit>
          <bit name="get_lag_returncode">
            <value>8</value>
          </bit>
          <bit name="speed_accuracy_returncode">
            <value>16</value>
          </bit>
          <bit name="gps_yaw_deg_returncode">
            <value>32</value>
          </bit>
        </bitmask>
      </field>
      <field name="Stat" units="" type="uint8_t">
        <description>GPS fix status</description>
      </field>
      <field name="NSats" units="" type="uint8_t">
        <description>number of satellites GPS is using</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>GPS sensor instance number</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RGPJ">
    <description>Replay Data GPS Instance - rapidly changing data</description>
    <fields>
      <field name="TS" units="" type="uint32_t">
        <description>GPS data timestamp</description>
      </field>
      <field name="VX" units="" type="float">
        <description>GPS velocity, North</description>
      </field>
      <field name="VY" units="" type="float">
        <description>GPS velocity, East</description>
      </field>
      <field name="VZ" units="" type="float">
        <description>GPS velocity, Down</description>
      </field>
      <field name="SA" units="" type="float">
        <description>speed accuracy</description>
      </field>
      <field name="Y" units="" type="float">
        <description>GPS yaw</description>
      </field>
      <field name="YA" units="" type="float">
        <description>GPS yaw accuracy</description>
      </field>
      <field name="YT" units="" type="uint32_t">
        <description>timestamp of GPS yaw estimate</description>
      </field>
      <field name="Lat" units="" type="int32_t">
        <description>latitude</description>
      </field>
      <field name="Lon" units="" type="int32_t">
        <description>longitude</description>
      </field>
      <field name="Alt" units="" type="int32_t">
        <description>altitude</description>
      </field>
      <field name="HA" units="" type="float">
        <description>horizontal accuracy</description>
      </field>
      <field name="VA" units="" type="float">
        <description>vertical accuracy</description>
      </field>
      <field name="HD" units="" type="uint16_t">
        <description>HDOP</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>GPS sensor instance number</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RGPK">
    <description>Replay Data GPS Instance - moving baseline yaw antenna offset (low-rate, only logged when changed)</description>
    <fields>
      <field name="OX" units="" type="float">
        <description>moving baseline antenna offset used to calculate GPS yaw, X-axis</description>
      </field>
      <field name="OY" units="" type="float">
        <description>moving baseline antenna offset used to calculate GPS yaw, Y-axis</description>
      </field>
      <field name="OZ" units="" type="float">
        <description>moving baseline antenna offset used to calculate GPS yaw, Z-axis</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>GPS sensor instance number</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RICH">
    <description>Richenpower generator telemetry</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="runTime" units="" type="uint32_t">
        <description>total generator runtime</description>
      </field>
      <field name="maintTime" units="" type="uint32_t">
        <description>time until generator requires maintenance</description>
      </field>
      <field name="errors" units="" type="uint16_t">
        <description>bitmask of error received from generator</description>
      </field>
      <field name="rpm" units="" type="uint16_t">
        <description>current generator RPM</description>
      </field>
      <field name="ovolt" units="" type="float">
        <description>output voltage</description>
      </field>
      <field name="ocurr" units="" type="float">
        <description>output current</description>
      </field>
      <field name="mode" units="" type="uint8_t">
        <description>generator mode; idle/run/charge/balance</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RISH">
    <description>Replay Inertial Sensor header</description>
    <fields>
      <field name="LR" units="" type="uint16_t">
        <description>INS loop rate</description>
      </field>
      <field name="PG" units="" type="uint8_t">
        <description>primary gyro index</description>
      </field>
      <field name="PA" units="" type="uint8_t">
        <description>primary accel index</description>
      </field>
      <field name="LD" units="" type="float">
        <description>INS loop-delta-t</description>
      </field>
      <field name="AC" units="" type="uint8_t">
        <description>accel count</description>
      </field>
      <field name="GC" units="" type="uint8_t">
        <description>gyro count</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RISI">
    <description>Replay Inertial Sensor instance data</description>
    <fields>
      <field name="DVX" units="" type="float">
        <description>x-axis delta-velocity</description>
      </field>
      <field name="DVY" units="" type="float">
        <description>y-axis delta-velocity</description>
      </field>
      <field name="DVZ" units="" type="float">
        <description>z-axis delta-velocity</description>
      </field>
      <field name="DAX" units="" type="float">
        <description>x-axis delta-angle</description>
      </field>
      <field name="DAY" units="" type="float">
        <description>y-axis delta-angle</description>
      </field>
      <field name="DAZ" units="" type="float">
        <description>z-axis delta-angle</description>
      </field>
      <field name="DVDT" units="" type="float">
        <description>delta-velocity-delta-time</description>
      </field>
      <field name="DADT" units="" type="float">
        <description>delta-angle-delta-time</description>
      </field>
      <field name="Flags" units="" type="uint8_t">
        <description>use-accel, use-gyro, delta-vel-valid, delta-accel-valid</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>IMU instance</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RISJ">
    <description>Replay Inertial Sensor instance metadata (low-rate, only logged when changed)</description>
    <fields>
      <field name="GBL" units="" type="float">
        <description>gyro bias limit (rad/s) for the EKF gyro bias state clamp</description>
      </field>
      <field name="GBI" units="" type="float">
        <description>initial gyro bias 1-sigma uncertainty (deg/s)</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>IMU instance</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RMGH">
    <description>Replay Data Magnetometer Header</description>
    <fields>
      <field name="Dec" units="" type="float">
        <description>vehicle declination</description>
      </field>
      <field name="Avail" units="" type="uint8_t">
        <description>true if the compass library is marking itself as available</description>
      </field>
      <field name="NumInst" units="" type="uint8_t">
        <description>number of compass instances</description>
      </field>
      <field name="AutoDec" units="" type="uint8_t">
        <description>true if compass autodeclination is enabled</description>
      </field>
      <field name="NumEna" units="" type="uint8_t">
        <description>number of enabled compass instances</description>
      </field>
      <field name="LOE" units="" type="uint8_t">
        <description>true if compass learning of offsets is enabled</description>
      </field>
      <field name="C" units="" type="uint8_t">
        <description>true if compasses are consistent</description>
      </field>
      <field name="FUsable" units="" type="uint8_t">
        <description>index of first usable compass</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RMGI">
    <description>Replay Data Magnetometer Instance</description>
    <fields>
      <field name="LU" units="" type="uint32_t">
        <description>last update time for magnetometer data</description>
      </field>
      <field name="OX" units="" type="float">
        <description>mag sensor offset, X-axis</description>
      </field>
      <field name="OY" units="" type="float">
        <description>mag sensor offset, Y-axis</description>
      </field>
      <field name="OZ" units="" type="float">
        <description>mag sensor offset, Z-axis</description>
      </field>
      <field name="FX" units="" type="float">
        <description>field strength, X-axis</description>
      </field>
      <field name="FY" units="" type="float">
        <description>field strength, Y-axis</description>
      </field>
      <field name="FZ" units="" type="float">
        <description>field strength, Z-axis</description>
      </field>
      <field name="UFY" units="" type="uint8_t">
        <description>true if compass is being used for yaw</description>
      </field>
      <field name="H" units="" type="uint8_t">
        <description>sensor health</description>
      </field>
      <field name="HSF" units="" type="uint8_t">
        <description>compass has scale factor</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>magnetometer instance number</description>
      </field>
    </fields>
  </logformat>
  <logformat name="ROFH">
    <description>Replay optical flow data</description>
    <fields>
      <field name="FX" units="" type="float">
        <description>raw flow rate, X-axis</description>
      </field>
      <field name="FY" units="" type="float">
        <description>raw flow rate, Y-axis</description>
      </field>
      <field name="GX" units="" type="float">
        <description>gyro rate, X-axis</description>
      </field>
      <field name="GY" units="" type="float">
        <description>gyro rate, Y-axis</description>
      </field>
      <field name="Tms" units="" type="uint32_t">
        <description>measurement timestamp</description>
      </field>
      <field name="PX" units="" type="float">
        <description>gyro rate, X-axis</description>
      </field>
      <field name="PY" units="" type="float">
        <description>body-frame offset, Y-axis</description>
      </field>
      <field name="PZ" units="" type="float">
        <description>body-frame offset, Z-axis</description>
      </field>
      <field name="HgtOvr" units="" type="float">
        <description>sensor height override</description>
      </field>
      <field name="Qual" units="" type="uint8_t">
        <description>flow quality measurement</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RPM">
    <description>Data from RPM sensors</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>Instance</description>
      </field>
      <field name="RPM" units="rpm" type="float">
        <description>Sensor's rpm measurement</description>
      </field>
      <field name="Qual" units="" type="float">
        <description>Signal quality</description>
      </field>
      <field name="H" units="" type="uint8_t">
        <description>Sensor Health (Bool)</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RRNH">
    <description>Replay Data Rangefinder Header</description>
    <fields>
      <field name="GCl" units="m" type="float">
        <description>rangefinder ground clearance for downward-facing rangefinders</description>
      </field>
      <field name="MaxD" units="m" type="float">
        <description>rangefinder maximum distance for downward-facing rangefinders</description>
      </field>
      <field name="NumSensors" units="" type="uint8_t">
        <description>number of rangefinder instances</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RRNI">
    <description>Replay Data Rangefinder Instance</description>
    <fields>
      <field name="PX" units="" type="float">
        <description>rangefinder body-frame offset, X-axis</description>
      </field>
      <field name="PY" units="" type="float">
        <description>rangefinder body-frame offset, Y-axis</description>
      </field>
      <field name="PZ" units="" type="float">
        <description>rangefinder body-frame offset, Z-axis</description>
      </field>
      <field name="Dist" units="m" type="float">
        <description>Measured rangefinder distance</description>
      </field>
      <field name="Orient" units="" type="uint8_t">
        <description>orientation</description>
      </field>
      <field name="Status" units="" type="uint8_t">
        <description>status</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>rangefinder instance number</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RSLL">
    <description>Replay Set Lat Lng event</description>
    <fields>
      <field name="Lat" units="1e-7 deglatitude" type="uint32_t">
        <description>latitude</description>
      </field>
      <field name="Lng" units="1e-7 deglongitude" type="uint32_t">
        <description>longitude</description>
      </field>
      <field name="PosAccSD" units="" type="float">
        <description>position accuracy, 1-StD</description>
      </field>
      <field name="TS" units="" type="uint32_t">
        <description>timestamp of latitude/longitude</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RSO2">
    <description>Replay Set Origin event (EKF2)</description>
    <fields>
      <field name="Lat" units="1e-7 deglatitude" type="uint32_t">
        <description>origin latitude</description>
      </field>
      <field name="Lon" units="1e-7 deglongitude" type="uint32_t">
        <description>origin longitude</description>
      </field>
      <field name="Alt" units="cm" type="uint32_t">
        <description>origin altitude</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RSO3">
    <description>Replay Set Origin event (EKF3)</description>
    <fields>
      <field name="Lat" units="1e-7 deglatitude" type="uint32_t">
        <description>origin latitude</description>
      </field>
      <field name="Lon" units="1e-7 deglongitude" type="uint32_t">
        <description>origin longitude</description>
      </field>
      <field name="Alt" units="cm" type="uint32_t">
        <description>origin altitude</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RSSI">
    <description>Received Signal Strength Indicator for RC receiver</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="RXRSSI" units="" type="float">
        <description>RSSI</description>
      </field>
      <field name="RXLQ" units="%" type="float">
        <description>RX Link Quality</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RTC">
    <description>RTC (Unix time) information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Epoch" units="μs" type="uint64_t">
        <description>current unix epoch time*1000000 (ie. microseconds since Jan 1 1970)</description>
      </field>
      <field name="SourceType" units="" type="uint8_t">
        <description>source of RTC data</description>
        <enum name="AP_RTC::source_type">
          <element name="SOURCE_GPS">
            <value>0</value>
          </element>
          <element name="SOURCE_MAVLINK_SYSTEM_TIME">
            <value>1</value>
          </element>
          <element name="SOURCE_HW">
            <value>2</value>
          </element>
          <element name="SOURCE_NONE">
            <value>3</value>
          </element>
        </enum>
      </field>
    </fields>
  </logformat>
  <logformat name="RTCM">
    <description>GPS atmospheric perturbation data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Chan" units="instance" type="uint8_t">
        <description>mavlink channel number this data was received on</description>
      </field>
      <field name="RTCMId" units="" type="uint16_t">
        <description>ID field from RTCM packet</description>
      </field>
      <field name="Len" units="" type="uint16_t">
        <description>RTCM packet length</description>
      </field>
      <field name="CRC" units="" type="uint32_t">
        <description>calculated crc32 for the packet</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RTDT">
    <description>Attitude controller time deltas</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="dt" units="s" type="float">
        <description>current time delta</description>
      </field>
      <field name="dtAvg" units="s" type="float">
        <description>current time delta average</description>
      </field>
      <field name="dtMax" units="s" type="float">
        <description>Max time delta since last log output</description>
      </field>
      <field name="dtMin" units="s" type="float">
        <description>Min time delta since last log output</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RTER">
    <description>Replay Terrain SRTM Altitude</description>
    <fields>
      <field name="Alt" units="m" type="float">
        <description>altitude above origin in meters</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RVOH">
    <description>Replay Data Visual Odometry data</description>
    <fields>
      <field name="OX" units="" type="float">
        <description>offset, x-axis</description>
      </field>
      <field name="OY" units="" type="float">
        <description>offset, y-axis</description>
      </field>
      <field name="OZ" units="" type="float">
        <description>offset, z-axis</description>
      </field>
      <field name="Del" units="" type="uint32_t">
        <description>data delay</description>
      </field>
      <field name="H" units="" type="uint8_t">
        <description>sensor health</description>
      </field>
      <field name="Ena" units="" type="uint8_t">
        <description>sensor enabled</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RWA2">
    <description>Replay set-default-airspeed event (EKF2)</description>
    <fields>
      <field name="Airspeed" units="m/s" type="float">
        <description>default airspeed</description>
      </field>
      <field name="uncertainty" units="m/s" type="float">
        <description>uncertainty in default airspeed</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RWA3">
    <description>Replay set-default-airspeed event (EKF3)</description>
    <fields>
      <field name="Airspeed" units="m/s" type="float">
        <description>default airspeed</description>
      </field>
      <field name="Uncertainty" units="m/s" type="float">
        <description>uncertainty in default airspeed</description>
      </field>
    </fields>
  </logformat>
  <logformat name="RWOH">
    <description>Replay wheel odometry data</description>
    <fields>
      <field name="DA" units="" type="float">
        <description>delta-angle</description>
      </field>
      <field name="DT" units="" type="float">
        <description>delta-time</description>
      </field>
      <field name="TS" units="" type="uint32_t">
        <description>data timestamp</description>
      </field>
      <field name="PX" units="" type="float">
        <description>sensor body-frame offset, x-axis</description>
      </field>
      <field name="PY" units="" type="float">
        <description>sensor body-frame offset, y-axis</description>
      </field>
      <field name="PZ" units="" type="float">
        <description>sensor body-frame offset, z-axis</description>
      </field>
      <field name="R" units="" type="float">
        <description>wheel radius</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SA">
    <description>Simple Avoidance messages</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="State" units="" type="uint8_t">
        <description>True if Simple Avoidance is active</description>
      </field>
      <field name="DVelX" units="m/s" type="float">
        <description>Desired velocity, X-Axis (Velocity before Avoidance)</description>
      </field>
      <field name="DVelY" units="m/s" type="float">
        <description>Desired velocity, Y-Axis (Velocity before Avoidance)</description>
      </field>
      <field name="DVelZ" units="m/s" type="float">
        <description>Desired velocity, Z-Axis (Velocity before Avoidance)</description>
      </field>
      <field name="MVelX" units="m/s" type="float">
        <description>Modified velocity, X-Axis (Velocity after Avoidance)</description>
      </field>
      <field name="MVelY" units="m/s" type="float">
        <description>Modified velocity, Y-Axis (Velocity after Avoidance)</description>
      </field>
      <field name="MVelZ" units="m/s" type="float">
        <description>Modified velocity, Z-Axis (Velocity after Avoidance)</description>
      </field>
      <field name="Back" units="" type="uint8_t">
        <description>True if vehicle is backing away</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SAF1">
    <description>Simulated Blimp Sin-Angles</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="afx" units="" type="float">
        <description>sin(x angle)</description>
      </field>
      <field name="afy" units="" type="float">
        <description>sin(y angle)</description>
      </field>
      <field name="afz" units="" type="float">
        <description>sin(z angle)</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SAN1">
    <description>Simulated Blimp Angles</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="anx" units="" type="float">
        <description>x angle</description>
      </field>
      <field name="any" units="" type="float">
        <description>y angle</description>
      </field>
      <field name="anz" units="" type="float">
        <description>z angle</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SAN2">
    <description>Simulated Blimp Angles</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="anx" units="" type="float">
        <description>x earth-frame angle</description>
      </field>
      <field name="any" units="" type="float">
        <description>y earth-frame angle</description>
      </field>
      <field name="anz" units="" type="float">
        <description>z earth-frame angle</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SBA1">
    <description>Simulated Blimp Body-Frame accelerations</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="ax" units="" type="float">
        <description>x-axis acceleration</description>
      </field>
      <field name="ay" units="" type="float">
        <description>y-axis acceleration</description>
      </field>
      <field name="az" units="" type="float">
        <description>z-axis acceleration</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SBPH">
    <description>Swift Health Data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="CrcError" units="" type="uint32_t">
        <description>Number of packet CRC errors on serial connection</description>
      </field>
      <field name="LastInject" units="" type="uint32_t">
        <description>Timestamp of last raw data injection to GPS</description>
      </field>
      <field name="IARhyp" units="" type="uint32_t">
        <description>Current number of integer ambiguity hypotheses</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SBRE">
    <description>Swift Time Data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="GWk" units="UNKNOWN" type="uint16_t">
        <description>GPS week number</description>
      </field>
      <field name="GMS" units="UNKNOWN" type="uint32_t">
        <description>Milliseconds through GPS week</description>
      </field>
      <field name="ns_residual" units="UNKNOWN" type="int32_t">
        <description>residual of milliseconds rounding in ns</description>
      </field>
      <field name="level" units="UNKNOWN" type="uint8_t">
        <description>GPIO pin levels</description>
      </field>
      <field name="quality" units="UNKNOWN" type="uint8_t">
        <description>time quality</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SCR">
    <description>Scripting runtime stats</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Name" units="instance" type="char[16]">
        <description>script name</description>
      </field>
      <field name="Runtime" units="μs" type="uint32_t">
        <description>run time</description>
      </field>
      <field name="Total_mem" units="B" type="int32_t">
        <description>total memory usage of all scripts</description>
      </field>
      <field name="Run_mem" units="B" type="int32_t">
        <description>run memory usage</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SCTL">
    <description>Simulated Glider Drop control outputs</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Ail" units="" type="float">
        <description>aileron output</description>
      </field>
      <field name="Elev" units="" type="float">
        <description>elevator output</description>
      </field>
      <field name="Rudd" units="" type="float">
        <description>rudder output</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SCVE">
    <description>Debug message for SCurve internal error</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Sm" units="" type="float">
        <description>duration of the raised cosine jerk profile</description>
      </field>
      <field name="Jm" units="" type="float">
        <description>maximum value of the raised cosine jerk profile</description>
      </field>
      <field name="V0" units="" type="float">
        <description>initial velocity magnitude</description>
      </field>
      <field name="Am" units="" type="float">
        <description>maximum constant acceleration</description>
      </field>
      <field name="Vm" units="" type="float">
        <description>maximum constant velocity</description>
      </field>
      <field name="L" units="" type="float">
        <description>Length of the path</description>
      </field>
      <field name="Jm_out" units="" type="float">
        <description>maximum value of the raised cosine jerk profile</description>
      </field>
      <field name="tj_out" units="" type="float">
        <description>segment duration</description>
      </field>
      <field name="t2_out" units="" type="float">
        <description>segment duration</description>
      </field>
      <field name="t4_out" units="" type="float">
        <description>segment duration</description>
      </field>
      <field name="t6_out" units="" type="float">
        <description>segment duration</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SFA1">
    <description>Simulated Blimp Fin Angles</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="f0" units="" type="float">
        <description>fin 0 angle</description>
      </field>
      <field name="f1" units="" type="float">
        <description>fin 1 angle</description>
      </field>
      <field name="f2" units="" type="float">
        <description>fin 2 angle</description>
      </field>
      <field name="f3" units="" type="float">
        <description>fin 3 angle</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SFAN">
    <description>Simulated Blimp Servo Angles</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="f0" units="" type="float">
        <description>fin 0 servo angle</description>
      </field>
      <field name="f1" units="" type="float">
        <description>fin 1 servo angle</description>
      </field>
      <field name="f2" units="" type="float">
        <description>fin 2 servo angle</description>
      </field>
      <field name="f3" units="" type="float">
        <description>fin 3 servo angle</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SFN">
    <description>Simulated Blimp Fin Forces</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="n0" units="" type="float">
        <description>Fin 0 normal force</description>
      </field>
      <field name="n1" units="" type="float">
        <description>Fin 1 normal force</description>
      </field>
      <field name="n2" units="" type="float">
        <description>Fin 2 normal force</description>
      </field>
      <field name="n3" units="" type="float">
        <description>Fin 3 normal force</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SFT">
    <description>Simulated Blimp Fin Thrust</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="f0" units="" type="float">
        <description>Fin 0 tangential thrust</description>
      </field>
      <field name="f1" units="" type="float">
        <description>Fin 1 tangential thrust</description>
      </field>
      <field name="f2" units="" type="float">
        <description>Fin 2 tangential thrust</description>
      </field>
      <field name="f3" units="" type="float">
        <description>Fin 3 tangential thrust</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SFV1">
    <description>Simulated Blimp Fin Velocities</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="f0" units="" type="float">
        <description>fin 0 velocity</description>
      </field>
      <field name="f1" units="" type="float">
        <description>fin 1 velocity</description>
      </field>
      <field name="f2" units="" type="float">
        <description>fin 2 velocity</description>
      </field>
      <field name="f3" units="" type="float">
        <description>fin 3 velocity</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SIDD">
    <description>System ID data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Time" units="s" type="float">
        <description>Time reference for waveform</description>
      </field>
      <field name="Targ" units="" type="float">
        <description>Current waveform sample</description>
      </field>
      <field name="F" units="Hz" type="float">
        <description>Instantaneous waveform frequency</description>
      </field>
      <field name="Gx" units="deg/s" type="float">
        <description>Delta angle, X-Axis</description>
      </field>
      <field name="Gy" units="deg/s" type="float">
        <description>Delta angle, Y-Axis</description>
      </field>
      <field name="Gz" units="deg/s" type="float">
        <description>Delta angle, Z-Axis</description>
      </field>
      <field name="Ax" units="m/s/s" type="float">
        <description>Delta velocity, X-Axis</description>
      </field>
      <field name="Ay" units="m/s/s" type="float">
        <description>Delta velocity, Y-Axis</description>
      </field>
      <field name="Az" units="m/s/s" type="float">
        <description>Delta velocity, Z-Axis</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SIDS">
    <description>System ID settings</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Ax" units="" type="uint8_t">
        <description>The axis which is being excited</description>
      </field>
      <field name="Mag" units="" type="float">
        <description>Magnitude of the chirp waveform</description>
      </field>
      <field name="FSt" units="s" type="float">
        <description>Frequency at the start of chirp</description>
      </field>
      <field name="FSp" units="s" type="float">
        <description>Frequency at the end of chirp</description>
      </field>
      <field name="TFin" units="s" type="float">
        <description>Time to reach maximum amplitude of chirp</description>
      </field>
      <field name="TC" units="s" type="float">
        <description>Time at constant frequency before chirp starts</description>
      </field>
      <field name="TR" units="s" type="float">
        <description>Time taken to complete chirp waveform</description>
      </field>
      <field name="TFout" units="s" type="float">
        <description>Time to reach zero amplitude after chirp finishes</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SIM">
    <description>SITL simulator state</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Roll" units="deg" type="int16_t * 100">
        <description>Simulated roll</description>
      </field>
      <field name="Pitch" units="deg" type="int16_t * 100">
        <description>Simulated pitch</description>
      </field>
      <field name="Yaw" units="degheading" type="uint16_t * 100">
        <description>Simulated yaw</description>
      </field>
      <field name="Alt" units="m" type="float">
        <description>Simulated altitude</description>
      </field>
      <field name="Lat" units="deglatitude" type="int32_t latitude/longitude">
        <description>Simulated latitude</description>
      </field>
      <field name="Lng" units="deglongitude" type="int32_t latitude/longitude">
        <description>Simulated longitude</description>
      </field>
      <field name="Q1" units="" type="float">
        <description>Attitude quaternion component 1</description>
      </field>
      <field name="Q2" units="" type="float">
        <description>Attitude quaternion component 2</description>
      </field>
      <field name="Q3" units="" type="float">
        <description>Attitude quaternion component 3</description>
      </field>
      <field name="Q4" units="" type="float">
        <description>Attitude quaternion component 4</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SIM2">
    <description>Additional simulator state</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="PN" units="" type="double">
        <description>North position from home</description>
      </field>
      <field name="PE" units="" type="double">
        <description>East position from home</description>
      </field>
      <field name="PD" units="" type="double">
        <description>Down position from home</description>
      </field>
      <field name="VN" units="" type="float">
        <description>Velocity north</description>
      </field>
      <field name="VE" units="" type="float">
        <description>Velocity east</description>
      </field>
      <field name="VD" units="" type="float">
        <description>Velocity down</description>
      </field>
      <field name="As" units="" type="float">
        <description>Airspeed</description>
      </field>
      <field name="ASpdU" units="" type="float">
        <description>Achieved simulation speedup value</description>
      </field>
      <field name="UFC" units="" type="uint32_t">
        <description>Number of times simulation paused for serial0 output</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SITL">
    <description>Simulation data</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="VN" units="" type="float">
        <description>Velocity - North component</description>
      </field>
      <field name="VE" units="" type="float">
        <description>Velocity - East component</description>
      </field>
      <field name="VD" units="" type="float">
        <description>Velocity - Down component</description>
      </field>
      <field name="AN" units="" type="float">
        <description>Acceleration - North component</description>
      </field>
      <field name="AE" units="" type="float">
        <description>Acceleration - East component</description>
      </field>
      <field name="AD" units="" type="float">
        <description>Acceleration - Down component</description>
      </field>
      <field name="PN" units="" type="float">
        <description>Position - North component</description>
      </field>
      <field name="PE" units="" type="float">
        <description>Position - East component</description>
      </field>
      <field name="PD" units="" type="float">
        <description>Position - Down component</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SL2">
    <description>More Simulated Glider Dropped Calculations</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="AltFt" units="" type="float">
        <description>altitude in feet</description>
      </field>
      <field name="KEAS" units="" type="float">
        <description>equivalent airspeed in knots</description>
      </field>
      <field name="KTAS" units="" type="float">
        <description>true airspeed in knots</description>
      </field>
      <field name="AD" units="" type="float">
        <description>air density</description>
      </field>
      <field name="Fl" units="" type="float">
        <description>lift</description>
      </field>
      <field name="Fd" units="" type="float">
        <description>drag</description>
      </field>
      <field name="LD" units="" type="float">
        <description>lift/drag ratio</description>
      </field>
      <field name="Elev" units="" type="float">
        <description>elevator output</description>
      </field>
      <field name="Ail" units="" type="float">
        <description>aileron output</description>
      </field>
      <field name="Rud" units="" type="float">
        <description>rudder output</description>
      </field>
      <field name="AoA" units="" type="float">
        <description>Angle of Attack</description>
      </field>
      <field name="SSA" units="" type="float">
        <description>Side Slip Angle</description>
      </field>
      <field name="q" units="" type="float">
        <description>air pressire</description>
      </field>
      <field name="Az" units="" type="float">
        <description>z-axis body-frame acceleration</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SLD">
    <description>Simulated Glider Dropped Calculations</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="AltFt" units="" type="float">
        <description>altitude in feet</description>
      </field>
      <field name="AltM" units="" type="float">
        <description>altitude in metres</description>
      </field>
      <field name="EAS" units="" type="float">
        <description>equivalent airspeed</description>
      </field>
      <field name="TAS" units="" type="float">
        <description>true airspeed</description>
      </field>
      <field name="AD" units="" type="float">
        <description>air density</description>
      </field>
      <field name="Fl" units="" type="float">
        <description>lift</description>
      </field>
      <field name="Fd" units="" type="float">
        <description>drag</description>
      </field>
      <field name="LD" units="" type="float">
        <description>lift/drag ratio</description>
      </field>
      <field name="Elev" units="" type="float">
        <description>elevator output</description>
      </field>
      <field name="AoA" units="" type="float">
        <description>angle of attack</description>
      </field>
      <field name="Fx" units="" type="float">
        <description>X-axis force</description>
      </field>
      <field name="Fy" units="" type="float">
        <description>Y-axis force</description>
      </field>
      <field name="Fz" units="" type="float">
        <description>Z-axis force</description>
      </field>
      <field name="q" units="" type="float">
        <description>air pressure</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SLUP">
    <description>Slung payload</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Land" units="" type="int8_t">
        <description>1 if payload is landed, 0 otherwise</description>
      </field>
      <field name="Tens" units="1e2 %" type="float">
        <description>Tension ratio, 1 if line is taut, 0 if slack</description>
      </field>
      <field name="Len" units="m" type="float">
        <description>Line length</description>
      </field>
      <field name="PN" units="m" type="float">
        <description>Payload position as offset from vehicle in North direction</description>
      </field>
      <field name="PE" units="m" type="float">
        <description>Payload position as offset from vehicle in East direction</description>
      </field>
      <field name="PD" units="m" type="float">
        <description>Payload position as offset from vehicle in Down direction</description>
      </field>
      <field name="VN" units="m/s" type="float">
        <description>Payload velocity in North direction</description>
      </field>
      <field name="VE" units="m/s" type="float">
        <description>Payload velocity in East direction</description>
      </field>
      <field name="VD" units="m/s" type="float">
        <description>Payload velocity in Down direction</description>
      </field>
      <field name="AN" units="m/s/s" type="float">
        <description>Payload acceleration in North direction</description>
      </field>
      <field name="AE" units="m/s/s" type="float">
        <description>Payload acceleration in East direction</description>
      </field>
      <field name="AD" units="m/s/s" type="float">
        <description>Payload acceleration in Down direction</description>
      </field>
      <field name="VFN" units="" type="float">
        <description>Force on vehicle in North direction</description>
      </field>
      <field name="VFE" units="" type="float">
        <description>Force on vehicle in East direction</description>
      </field>
      <field name="VFD" units="" type="float">
        <description>Force on vehicle in Down direction</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SLV1">
    <description>Log data received from JSON simulator 1</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup (us)</description>
      </field>
      <field name="Instance" units="instance" type="uint8_t">
        <description>Slave instance</description>
      </field>
      <field name="magic" units="" type="uint16_t">
        <description>magic JSON protocol key</description>
      </field>
      <field name="frame_rate" units="" type="uint16_t">
        <description>Slave instance's desired frame rate</description>
      </field>
      <field name="frame_count" units="" type="uint32_t">
        <description>Slave instance's current frame count</description>
      </field>
      <field name="active" units="" type="uint8_t">
        <description>1 if the servo outputs are being used from this instance</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SLV2">
    <description>Log data received from JSON simulator 2</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Instance" units="instance" type="uint8_t">
        <description>Slave instance</description>
      </field>
      <field name="C1" units="us" type="uint16_t">
        <description>channel 1 output</description>
      </field>
      <field name="C2" units="us" type="uint16_t">
        <description>channel 2 output</description>
      </field>
      <field name="C3" units="us" type="uint16_t">
        <description>channel 3 output</description>
      </field>
      <field name="C4" units="us" type="uint16_t">
        <description>channel 4 output</description>
      </field>
      <field name="C5" units="us" type="uint16_t">
        <description>channel 5 output</description>
      </field>
      <field name="C6" units="us" type="uint16_t">
        <description>channel 6 output</description>
      </field>
      <field name="C7" units="us" type="uint16_t">
        <description>channel 7 output</description>
      </field>
      <field name="C8" units="us" type="uint16_t">
        <description>channel 8 output</description>
      </field>
      <field name="C9" units="us" type="uint16_t">
        <description>channel 9 output</description>
      </field>
      <field name="C10" units="us" type="uint16_t">
        <description>channel 10 output</description>
      </field>
      <field name="C11" units="us" type="uint16_t">
        <description>channel 11 output</description>
      </field>
      <field name="C12" units="us" type="uint16_t">
        <description>channel 12 output</description>
      </field>
      <field name="C13" units="us" type="uint16_t">
        <description>channel 13 output</description>
      </field>
      <field name="C14" units="us" type="uint16_t">
        <description>channel 14 output</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SMGC">
    <description>Simulated Blimp Mass and COG</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="m" units="" type="float">
        <description>mass</description>
      </field>
      <field name="g" units="" type="float">
        <description>gravity</description>
      </field>
      <field name="cz" units="" type="float">
        <description>centre-of-gravity, z-axis</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SMOO">
    <description>Smoothed sensor data fed to EKF to avoid inconsistencies</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="AEx" units="" type="float">
        <description>Angular Velocity (around x-axis)</description>
      </field>
      <field name="AEy" units="" type="float">
        <description>Angular Velocity (around y-axis)</description>
      </field>
      <field name="AEz" units="" type="float">
        <description>Angular Velocity (around z-axis)</description>
      </field>
      <field name="DPx" units="" type="float">
        <description>Velocity (along x-axis)</description>
      </field>
      <field name="DPy" units="" type="float">
        <description>Velocity (along y-axis)</description>
      </field>
      <field name="DPz" units="" type="float">
        <description>Velocity (along z-axis)</description>
      </field>
      <field name="R" units="" type="float">
        <description>Roll</description>
      </field>
      <field name="P" units="" type="float">
        <description>Pitch</description>
      </field>
      <field name="Y" units="" type="float">
        <description>Yaw</description>
      </field>
      <field name="R2" units="" type="float">
        <description>DCM Roll</description>
      </field>
      <field name="P2" units="" type="float">
        <description>DCM Pitch</description>
      </field>
      <field name="Y2" units="" type="float">
        <description>DCM Yaw</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SMVZ">
    <description>Simulated Volz servo information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Id" units="instance" type="uint8_t">
        <description>Volz servo ID</description>
      </field>
      <field name="Pos" units="%" type="float">
        <description>Current Simulated Position</description>
      </field>
      <field name="DesPos" units="%" type="float">
        <description>Desired Simulated Position</description>
      </field>
      <field name="V" units="V" type="float">
        <description>simulated servo voltage</description>
      </field>
      <field name="A" units="A" type="float">
        <description>simulated servo current</description>
      </field>
      <field name="PCBT" units="degC" type="float">
        <description>simulated PCB Temperature</description>
      </field>
      <field name="MotT" units="degC" type="float">
        <description>simulated motor Temperature</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SPOL">
    <description>Spool state logging</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Spl" units="" type="uint8_t">
        <description>Motors spool state</description>
      </field>
      <field name="SplDes" units="" type="uint8_t">
        <description>Desired motors spool state</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SRT1">
    <description>Simulated Blimp Rotational forces</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="rtx" units="" type="float">
        <description>zero</description>
      </field>
      <field name="rty" units="" type="float">
        <description>zero</description>
      </field>
      <field name="rtz" units="" type="float">
        <description>zero</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SRT2">
    <description>Transformed Simulated Blimp Rotational forces</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="rtx" units="" type="float">
        <description>x-axis wobble rotational force</description>
      </field>
      <field name="rty" units="" type="float">
        <description>y-axis wobble rotational force</description>
      </field>
      <field name="rtz" units="" type="float">
        <description>z-axis wobble rotational force</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SRT3">
    <description>Simulated Blimp Torques</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="rtx" units="" type="float">
        <description>torque around x axis</description>
      </field>
      <field name="rty" units="" type="float">
        <description>torque around y axis</description>
      </field>
      <field name="rtz" units="" type="float">
        <description>torque around z axis</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SRTL">
    <description>SmartRTL statistics</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Active" units="" type="uint8_t">
        <description>true if SmartRTL could be used right now</description>
      </field>
      <field name="NumPts" units="" type="uint16_t">
        <description>number of points currently in use</description>
      </field>
      <field name="MaxPts" units="" type="uint16_t">
        <description>maximum number of points that could be used</description>
      </field>
      <field name="Action" units="" type="uint8_t">
        <description>most recent internal action taken by SRTL library</description>
        <enum name="AP_SmartRTL::Action">
          <element name="POINT_ADD">
            <value>0</value>
          </element>
          <element name="POINT_PRUNE">
            <value>1</value>
          </element>
          <element name="POINT_SIMPLIFY">
            <value>2</value>
          </element>
          <element name="ADD_FAILED_NO_SEMAPHORE">
            <value>3</value>
          </element>
          <element name="ADD_FAILED_PATH_FULL">
            <value>4</value>
          </element>
          <element name="POP_FAILED_NO_SEMAPHORE">
            <value>5</value>
          </element>
          <element name="PEEK_FAILED_NO_SEMAPHORE">
            <value>6</value>
          </element>
          <element name="DEACTIVATED_INIT_FAILED">
            <value>7</value>
          </element>
          <element name="DEACTIVATED_BAD_POSITION_TIMEOUT">
            <value>9</value>
          </element>
          <element name="DEACTIVATED_PATH_FULL_TIMEOUT">
            <value>10</value>
          </element>
          <element name="DEACTIVATED_PROGRAM_ERROR">
            <value>11</value>
          </element>
        </enum>
      </field>
      <field name="N" units="m" type="float">
        <description>point associated with most recent action (North component)</description>
      </field>
      <field name="E" units="m" type="float">
        <description>point associated with most recent action (East component)</description>
      </field>
      <field name="D" units="m" type="float">
        <description>point associated with most recent action (Down component)</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SSAN">
    <description>Simulated Blimp Servo Inputs</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="f0" units="" type="uint16_t">
        <description>fin 0 servo angle input</description>
      </field>
      <field name="f1" units="" type="uint16_t">
        <description>fin 1 servo angle input</description>
      </field>
      <field name="f2" units="" type="uint16_t">
        <description>fin 2 servo angle input</description>
      </field>
      <field name="f3" units="" type="uint16_t">
        <description>fin 3 servo angle input</description>
      </field>
    </fields>
  </logformat>
  <logformat name="STAK">
    <description>Stack information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Id" units="instance" type="uint8_t">
        <description>thread ID</description>
      </field>
      <field name="Pri" units="" type="uint8_t">
        <description>thread priority</description>
      </field>
      <field name="Total" units="" type="uint16_t">
        <description>total stack</description>
      </field>
      <field name="Free" units="" type="uint16_t">
        <description>free stack</description>
      </field>
      <field name="Name" units="" type="char[16]">
        <description>thread name</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SURF">
    <description>Surface distance measurement</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>Instance</description>
      </field>
      <field name="St" units="" type="uint8_t">
        <description>Surface distance status</description>
        <bitmask name="Surface_Distance_Status">
          <bit name="Enabled">
            <value>1</value>
            <description>true if rangefinder has been set to enable by vehicle</description>
          </bit>
          <bit name="Unhealthy">
            <value>2</value>
            <description>true if rangefinder is considered unhealthy</description>
          </bit>
          <bit name="Stale_Data">
            <value>4</value>
            <description>true if the last healthy rangefinder reading is no longer valid</description>
          </bit>
          <bit name="Glitch_Detected">
            <value>8</value>
            <description>true if a measurement glitch detected</description>
          </bit>
        </bitmask>
      </field>
      <field name="D" units="m" type="float">
        <description>Raw Distance</description>
      </field>
      <field name="FD" units="m" type="float">
        <description>Filtered Distance</description>
      </field>
      <field name="TO" units="m" type="float">
        <description>Terrain Offset</description>
      </field>
    </fields>
  </logformat>
  <logformat name="SWSH">
    <description>Helicopter swashplate logging</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>Swashplate instance</description>
      </field>
      <field name="Col" units="deg" type="float">
        <description>Blade pitch angle contribution from collective</description>
      </field>
      <field name="TCyc" units="deg" type="float">
        <description>Total blade pitch angle contribution from cyclic</description>
      </field>
      <field name="PCyc" units="deg" type="float">
        <description>Blade pitch angle contribution from pitch cyclic</description>
      </field>
      <field name="RCyc" units="deg" type="float">
        <description>Blade pitch angle contribution from roll cyclic</description>
      </field>
    </fields>
  </logformat>
  <logformat name="TCLR">
    <description>Temperature Calibration Information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>temperature calibration instance number</description>
      </field>
      <field name="SType" units="" type="uint8_t">
        <description>sensor type (0==accel, 1==gyro)</description>
      </field>
      <field name="Temp" units="" type="float">
        <description>current temperature</description>
      </field>
      <field name="X" units="" type="float">
        <description>x-axis sample sum</description>
      </field>
      <field name="Y" units="" type="float">
        <description>y-axis sample sum</description>
      </field>
      <field name="Z" units="" type="float">
        <description>z-axis sample sum</description>
      </field>
      <field name="NSamp" units="" type="uint32_t">
        <description>sample count</description>
      </field>
    </fields>
  </logformat>
  <logformat name="TEMP">
    <description>Temperature Sensor Data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Instance" units="instance" type="uint8_t">
        <description>temperature sensor instance</description>
      </field>
      <field name="Temp" units="degC" type="float">
        <description>temperature</description>
      </field>
    </fields>
  </logformat>
  <logformat name="TERR">
    <description>Terrain database information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Status" units="" type="uint8_t">
        <description>Terrain database status</description>
        <enum name="AP_Terrain::TerrainStatus">
          <element name="TerrainStatusDisabled">
            <value>0</value>
            <description>not enabled</description>
          </element>
          <element name="TerrainStatusUnhealthy">
            <value>1</value>
            <description>no terrain data for current location</description>
          </element>
          <element name="TerrainStatusOK">
            <value>2</value>
            <description>terrain data available</description>
          </element>
        </enum>
      </field>
      <field name="Lat" units="deglatitude" type="int32_t latitude/longitude">
        <description>Current vehicle latitude</description>
      </field>
      <field name="Lng" units="deglongitude" type="int32_t latitude/longitude">
        <description>Current vehicle longitude</description>
      </field>
      <field name="Spacing" units="" type="uint16_t">
        <description>terrain Tile spacing</description>
      </field>
      <field name="TerrH" units="m" type="float">
        <description>current Terrain height</description>
      </field>
      <field name="CHeight" units="m" type="float">
        <description>Vehicle height above terrain</description>
      </field>
      <field name="Pending" units="" type="uint16_t">
        <description>Number of tile requests outstanding</description>
      </field>
      <field name="Loaded" units="" type="uint16_t">
        <description>Number of tiles in memory</description>
      </field>
      <field name="ROfs" units="m" type="float">
        <description>terrain reference offset for arming altitude</description>
      </field>
    </fields>
  </logformat>
  <logformat name="TETH">
    <description>Tether state</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Len" units="" type="float">
        <description>Tether length</description>
      </field>
      <field name="VFN" units="" type="float">
        <description>Force on vehicle in North direction</description>
      </field>
      <field name="VFE" units="" type="float">
        <description>Force on vehicle in East direction</description>
      </field>
      <field name="VFD" units="" type="float">
        <description>Force on vehicle in Down direction</description>
      </field>
    </fields>
  </logformat>
  <logformat name="THRO">
    <url>https://ardupilot.org/copter/docs/throw-mode.html</url>
    <description>Throw Mode messages</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Stage" units="" type="uint8_t">
        <description>Current stage of the Throw Mode</description>
      </field>
      <field name="Vel" units="m/s" type="float">
        <description>Magnitude of the velocity vector</description>
      </field>
      <field name="VelZ" units="m/s" type="float">
        <description>Vertical Velocity</description>
      </field>
      <field name="Acc" units="m/s/s" type="float">
        <description>Magnitude of the vector of the current acceleration</description>
      </field>
      <field name="AccEfZ" units="m/s/s" type="float">
        <description>Vertical earth frame accelerometer value</description>
      </field>
      <field name="Throw" units="" type="int8_t">
        <description>True if a throw has been detected since entering this mode</description>
      </field>
      <field name="AttOk" units="" type="int8_t">
        <description>True if the vehicle is upright </description>
      </field>
      <field name="HgtOk" units="" type="int8_t">
        <description>True if the vehicle is within 0.5 m of the demanded height</description>
      </field>
      <field name="PosOk" units="" type="int8_t">
        <description>True if the vehicle is within 0.5 m of the demanded horizontal position</description>
      </field>
    </fields>
  </logformat>
  <logformat name="THST">
    <description>Maximum thrust limitation based on battery voltage in Toy Mode</description>
    <fields>
      <field name="TimeUS" units="" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Vol" units="" type="float">
        <description>Filtered battery voltage</description>
      </field>
      <field name="Mul" units="" type="float">
        <description>Thrust multiplier between 0 and 1 to limit the output thrust based on battery voltage</description>
      </field>
      <field name="M1" units="" type="uint16_t">
        <description>Motor 1 pwm output</description>
      </field>
      <field name="M2" units="" type="uint16_t">
        <description>Motor 2 pwm output</description>
      </field>
      <field name="M3" units="" type="uint16_t">
        <description>Motor 3 pwm output</description>
      </field>
      <field name="M4" units="" type="uint16_t">
        <description>Motor 4 pwm output</description>
      </field>
    </fields>
  </logformat>
  <logformat name="TRIG">
    <description>Camera shutter information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>Instance number</description>
      </field>
      <field name="Img" units="" type="uint16_t">
        <description>Image number</description>
      </field>
      <field name="GPSTime" units="" type="uint32_t">
        <description>milliseconds since start of GPS week</description>
      </field>
      <field name="GPSWeek" units="" type="uint16_t">
        <description>weeks since 5 Jan 1980</description>
      </field>
      <field name="Lat" units="deglatitude" type="int32_t latitude/longitude">
        <description>current latitude</description>
      </field>
      <field name="Lng" units="deglongitude" type="int32_t latitude/longitude">
        <description>current longitude</description>
      </field>
      <field name="Alt" units="m" type="int32_t * 100">
        <description>current altitude</description>
      </field>
      <field name="RelAlt" units="m" type="int32_t * 100">
        <description>current altitude relative to home</description>
      </field>
      <field name="GPSAlt" units="m" type="int32_t * 100">
        <description>altitude as reported by GPS</description>
      </field>
      <field name="R" units="deg" type="float">
        <description>current vehicle roll</description>
      </field>
      <field name="P" units="deg" type="float">
        <description>current vehicle pitch</description>
      </field>
      <field name="Y" units="deg" type="float">
        <description>current vehicle yaw</description>
      </field>
    </fields>
  </logformat>
  <logformat name="TRMP">
    <description>Torqeedo Motor Param</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>instance</description>
      </field>
      <field name="RPM" units="rpm" type="int16_t">
        <description>Motor RPM</description>
      </field>
      <field name="Pow" units="Watt" type="uint16_t">
        <description>Motor power</description>
      </field>
      <field name="Volt" units="V" type="float">
        <description>Motor voltage</description>
      </field>
      <field name="Cur" units="A" type="float">
        <description>Motor current</description>
      </field>
      <field name="ETemp" units="degC" type="float">
        <description>ESC Temp</description>
      </field>
      <field name="MTemp" units="degC" type="float">
        <description>Motor Temp</description>
      </field>
    </fields>
  </logformat>
  <logformat name="TRMS">
    <description>Torqeedo Motor Status</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>instance</description>
      </field>
      <field name="State" units="" type="uint8_t">
        <description>Motor status flags</description>
      </field>
      <field name="Err" units="" type="uint16_t">
        <description>Motor error flags</description>
      </field>
    </fields>
  </logformat>
  <logformat name="TRQD">
    <description>Torqeedo Status</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>instance</description>
      </field>
      <field name="Health" units="" type="uint8_t">
        <description>Health</description>
      </field>
      <field name="DesMotSpeed" units="" type="int16_t">
        <description>Desired Motor Speed (-1000 to 1000)</description>
      </field>
      <field name="MotSpeed" units="" type="int16_t">
        <description>Motor Speed (-1000 to 1000)</description>
      </field>
      <field name="SuccCnt" units="" type="uint32_t">
        <description>Success Count</description>
      </field>
      <field name="ErrCnt" units="" type="uint32_t">
        <description>Error Count</description>
      </field>
    </fields>
  </logformat>
  <logformat name="TRSE">
    <description>Torqeedo System Setup</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>instance</description>
      </field>
      <field name="Flag" units="" type="uint8_t">
        <description>Flags</description>
      </field>
      <field name="MotType" units="" type="uint8_t">
        <description>Motor type</description>
      </field>
      <field name="MotVer" units="" type="uint16_t">
        <description>Motor software version</description>
      </field>
      <field name="BattCap" units="Ah" type="uint16_t">
        <description>Battery capacity</description>
      </field>
      <field name="BattPct" units="%" type="uint8_t">
        <description>Battery charge percentage</description>
      </field>
      <field name="BattType" units="" type="uint8_t">
        <description>Battery type</description>
      </field>
      <field name="SwVer" units="" type="uint16_t">
        <description>Master software version</description>
      </field>
    </fields>
  </logformat>
  <logformat name="TRST">
    <description>Torqeedo System State</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>instance</description>
      </field>
      <field name="F" units="" type="uint16_t">
        <description>Flags bitmask</description>
      </field>
      <field name="Err" units="" type="uint8_t">
        <description>Master error code</description>
      </field>
      <field name="MVolt" units="V" type="float">
        <description>Motor voltage</description>
      </field>
      <field name="MCur" units="A" type="float">
        <description>Motor current</description>
      </field>
      <field name="Pow" units="Watt" type="uint16_t">
        <description>Motor power</description>
      </field>
      <field name="RPM" units="rpm" type="int16_t">
        <description>Motor RPM</description>
      </field>
      <field name="MTemp" units="degC" type="uint8_t">
        <description>Motor Temp (higher of pcb or stator)</description>
      </field>
      <field name="BPct" units="%" type="uint8_t">
        <description>Battery charge percentage</description>
      </field>
      <field name="BVolt" units="V" type="float">
        <description>Battery voltage</description>
      </field>
      <field name="BCur" units="A" type="float">
        <description>Battery current</description>
      </field>
    </fields>
  </logformat>
  <logformat name="TSYN">
    <description>Time synchronisation response information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="SysID" units="" type="uint32_t">
        <description>system ID this data is for</description>
      </field>
      <field name="RTT" units="μs" type="uint64_t">
        <description>round trip time for this system</description>
      </field>
    </fields>
  </logformat>
  <logformat name="UART">
    <description>UART stats</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>instance</description>
      </field>
      <field name="Tx" units="B/s" type="float">
        <description>transmitted data rate bytes per second</description>
      </field>
      <field name="Rx" units="B/s" type="float">
        <description>received data rate bytes per second, this is all incoming data, it may not all be processed by the driver using this port.</description>
      </field>
      <field name="RxDp" units="B/s" type="float">
        <description>Data rate of dropped received bytes, ideally should be 0. This is the difference between the received data rate and the processed data rate.</description>
      </field>
    </fields>
  </logformat>
  <logformat name="UBX1">
    <description>uBlox-specific GPS information (part 1)</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Instance" units="instance" type="uint8_t">
        <description>GPS instance number</description>
      </field>
      <field name="noisePerMS" units="" type="uint16_t">
        <description>noise level as measured by GPS</description>
      </field>
      <field name="jamInd" units="" type="uint8_t">
        <description>jamming indicator; higher is more likely jammed</description>
      </field>
      <field name="aPower" units="" type="uint8_t">
        <description>antenna power indicator; 2 is don't know</description>
      </field>
      <field name="agcCnt" units="" type="uint16_t">
        <description>automatic gain control monitor</description>
      </field>
      <field name="config" units="" type="uint32_t">
        <description>bitmask for messages which haven't been seen</description>
      </field>
    </fields>
  </logformat>
  <logformat name="UBX2">
    <description>uBlox-specific GPS information (part 2)</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Instance" units="instance" type="uint8_t">
        <description>GPS instance number</description>
      </field>
      <field name="ofsI" units="" type="int8_t">
        <description>imbalance of I part of complex signal</description>
      </field>
      <field name="magI" units="" type="uint8_t">
        <description>magnitude of I part of complex signal</description>
      </field>
      <field name="ofsQ" units="" type="int8_t">
        <description>imbalance of Q part of complex signal</description>
      </field>
      <field name="magQ" units="" type="uint8_t">
        <description>magnitude of Q part of complex signal</description>
      </field>
    </fields>
  </logformat>
  <logformat name="UBXT">
    <description>uBlox specific UBX-TIM-TM2 logging, see uBlox interface description</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="I" units="instance" type="uint8_t">
        <description>GPS instance number</description>
      </field>
      <field name="ch" units="" type="uint8_t">
        <description>Channel (i.e. EXTINT) upon which the pulse was measured</description>
      </field>
      <field name="flags" units="" type="uint8_t">
        <description>Bitmask</description>
      </field>
      <field name="count" units="" type="uint16_t">
        <description>Rising edge counter</description>
      </field>
      <field name="wnR" units="" type="uint16_t">
        <description>Week number of last rising edge</description>
      </field>
      <field name="MsR" units="ms" type="uint32_t">
        <description>Tow of rising edge</description>
      </field>
      <field name="SubMsR" units="ns" type="uint32_t">
        <description>Millisecond fraction of tow of rising edge in nanoseconds</description>
      </field>
      <field name="wnF" units="" type="uint16_t">
        <description>Week number of last falling edge</description>
      </field>
      <field name="MsF" units="ms" type="uint32_t">
        <description>Tow of falling edge</description>
      </field>
      <field name="SubMsF" units="ns" type="uint32_t">
        <description>Millisecond fraction of tow of falling edge in nanoseconds</description>
      </field>
      <field name="accEst" units="ns" type="uint32_t">
        <description>Accuracy estimate</description>
      </field>
    </fields>
  </logformat>
  <logformat name="UNIT">
    <description>Message mapping from single character to SI unit</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Id" units="" type="int8_t">
        <description>character referenced by FMTU</description>
      </field>
      <field name="Label" units="" type="char[64]">
        <description>Unit - SI where available</description>
      </field>
    </fields>
  </logformat>
  <logformat name="VER">
    <description>Ardupilot version</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="BT" units="" type="uint8_t">
        <description>Board type</description>
        <enum name="HAL_BOARD">
          <element name="HAL_BOARD_SITL">
            <value>3</value>
          </element>
          <element name="HAL_BOARD_LINUX">
            <value>7</value>
          </element>
          <element name="HAL_BOARD_CHIBIOS">
            <value>10</value>
          </element>
          <element name="HAL_BOARD_ESP32">
            <value>12</value>
          </element>
          <element name="HAL_BOARD_QURT">
            <value>13</value>
          </element>
          <element name="HAL_BOARD_EMPTY">
            <value>99</value>
          </element>
        </enum>
      </field>
      <field name="BST" units="" type="uint16_t">
        <description>Board subtype</description>
        <enum name="HAL_BOARD_SUBTYPE">
          <element name="HAL_BOARD_SUBTYPE_NONE">
            <value>-1</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_NONE">
            <value>1000</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_ERLEBOARD">
            <value>1001</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_PXF">
            <value>1002</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_NAVIO">
            <value>1003</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_BBBMINI">
            <value>1005</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_BEBOP">
            <value>1006</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_ERLEBRAIN2">
            <value>1009</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_BH">
            <value>1010</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_PXFMINI">
            <value>1012</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_NAVIO2">
            <value>1013</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_DISCO">
            <value>1014</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_DARK">
            <value>1016</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_BLUE">
            <value>1018</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_EDGE">
            <value>1020</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_POCKET">
            <value>1022</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_NAVIGATOR">
            <value>1023</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_VNAV">
            <value>1024</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_OBAL_V1">
            <value>1025</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_CANZERO">
            <value>1026</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_PILOTPI">
            <value>1027</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_POCKET2">
            <value>1028</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_T3_GEM_O1">
            <value>1029</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_RSAXVC_V1">
            <value>1030</value>
          </element>
          <element name="HAL_BOARD_SUBTYPE_LINUX_RPI">
            <value>1031</value>
          </element>
        </enum>
      </field>
      <field name="Maj" units="" type="uint8_t">
        <description>Major version number</description>
      </field>
      <field name="Min" units="" type="uint8_t">
        <description>Minor version number</description>
      </field>
      <field name="Pat" units="" type="uint8_t">
        <description>Patch number</description>
      </field>
      <field name="FWT" units="" type="uint8_t">
        <description>Firmware type</description>
      </field>
      <field name="GH" units="" type="uint32_t">
        <description>Github commit</description>
      </field>
      <field name="FWS" units="" type="char[64]">
        <description>Firmware version string</description>
      </field>
      <field name="APJ" units="" type="uint16_t">
        <description>Board ID</description>
      </field>
      <field name="BU" units="" type="uint8_t">
        <description>Build vehicle type</description>
        <enum name="APM_BUILD">
          <element name="APM_BUILD_Rover">
            <value>1</value>
          </element>
          <element name="APM_BUILD_ArduCopter">
            <value>2</value>
          </element>
          <element name="APM_BUILD_ArduPlane">
            <value>3</value>
          </element>
          <element name="APM_BUILD_AntennaTracker">
            <value>4</value>
          </element>
          <element name="APM_BUILD_UNKNOWN">
            <value>5</value>
          </element>
          <element name="APM_BUILD_Replay">
            <value>6</value>
          </element>
          <element name="APM_BUILD_ArduSub">
            <value>7</value>
          </element>
          <element name="APM_BUILD_iofirmware">
            <value>8</value>
          </element>
          <element name="APM_BUILD_AP_Periph">
            <value>9</value>
          </element>
          <element name="APM_BUILD_AP_DAL_Standalone">
            <value>10</value>
          </element>
          <element name="APM_BUILD_AP_Bootloader">
            <value>11</value>
          </element>
          <element name="APM_BUILD_Blimp">
            <value>12</value>
          </element>
          <element name="APM_BUILD_Heli">
            <value>13</value>
          </element>
        </enum>
      </field>
      <field name="FV" units="" type="uint8_t">
        <description>Filter version</description>
      </field>
      <field name="IMI" units="" type="uint32_t">
        <description>IOMCU MCU ID</description>
      </field>
      <field name="ICI" units="" type="uint32_t">
        <description>IOMCU CPU ID</description>
      </field>
    </fields>
  </logformat>
  <logformat name="VIBE">
    <description>Processed (acceleration) vibration information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="IMU" units="instance" type="uint8_t">
        <description>Vibration instance number</description>
      </field>
      <field name="VibeX" units="m/s/s" type="float">
        <description>Filtered accelerometer vibration, x-axis</description>
      </field>
      <field name="VibeY" units="m/s/s" type="float">
        <description>Filtered accelerometer vibration, y-axis</description>
      </field>
      <field name="VibeZ" units="m/s/s" type="float">
        <description>Filtered accelerometer vibration, z-axis</description>
      </field>
      <field name="Clip" units="" type="uint32_t">
        <description>Number of clipping events on this accelerometer</description>
      </field>
    </fields>
  </logformat>
  <logformat name="VISO">
    <description>Visual Odometry</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>System time</description>
      </field>
      <field name="dt" units="μs" type="float">
        <description>Time period this data covers</description>
      </field>
      <field name="AngDX" units="rad" type="float">
        <description>Angular change for body-frame roll axis</description>
      </field>
      <field name="AngDY" units="rad" type="float">
        <description>Angular change for body-frame pitch axis</description>
      </field>
      <field name="AngDZ" units="rad" type="float">
        <description>Angular change for body-frame z axis</description>
      </field>
      <field name="PosDX" units="m" type="float">
        <description>Position change for body-frame X axis (Forward-Back)</description>
      </field>
      <field name="PosDY" units="m" type="float">
        <description>Position change for body-frame Y axis (Right-Left)</description>
      </field>
      <field name="PosDZ" units="m" type="float">
        <description>Position change for body-frame Z axis (Down-Up)</description>
      </field>
      <field name="conf" units="" type="float">
        <description>Confidence</description>
      </field>
    </fields>
  </logformat>
  <logformat name="VISP">
    <description>Vision Position</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>System time</description>
      </field>
      <field name="RTimeUS" units="μs" type="uint64_t">
        <description>Remote system time</description>
      </field>
      <field name="CTimeMS" units="ms" type="uint32_t">
        <description>Corrected system time</description>
      </field>
      <field name="PX" units="m" type="float">
        <description>Position X-axis (North-South)</description>
      </field>
      <field name="PY" units="m" type="float">
        <description>Position Y-axis (East-West)</description>
      </field>
      <field name="PZ" units="m" type="float">
        <description>Position Z-axis (Down-Up)</description>
      </field>
      <field name="R" units="deg" type="float">
        <description>Roll lean angle</description>
      </field>
      <field name="P" units="deg" type="float">
        <description>Pitch lean angle</description>
      </field>
      <field name="Y" units="degheading" type="float">
        <description>Yaw angle</description>
      </field>
      <field name="PErr" units="m" type="float">
        <description>Position estimate error</description>
      </field>
      <field name="AErr" units="deg" type="float">
        <description>Attitude estimate error</description>
      </field>
      <field name="Rst" units="" type="uint8_t">
        <description>Position reset counter</description>
      </field>
      <field name="Ign" units="" type="uint8_t">
        <description>Ignored</description>
      </field>
      <field name="Q" units="%" type="int8_t">
        <description>Quality</description>
      </field>
    </fields>
  </logformat>
  <logformat name="VISV">
    <description>Vision Velocity</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>System time</description>
      </field>
      <field name="RTimeUS" units="μs" type="uint64_t">
        <description>Remote system time</description>
      </field>
      <field name="CTimeMS" units="ms" type="uint32_t">
        <description>Corrected system time</description>
      </field>
      <field name="VX" units="m/s" type="float">
        <description>Velocity X-axis (North-South)</description>
      </field>
      <field name="VY" units="m/s" type="float">
        <description>Velocity Y-axis (East-West)</description>
      </field>
      <field name="VZ" units="m/s" type="float">
        <description>Velocity Z-axis (Down-Up)</description>
      </field>
      <field name="VErr" units="m/s" type="float">
        <description>Velocity estimate error</description>
      </field>
      <field name="Rst" units="" type="uint8_t">
        <description>Velocity reset counter</description>
      </field>
      <field name="Ign" units="" type="uint8_t">
        <description>Ignored</description>
      </field>
      <field name="Q" units="%" type="int8_t">
        <description>Quality</description>
      </field>
    </fields>
  </logformat>
  <logformat name="VNAT">
    <description>VectorNav Attitude data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Q1" units="" type="float">
        <description>Attitude quaternion 1</description>
      </field>
      <field name="Q2" units="" type="float">
        <description>Attitude quaternion 2</description>
      </field>
      <field name="Q3" units="" type="float">
        <description>Attitude quaternion 3</description>
      </field>
      <field name="Q4" units="" type="float">
        <description>Attitude quaternion 4</description>
      </field>
      <field name="Yaw" units="deg" type="float">
        <description>Yaw</description>
      </field>
      <field name="Pitch" units="deg" type="float">
        <description>Pitch</description>
      </field>
      <field name="Roll" units="deg" type="float">
        <description>Roll</description>
      </field>
      <field name="YU" units="deg" type="float">
        <description>Yaw unceratainty</description>
      </field>
      <field name="PU" units="deg" type="float">
        <description>Pitch uncertainty</description>
      </field>
      <field name="RU" units="deg" type="float">
        <description>Roll uncertainty</description>
      </field>
    </fields>
  </logformat>
  <logformat name="VNIM">
    <description>VectorNav IMU data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Temp" units="deg" type="float">
        <description>Temprature</description>
      </field>
      <field name="Pres" units="Pa" type="float">
        <description>Pressure</description>
      </field>
      <field name="MX" units="Gauss" type="float">
        <description>Magnetic feild X-axis</description>
      </field>
      <field name="MY" units="Gauss" type="float">
        <description>Magnetic feild Y-axis</description>
      </field>
      <field name="MZ" units="Gauss" type="float">
        <description>Magnetic feild Z-axis</description>
      </field>
      <field name="AX" units="m/s/s" type="float">
        <description>Acceleration X-axis</description>
      </field>
      <field name="AY" units="m/s/s" type="float">
        <description>Acceleration Y-axis</description>
      </field>
      <field name="AZ" units="m/s/s" type="float">
        <description>Acceleration Z-axis</description>
      </field>
      <field name="GX" units="rad/s" type="float">
        <description>Rotation rate X-axis</description>
      </field>
      <field name="GY" units="rad/s" type="float">
        <description>Rotation rate Y-axis</description>
      </field>
      <field name="GZ" units="rad/s" type="float">
        <description>Rotation rate Z-axis</description>
      </field>
    </fields>
  </logformat>
  <logformat name="VNKF">
    <description>VectorNav INS Kalman Filter data</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="InsStatus" units="" type="uint16_t">
        <description>VectorNav INS health status</description>
      </field>
      <field name="Lat" units="deg" type="double">
        <description>Latitude</description>
      </field>
      <field name="Lon" units="deg" type="double">
        <description>Longitude</description>
      </field>
      <field name="Alt" units="m" type="double">
        <description>Altitude</description>
      </field>
      <field name="VelN" units="m/s" type="float">
        <description>Velocity Northing</description>
      </field>
      <field name="VelE" units="m/s" type="float">
        <description>Velocity Easting</description>
      </field>
      <field name="VelD" units="m/s" type="float">
        <description>Velocity Downing</description>
      </field>
      <field name="PosU" units="deg" type="float">
        <description>Filter estimated position uncertainty</description>
      </field>
      <field name="VelU" units="m/s" type="float">
        <description>Filter estimated Velocity uncertainty</description>
      </field>
    </fields>
  </logformat>
  <logformat name="VSTB">
    <description>Log message for video stabilisation software such as Gyroflow</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="GyrX" units="rad/s" type="float">
        <description>measured rotation rate about X axis</description>
      </field>
      <field name="GyrY" units="rad/s" type="float">
        <description>measured rotation rate about Y axis</description>
      </field>
      <field name="GyrZ" units="rad/s" type="float">
        <description>measured rotation rate about Z axis</description>
      </field>
      <field name="AccX" units="m/s/s" type="float">
        <description>acceleration along X axis</description>
      </field>
      <field name="AccY" units="m/s/s" type="float">
        <description>acceleration along Y axis</description>
      </field>
      <field name="AccZ" units="m/s/s" type="float">
        <description>acceleration along Z axis</description>
      </field>
      <field name="Q1" units="" type="float">
        <description>Estimated attitude quaternion component 1</description>
      </field>
      <field name="Q2" units="" type="float">
        <description>Estimated attitude quaternion component 2</description>
      </field>
      <field name="Q3" units="" type="float">
        <description>Estimated attitude quaternion component 3</description>
      </field>
      <field name="Q4" units="" type="float">
        <description>Estimated attitude quaternion component 4</description>
      </field>
    </fields>
  </logformat>
  <logformat name="WDOG">
    <description>Watchdog diagnostics</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Tsk" units="" type="int8_t">
        <description>current task number</description>
      </field>
      <field name="IE" units="" type="uint32_t">
        <description>internal error mast</description>
      </field>
      <field name="IEC" units="" type="uint16_t">
        <description>internal error count</description>
      </field>
      <field name="IEL" units="" type="uint16_t">
        <description>line internal error was raised on</description>
      </field>
      <field name="MvMsg" units="" type="uint16_t">
        <description>mavlink message being acted on</description>
      </field>
      <field name="MvCmd" units="" type="uint16_t">
        <description>mavlink command being acted on</description>
      </field>
      <field name="SmLn" units="" type="uint16_t">
        <description>line semaphore was taken on</description>
      </field>
      <field name="FL" units="" type="uint16_t">
        <description>fault_line</description>
      </field>
      <field name="FT" units="" type="uint16_t">
        <description>fault_type</description>
      </field>
      <field name="FA" units="" type="uint32_t">
        <description>fault address</description>
      </field>
      <field name="FP" units="" type="uint8_t">
        <description>fault thread priority</description>
      </field>
      <field name="ICSR" units="" type="uint32_t">
        <description>ICS regiuster</description>
      </field>
      <field name="LR" units="" type="uint32_t">
        <description>long return address</description>
      </field>
      <field name="TN" units="" type="char[4]">
        <description>Thread name</description>
      </field>
    </fields>
  </logformat>
  <logformat name="WENC">
    <description>Wheel encoder measurements</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Dist0" units="m" type="float">
        <description>First wheel distance travelled</description>
      </field>
      <field name="Qual0" units="" type="int8_t">
        <description>Quality measurement of Dist0</description>
      </field>
      <field name="Dist1" units="m" type="float">
        <description>Second wheel distance travelled</description>
      </field>
      <field name="Qual1" units="" type="int8_t">
        <description>Quality measurement of Dist1</description>
      </field>
    </fields>
  </logformat>
  <logformat name="WINC">
    <description>Winch</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="Heal" units="" type="uint8_t">
        <description>Healthy</description>
      </field>
      <field name="ThEnd" units="" type="uint8_t">
        <description>Reached end of thread</description>
      </field>
      <field name="Mov" units="" type="uint8_t">
        <description>Motor is moving</description>
      </field>
      <field name="Clut" units="" type="uint8_t">
        <description>Clutch is disengaged (motor can move freely)</description>
      </field>
      <field name="Mode" units="" type="uint8_t">
        <description>0 is Relaxed, 1 is Position Control, 2 is Rate Control</description>
      </field>
      <field name="DLen" units="m" type="float">
        <description>Desired Length</description>
      </field>
      <field name="Len" units="m" type="float">
        <description>Estimated Length</description>
      </field>
      <field name="DRate" units="m/s" type="float">
        <description>Desired Rate</description>
      </field>
      <field name="Tens" units="UNKNOWN" type="uint16_t">
        <description>Tension on line</description>
      </field>
      <field name="Vcc" units="V" type="float">
        <description>Voltage to Motor</description>
      </field>
      <field name="Temp" units="degC" type="int8_t">
        <description>Motor temperature</description>
      </field>
    </fields>
  </logformat>
  <logformat name="WIND">
    <description>Windvane readings</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="DrRaw" units="deg" type="float">
        <description>raw apparent wind direction direct from sensor, in body-frame</description>
      </field>
      <field name="DrApp" units="deg" type="float">
        <description>Apparent wind direction, in body-frame</description>
      </field>
      <field name="DrTru" units="degheading" type="float">
        <description>True wind direction</description>
      </field>
      <field name="SpdRaw" units="m/s" type="float">
        <description>raw wind speed direct from sensor</description>
      </field>
      <field name="SpdApp" units="m/s" type="float">
        <description>Apparent wind Speed</description>
      </field>
      <field name="SpdTru" units="m/s" type="float">
        <description>True wind speed</description>
      </field>
    </fields>
  </logformat>
  <logformat name="XKF0">
    <description>EKF3 beacon sensor diagnostics</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF3 core this data is for</description>
      </field>
      <field name="ID" units="" type="uint8_t">
        <description>Beacon sensor ID</description>
      </field>
      <field name="rng" units="m" type="int16_t * 100">
        <description>Beacon range</description>
      </field>
      <field name="innov" units="" type="int16_t * 100">
        <description>Beacon range innovation</description>
      </field>
      <field name="SIV" units="" type="uint16_t * 100">
        <description>sqrt of beacon range innovation variance</description>
      </field>
      <field name="TR" units="" type="uint16_t * 100">
        <description>Beacon range innovation consistency test ratio</description>
      </field>
      <field name="BPN" units="m" type="int16_t * 100">
        <description>Beacon north position</description>
      </field>
      <field name="BPE" units="m" type="int16_t * 100">
        <description>Beacon east position</description>
      </field>
      <field name="BPD" units="m" type="int16_t * 100">
        <description>Beacon down position</description>
      </field>
      <field name="OFH" units="m" type="int16_t * 100">
        <description>High estimate of vertical position offset of beacons rel to EKF origin</description>
      </field>
      <field name="OFL" units="m" type="int16_t * 100">
        <description>Low estimate of vertical position offset of beacons rel to EKF origin</description>
      </field>
      <field name="OFN" units="m" type="int16_t * 100">
        <description>North position of receiver rel to EKF origin</description>
      </field>
      <field name="OFE" units="m" type="int16_t * 100">
        <description>East position of receiver rel to EKF origin</description>
      </field>
      <field name="OFD" units="m" type="int16_t * 100">
        <description>Down position of receiver rel to EKF origin</description>
      </field>
    </fields>
  </logformat>
  <logformat name="XKF1">
    <description>EKF3 estimator outputs</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF3 core this data is for</description>
      </field>
      <field name="Roll" units="deg" type="int16_t * 100">
        <description>Estimated roll</description>
      </field>
      <field name="Pitch" units="deg" type="int16_t * 100">
        <description>Estimated pitch</description>
      </field>
      <field name="Yaw" units="degheading" type="uint16_t * 100">
        <description>Estimated yaw</description>
      </field>
      <field name="VN" units="m/s" type="float">
        <description>Estimated velocity (North component)</description>
      </field>
      <field name="VE" units="m/s" type="float">
        <description>Estimated velocity (East component)</description>
      </field>
      <field name="VD" units="m/s" type="float">
        <description>Estimated velocity (Down component)</description>
      </field>
      <field name="dPD" units="m/s" type="float">
        <description>Filtered derivative of vertical position (down)</description>
      </field>
      <field name="PN" units="m" type="float">
        <description>Estimated distance from origin (North component)</description>
      </field>
      <field name="PE" units="m" type="float">
        <description>Estimated distance from origin (East component)</description>
      </field>
      <field name="PD" units="m" type="float">
        <description>Estimated distance from origin (Down component)</description>
      </field>
      <field name="GX" units="deg/s" type="int16_t * 100">
        <description>Estimated gyro bias, X axis</description>
      </field>
      <field name="GY" units="deg/s" type="int16_t * 100">
        <description>Estimated gyro bias, Y axis</description>
      </field>
      <field name="GZ" units="deg/s" type="int16_t * 100">
        <description>Estimated gyro bias, Z axis</description>
      </field>
      <field name="OH" units="m" type="int32_t * 100">
        <description>Height of origin above WGS-84</description>
      </field>
    </fields>
  </logformat>
  <logformat name="XKF2">
    <description>EKF3 estimator secondary outputs</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF3 core this data is for</description>
      </field>
      <field name="AX" units="" type="int16_t * 100">
        <description>Estimated accelerometer X bias</description>
      </field>
      <field name="AY" units="" type="int16_t * 100">
        <description>Estimated accelerometer Y bias</description>
      </field>
      <field name="AZ" units="" type="int16_t * 100">
        <description>Estimated accelerometer Z bias</description>
      </field>
      <field name="VWN" units="m/s" type="int16_t * 100">
        <description>Estimated wind velocity (moving-to-North component)</description>
      </field>
      <field name="VWE" units="m/s" type="int16_t * 100">
        <description>Estimated wind velocity (moving-to-East component)</description>
      </field>
      <field name="MN" units="mGauss" type="int16_t">
        <description>Magnetic field strength (North component)</description>
      </field>
      <field name="ME" units="mGauss" type="int16_t">
        <description>Magnetic field strength (East component)</description>
      </field>
      <field name="MD" units="mGauss" type="int16_t">
        <description>Magnetic field strength (Down component)</description>
      </field>
      <field name="MX" units="mGauss" type="int16_t">
        <description>Magnetic field strength (body X-axis)</description>
      </field>
      <field name="MY" units="mGauss" type="int16_t">
        <description>Magnetic field strength (body Y-axis)</description>
      </field>
      <field name="MZ" units="mGauss" type="int16_t">
        <description>Magnetic field strength (body Z-axis)</description>
      </field>
      <field name="IDX" units="m/s/s" type="float">
        <description>Innovation in vehicle drag acceleration (X-axis component)</description>
      </field>
      <field name="IDY" units="m/s/s" type="float">
        <description>Innovation in vehicle drag acceleration (Y-axis component)</description>
      </field>
      <field name="IS" units="rad" type="float">
        <description>Innovation in vehicle sideslip</description>
      </field>
    </fields>
  </logformat>
  <logformat name="XKF3">
    <description>EKF3 innovations</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF3 core this data is for</description>
      </field>
      <field name="IVN" units="m/s" type="int16_t * 100">
        <description>Innovation in velocity (North component)</description>
      </field>
      <field name="IVE" units="m/s" type="int16_t * 100">
        <description>Innovation in velocity (East component)</description>
      </field>
      <field name="IVD" units="m/s" type="int16_t * 100">
        <description>Innovation in velocity (Down component)</description>
      </field>
      <field name="IPN" units="m" type="int16_t * 100">
        <description>Innovation in position (North component)</description>
      </field>
      <field name="IPE" units="m" type="int16_t * 100">
        <description>Innovation in position (East component)</description>
      </field>
      <field name="IPD" units="m" type="int16_t * 100">
        <description>Innovation in position (Down component)</description>
      </field>
      <field name="IMX" units="mGauss" type="int16_t">
        <description>Innovation in magnetic field strength (X-axis component)</description>
      </field>
      <field name="IMY" units="mGauss" type="int16_t">
        <description>Innovation in magnetic field strength (Y-axis component)</description>
      </field>
      <field name="IMZ" units="mGauss" type="int16_t">
        <description>Innovation in magnetic field strength (Z-axis component)</description>
      </field>
      <field name="IYAW" units="deg" type="int16_t * 100">
        <description>Innovation in vehicle yaw</description>
      </field>
      <field name="IVT" units="UNKNOWN" type="int16_t * 100">
        <description>Innovation in true-airspeed</description>
      </field>
      <field name="RErr" units="" type="float">
        <description>Accumulated relative error of this core with respect to active primary core</description>
      </field>
      <field name="ErSc" units="" type="float">
        <description>A consolidated error score where higher numbers are less healthy</description>
      </field>
    </fields>
  </logformat>
  <logformat name="XKF4">
    <description>EKF3 variances.  SV, SP, SH and SM are probably best described as 'Squared Innovation Test Ratios' where values &lt;1 tells us the measurement was accepted and &gt;1 tells us it was rejected. They represent the square of the (innovation / maximum allowed innovation) where the innovation is the difference between predicted and measured value and the maximum allowed innovation is determined from the uncertainty of the measurement, uncertainty of the prediction and scaled using the number of standard deviations set by the innovation gate parameter for that measurement, eg EK3_MAG_I_GATE, EK3_HGT_I_GATE, etc</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF3 core this data is for</description>
      </field>
      <field name="SV" units="" type="int16_t * 100">
        <description>Square root of the velocity variance</description>
      </field>
      <field name="SP" units="" type="int16_t * 100">
        <description>Square root of the position variance</description>
      </field>
      <field name="SH" units="" type="int16_t * 100">
        <description>Square root of the height variance</description>
      </field>
      <field name="SM" units="" type="int16_t * 100">
        <description>Magnetic field variance</description>
      </field>
      <field name="SVT" units="" type="int16_t * 100">
        <description>Square root of the total airspeed variance</description>
      </field>
      <field name="errRP" units="" type="float">
        <description>Filtered error in roll/pitch estimate</description>
      </field>
      <field name="OFN" units="m" type="float">
        <description>Most recent position reset (North component)</description>
      </field>
      <field name="OFE" units="m" type="float">
        <description>Most recent position reset (East component)</description>
      </field>
      <field name="FS" units="" type="uint16_t">
        <description>Filter fault status</description>
        <bitmask name="NavFilterFaultBit">
          <bit name="BAD_QUATERNION">
            <value>1</value>
            <description>0 - quaternion attitude estimate is NaN</description>
          </bit>
          <bit name="BAD_VELOCITY">
            <value>2</value>
            <description>1 - velocity estimate is NaN</description>
          </bit>
          <bit name="BAD_XMAG">
            <value>4</value>
            <description>2 - X magnetometer measurement is bad</description>
          </bit>
          <bit name="BAD_YMAG">
            <value>8</value>
            <description>3 - Y magnetometer measurement is bad</description>
          </bit>
          <bit name="BAD_ZMAG">
            <value>16</value>
            <description>4 - Z magnetometer measurement is bad</description>
          </bit>
          <bit name="BAD_AIRSPEED">
            <value>32</value>
            <description>5 - airspeed measurement is bad</description>
          </bit>
          <bit name="BAD_SIDESLIP">
            <value>64</value>
            <description>6 - synthetic sideslip measurement is bad</description>
          </bit>
          <bit name="NOT_INITIALISED">
            <value>128</value>
            <description>7 - filter states have not been initialised</description>
          </bit>
        </bitmask>
      </field>
      <field name="TS" units="" type="uint8_t">
        <description>Filter timeout status bitmask (0:position measurement, 1:velocity measurement, 2:height measurement, 3:magnetometer measurement, 4:airspeed measurement, 5:drag measurement)</description>
      </field>
      <field name="SS" units="" type="uint32_t">
        <description>Filter solution status</description>
        <bitmask name="NavFilterStatusBit">
          <bit name="ATTITUDE_VALID">
            <value>1</value>
            <description>attitude estimate valid</description>
          </bit>
          <bit name="HORIZ_VEL">
            <value>2</value>
            <description>horizontal velocity estimate valid</description>
          </bit>
          <bit name="VERT_VEL">
            <value>4</value>
            <description>vertical velocity estimate valid</description>
          </bit>
          <bit name="HORIZ_POS_REL">
            <value>8</value>
            <description>relative horizontal position estimate valid</description>
          </bit>
          <bit name="HORIZ_POS_ABS">
            <value>16</value>
            <description>absolute horizontal position estimate valid</description>
          </bit>
          <bit name="VERT_POS">
            <value>32</value>
            <description>vertical position estimate valid</description>
          </bit>
          <bit name="TERRAIN_ALT">
            <value>64</value>
            <description>terrain height estimate valid</description>
          </bit>
          <bit name="CONST_POS_MODE">
            <value>128</value>
            <description>in constant position mode</description>
          </bit>
          <bit name="PRED_HORIZ_POS_REL">
            <value>256</value>
            <description>expected good relative horizontal position estimate - used before takeoff</description>
          </bit>
          <bit name="PRED_HORIZ_POS_ABS">
            <value>512</value>
            <description>expected good absolute horizontal position estimate - used before takeoff</description>
          </bit>
          <bit name="TAKEOFF_DETECTED">
            <value>1024</value>
            <description>optical flow takeoff has been detected</description>
          </bit>
          <bit name="TAKEOFF_EXPECTED">
            <value>2048</value>
            <description>compensating for baro errors during takeoff</description>
          </bit>
          <bit name="TOUCHDOWN_EXPECTED">
            <value>4096</value>
            <description>compensating for baro errors during touchdown</description>
          </bit>
          <bit name="USING_GPS">
            <value>8192</value>
            <description>using GPS position</description>
          </bit>
          <bit name="GPS_GLITCHING">
            <value>16384</value>
            <description>GPS glitching is affecting navigation accuracy</description>
          </bit>
          <bit name="GPS_QUALITY_GOOD">
            <value>32768</value>
            <description>can use GPS for navigation</description>
          </bit>
          <bit name="INITALIZED">
            <value>65536</value>
            <description>has ever been healthy</description>
          </bit>
          <bit name="REJECTING_AIRSPEED">
            <value>131072</value>
            <description>rejecting airspeed data</description>
          </bit>
          <bit name="DEAD_RECKONING">
            <value>262144</value>
            <description>dead reckoning (e.g. no position or velocity source)</description>
          </bit>
        </bitmask>
      </field>
      <field name="GPS" units="" type="uint16_t">
        <description>Filter GPS status</description>
      </field>
      <field name="PI" units="" type="int8_t">
        <description>Primary core index</description>
      </field>
    </fields>
  </logformat>
  <logformat name="XKF5">
    <description>EKF3 Sensor innovations (primary core) and general dumping ground</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF3 core this data is for</description>
      </field>
      <field name="NI" units="" type="uint8_t">
        <description>Normalised flow variance</description>
      </field>
      <field name="FIX" units="" type="int16_t">
        <description>Optical flow LOS rate vector innovations from the main nav filter (X-axis)</description>
      </field>
      <field name="FIY" units="" type="int16_t">
        <description>Optical flow LOS rate vector innovations from the main nav filter (Y-axis)</description>
      </field>
      <field name="AFI" units="" type="int16_t">
        <description>Optical flow LOS rate innovation from terrain offset estimator</description>
      </field>
      <field name="HAGL" units="m" type="int16_t * 100">
        <description>Height above ground level</description>
      </field>
      <field name="TOfs" units="UNKNOWN" type="int16_t * 100">
        <description>Estimated vertical position of the terrain relative to the nav filter zero datum</description>
      </field>
      <field name="RI" units="UNKNOWN" type="int16_t * 100">
        <description>Range finder innovations</description>
      </field>
      <field name="rng" units="UNKNOWN" type="uint16_t * 100">
        <description>Measured range</description>
      </field>
      <field name="Herr" units="m" type="uint16_t * 100">
        <description>Filter ground offset state error</description>
      </field>
      <field name="eAng" units="rad" type="float">
        <description>Magnitude of angular error</description>
      </field>
      <field name="eVel" units="m/s" type="float">
        <description>Magnitude of velocity error</description>
      </field>
      <field name="ePos" units="m" type="float">
        <description>Magnitude of position error</description>
      </field>
      <field name="BOf" units="m" type="float">
        <description>Barometer offset subtracted from raw baro measurement when fusing baro height</description>
      </field>
    </fields>
  </logformat>
  <logformat name="XKFA">
    <description>EKF3 AGL Kalman Filter state (optionally used in Optical Flow scaling)</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF3 core this data is for</description>
      </field>
      <field name="HAgl" units="m" type="float">
        <description>AGL height estimate</description>
      </field>
      <field name="VAgl" units="m/s" type="float">
        <description>AGL velocity estimate</description>
      </field>
      <field name="HAglStd" units="m" type="float">
        <description>Std-dev of AGL height estimate</description>
      </field>
      <field name="VAglStd" units="m/s" type="float">
        <description>Std-dev of AGL velocity estimate</description>
      </field>
      <field name="Valid" units="" type="uint8_t">
        <description>1 when rangefinder has been fused within the last 5s</description>
      </field>
    </fields>
  </logformat>
  <logformat name="XKFD">
    <description>EKF3 Body Frame Odometry errors</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF3 core this data is for</description>
      </field>
      <field name="IX" units="" type="float">
        <description>Innovation in velocity (X-axis)</description>
      </field>
      <field name="IY" units="" type="float">
        <description>Innovation in velocity (Y-axis)</description>
      </field>
      <field name="IZ" units="" type="float">
        <description>Innovation in velocity (Z-axis)</description>
      </field>
      <field name="IVX" units="" type="float">
        <description>Variance in velocity (X-axis)</description>
      </field>
      <field name="IVY" units="" type="float">
        <description>Variance in velocity (Y-axis)</description>
      </field>
      <field name="IVZ" units="" type="float">
        <description>Variance in velocity (Z-axis)</description>
      </field>
    </fields>
  </logformat>
  <logformat name="XKFM">
    <description>EKF3 diagnostic data for on-ground-and-not-moving check</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF core this message instance applies to</description>
      </field>
      <field name="OGNM" units="" type="uint8_t">
        <description>True of on ground and not moving</description>
      </field>
      <field name="GLR" units="" type="float">
        <description>Gyroscope length ratio</description>
      </field>
      <field name="ALR" units="" type="float">
        <description>Accelerometer length ratio</description>
      </field>
      <field name="GDR" units="" type="float">
        <description>Gyroscope rate of change ratio</description>
      </field>
      <field name="ADR" units="" type="float">
        <description>Accelerometer rate of change ratio</description>
      </field>
    </fields>
  </logformat>
  <logformat name="XKFS">
    <description>EKF3 sensor selection</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF3 core this data is for</description>
      </field>
      <field name="MI" units="" type="uint8_t">
        <description>compass selection index</description>
      </field>
      <field name="BI" units="" type="uint8_t">
        <description>barometer selection index</description>
      </field>
      <field name="GI" units="" type="uint8_t">
        <description>GPS selection index</description>
      </field>
      <field name="AI" units="" type="uint8_t">
        <description>airspeed selection index</description>
      </field>
      <field name="SS" units="" type="uint8_t">
        <description>Source Set (primary=0/secondary=1/tertiary=2)</description>
      </field>
      <field name="GPS_GTA" units="" type="uint8_t">
        <description>GPS good to align</description>
      </field>
      <field name="GPS_CHK_WAIT" units="" type="uint8_t">
        <description>Waiting for GPS checks to pass</description>
      </field>
      <field name="MAG_FUSION" units="" type="uint8_t">
        <description>Magnetometer fusion (0=not fusing/1=fuse yaw/2=fuse mag/3=fuse mag with yaw anchored)</description>
      </field>
    </fields>
  </logformat>
  <logformat name="XKQ">
    <description>EKF3 quaternion defining the rotation from NED to XYZ (autopilot) axes</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF3 core this data is for</description>
      </field>
      <field name="Q1" units="UNKNOWN" type="float">
        <description>Quaternion a term</description>
      </field>
      <field name="Q2" units="UNKNOWN" type="float">
        <description>Quaternion b term</description>
      </field>
      <field name="Q3" units="UNKNOWN" type="float">
        <description>Quaternion c term</description>
      </field>
      <field name="Q4" units="UNKNOWN" type="float">
        <description>Quaternion d term</description>
      </field>
    </fields>
  </logformat>
  <logformat name="XKT">
    <description>EKF3 timing information</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF core this message instance applies to</description>
      </field>
      <field name="Cnt" units="s" type="uint32_t">
        <description>count of samples used to create this message</description>
      </field>
      <field name="IMUMin" units="s" type="float">
        <description>smallest IMU sample interval</description>
      </field>
      <field name="IMUMax" units="s" type="float">
        <description>largest IMU sample interval</description>
      </field>
      <field name="EKFMin" units="s" type="float">
        <description>low-passed achieved average time step rate for the EKF (minimum)</description>
      </field>
      <field name="EKFMax" units="s" type="float">
        <description>low-passed achieved average time step rate for the EKF (maximum)</description>
      </field>
      <field name="AngMin" units="s" type="float">
        <description>accumulated measurement time interval for the delta angle (minimum)</description>
      </field>
      <field name="AngMax" units="s" type="float">
        <description>accumulated measurement time interval for the delta angle (maximum)</description>
      </field>
      <field name="VMin" units="s" type="float">
        <description>accumulated measurement time interval for the delta velocity (minimum)</description>
      </field>
      <field name="VMax" units="s" type="float">
        <description>accumulated measurement time interval for the delta velocity (maximum)</description>
      </field>
    </fields>
  </logformat>
  <logformat name="XKTV">
    <description>EKF3 Yaw Estimator States</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF3 core this data is for</description>
      </field>
      <field name="TVS" units="rad" type="float">
        <description>Tilt Error Variance from symbolic equations (rad^2)</description>
      </field>
      <field name="TVD" units="rad" type="float">
        <description>Tilt Error Variance from difference method (rad^2)</description>
      </field>
    </fields>
  </logformat>
  <logformat name="XKV1">
    <description>EKF3 State variances (primary core)</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF3 core this data is for</description>
      </field>
      <field name="V00" units="" type="float">
        <description>Variance for state 0 (attitude quaternion)</description>
      </field>
      <field name="V01" units="" type="float">
        <description>Variance for state 1 (attitude quaternion)</description>
      </field>
      <field name="V02" units="" type="float">
        <description>Variance for state 2 (attitude quaternion)</description>
      </field>
      <field name="V03" units="" type="float">
        <description>Variance for state 3 (attitude quaternion)</description>
      </field>
      <field name="V04" units="" type="float">
        <description>Variance for state 4 (velocity-north)</description>
      </field>
      <field name="V05" units="" type="float">
        <description>Variance for state 5 (velocity-east)</description>
      </field>
      <field name="V06" units="" type="float">
        <description>Variance for state 6 (velocity-down)</description>
      </field>
      <field name="V07" units="" type="float">
        <description>Variance for state 7 (position-north)</description>
      </field>
      <field name="V08" units="" type="float">
        <description>Variance for state 8 (position-east)</description>
      </field>
      <field name="V09" units="" type="float">
        <description>Variance for state 9 (position-down)</description>
      </field>
      <field name="V10" units="" type="float">
        <description>Variance for state 10 (delta-angle-bias-x)</description>
      </field>
      <field name="V11" units="" type="float">
        <description>Variance for state 11 (delta-angle-bias-y)</description>
      </field>
    </fields>
  </logformat>
  <logformat name="XKV2">
    <description>more EKF3 State Variances (primary core)</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF3 core this data is for</description>
      </field>
      <field name="V12" units="" type="float">
        <description>Variance for state 12 (delta-angle-bias-z)</description>
      </field>
      <field name="V13" units="" type="float">
        <description>Variance for state 13 (delta-velocity-bias-x)</description>
      </field>
      <field name="V14" units="" type="float">
        <description>Variance for state 14 (delta-velocity-bias-y)</description>
      </field>
      <field name="V15" units="" type="float">
        <description>Variance for state 15 (delta-velocity-bias-z)</description>
      </field>
      <field name="V16" units="" type="float">
        <description>Variance for state 16 (Earth-frame mag-field-bias-x)</description>
      </field>
      <field name="V17" units="" type="float">
        <description>Variance for state 17 (Earth-frame mag-field-bias-y)</description>
      </field>
      <field name="V18" units="" type="float">
        <description>Variance for state 18 (Earth-frame mag-field-bias-z)</description>
      </field>
      <field name="V19" units="" type="float">
        <description>Variance for state 19 (body-frame mag-field-bias-x)</description>
      </field>
      <field name="V20" units="" type="float">
        <description>Variance for state 20 (body-frame mag-field-bias-y)</description>
      </field>
      <field name="V21" units="" type="float">
        <description>Variance for state 21 (body-frame mag-field-bias-z)</description>
      </field>
      <field name="V22" units="" type="float">
        <description>Variance for state 22 (wind-north)</description>
      </field>
      <field name="V23" units="" type="float">
        <description>Variance for state 23 (wind-east)</description>
      </field>
    </fields>
  </logformat>
  <logformat name="XKY0">
    <description>EKF Yaw Estimator States</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF core this data is for</description>
      </field>
      <field name="YC" units="degheading" type="float">
        <description>GSF yaw estimate (deg)</description>
      </field>
      <field name="YCS" units="deg" type="float">
        <description>GSF yaw estimate 1-Sigma uncertainty (deg)</description>
      </field>
      <field name="Y0" units="degheading" type="float">
        <description>Yaw estimate from individual EKF filter 0 (deg)</description>
      </field>
      <field name="Y1" units="degheading" type="float">
        <description>Yaw estimate from individual EKF filter 1 (deg)</description>
      </field>
      <field name="Y2" units="degheading" type="float">
        <description>Yaw estimate from individual EKF filter 2 (deg)</description>
      </field>
      <field name="Y3" units="degheading" type="float">
        <description>Yaw estimate from individual EKF filter 3 (deg)</description>
      </field>
      <field name="Y4" units="degheading" type="float">
        <description>Yaw estimate from individual EKF filter 4 (deg)</description>
      </field>
      <field name="W0" units="" type="float">
        <description>Weighting applied to yaw estimate from individual EKF filter 0</description>
      </field>
      <field name="W1" units="" type="float">
        <description>Weighting applied to yaw estimate from individual EKF filter 1</description>
      </field>
      <field name="W2" units="" type="float">
        <description>Weighting applied to yaw estimate from individual EKF filter 2</description>
      </field>
      <field name="W3" units="" type="float">
        <description>Weighting applied to yaw estimate from individual EKF filter 3</description>
      </field>
      <field name="W4" units="" type="float">
        <description>Weighting applied to yaw estimate from individual EKF filter 4</description>
      </field>
    </fields>
  </logformat>
  <logformat name="XKY1">
    <description>EKF Yaw Estimator Innovations</description>
    <fields>
      <field name="TimeUS" units="μs" type="uint64_t">
        <description>Time since system startup</description>
      </field>
      <field name="C" units="instance" type="uint8_t">
        <description>EKF core this data is for</description>
      </field>
      <field name="IVN0" units="m/s" type="float">
        <description>North velocity innovation from individual EKF filter 0 (m/s)</description>
      </field>
      <field name="IVN1" units="m/s" type="float">
        <description>North velocity innovation from individual EKF filter 1 (m/s)</description>
      </field>
      <field name="IVN2" units="m/s" type="float">
        <description>North velocity innovation from individual EKF filter 2 (m/s)</description>
      </field>
      <field name="IVN3" units="m/s" type="float">
        <description>North velocity innovation from individual EKF filter 3 (m/s)</description>
      </field>
      <field name="IVN4" units="m/s" type="float">
        <description>North velocity innovation from individual EKF filter 4 (m/s)</description>
      </field>
      <field name="IVE0" units="m/s" type="float">
        <description>East velocity innovation from individual EKF filter 0 (m/s)</description>
      </field>
      <field name="IVE1" units="m/s" type="float">
        <description>East velocity innovation from individual EKF filter 1 (m/s)</description>
      </field>
      <field name="IVE2" units="m/s" type="float">
        <description>East velocity innovation from individual EKF filter 2 (m/s)</description>
      </field>
      <field name="IVE3" units="m/s" type="float">
        <description>East velocity innovation from individual EKF filter 3 (m/s)</description>
      </field>
      <field name="IVE4" units="m/s" type="float">
        <description>East velocity innovation from individual EKF filter 4 (m/s)</description>
      </field>
    </fields>
  </logformat>
</loggermessagefile>
