<?xml version="1.0"?>
<cd:ProductDefinition xmlns:cd="http://www.stcorp.nl/coda/definition/2008/07" xmlns:ct="http://www.stcorp.nl/coda/test/2008/10" id="TLM_ASP___" format="binary" last-modified="2021-11-19">
  <cd:Array>
    <cd:Dimension><![CDATA[$num_dsr]]></cd:Dimension>
    <cd:Record format="binary">
      <cd:Description>Annotated Instrument Source Packet</cd:Description>
      <cd:Field name="ISP_annotation_header">
        <cd:NamedType id="ISP_annotation_header"/>
      </cd:Field>
      <cd:Field name="ISP">
        <cd:Record format="binary">
          <cd:Description>Instrument Source Packet</cd:Description>
          <cd:Field name="packet_header">
            <cd:NamedType id="ISP_packet_header"/>
          </cd:Field>
          <cd:Field name="data_header">
            <cd:NamedType id="ISP_data_field_header"/>
          </cd:Field>
          <cd:Field name="private_header">
            <cd:Record format="binary">
              <cd:Field name="SID">
                <cd:Integer>
                  <cd:Description>Structure Identifier</cd:Description>
                  <cd:BitSize>8</cd:BitSize>
                  <cd:NativeType>uint8</cd:NativeType>
                </cd:Integer>
              </cd:Field>
            </cd:Record>
          </cd:Field>
          <cd:Field name="data">
              <cd:Union format="binary">
                <cd:FieldExpression><![CDATA[with(k=int(../../private_header/SID), if(k==105, 0, if(k==213, 1, -1)))]]></cd:FieldExpression>
                <cd:Field name="tm_adb">
                  <cd:Record format="binary">
                    <cd:Field name="qv1">
                      <cd:Integer>
                        <cd:Description>Vector part of attitude quaternion, X component</cd:Description>
                        <cd:BitSize>32</cd:BitSize>
                        <cd:NativeType>uint32</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="qv2">
                      <cd:Integer>
                        <cd:Description>Vector part of attitude quaternion, Y component</cd:Description>
                        <cd:BitSize>32</cd:BitSize>
                        <cd:NativeType>uint32</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="qv3">
                      <cd:Integer>
                        <cd:Description>Vector part of attitude quaternion, Z component</cd:Description>
                        <cd:BitSize>32</cd:BitSize>
                        <cd:NativeType>uint32</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="qs">
                      <cd:Integer>
                        <cd:Description>Scalar part of attitude quaternion</cd:Description>
                        <cd:BitSize>32</cd:BitSize>
                        <cd:NativeType>uint32</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="rate_x">
                      <cd:Integer>
                        <cd:Description>Angular rate in BRF</cd:Description>
                        <cd:BitSize>16</cd:BitSize>
                        <cd:NativeType>uint16</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="rate_y">
                      <cd:Integer>
                        <cd:Description>Angular rate in BRF</cd:Description>
                        <cd:BitSize>16</cd:BitSize>
                        <cd:NativeType>uint16</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="rate_z">
                      <cd:Integer>
                        <cd:Description>Angular rate in BRF</cd:Description>
                        <cd:BitSize>16</cd:BitSize>
                        <cd:NativeType>uint16</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="integration_timestamp">
                      <cd:Integer>
                        <cd:Description>Timestamp of the center of integration associated with the attitude</cd:Description>
                        <cd:BitSize>48</cd:BitSize>
                        <cd:NativeType>uint64</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="julian_date">
                      <cd:Integer>
                        <cd:Description>Julian date used for precession correction (if enabled)</cd:Description>
                        <cd:BitSize>16</cd:BitSize>
                        <cd:NativeType>uint16</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="velocity_x">
                      <cd:Integer>
                        <cd:Description>If aberration correction is enabled: X coordinate of velocity vector (in SCI)</cd:Description>
                        <cd:BitSize>16</cd:BitSize>
                        <cd:NativeType>uint16</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="velocity_y">
                      <cd:Integer>
                        <cd:Description>If aberration correction is enabled: Y coordinate of velocity vector (in SCI)</cd:Description>
                        <cd:BitSize>16</cd:BitSize>
                        <cd:NativeType>uint16</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="velocity_z">
                      <cd:Integer>
                        <cd:Description>If aberration correction is enabled: Z coordinate of velocity vector (in SCI)</cd:Description>
                        <cd:BitSize>16</cd:BitSize>
                        <cd:NativeType>uint16</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="attitude_quality">
                      <cd:Integer>
                        <cd:Description>Attitude Quality</cd:Description>
                        <cd:BitSize>3</cd:BitSize>
                        <cd:NativeType>uint8</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="precession_correction_enabled">
                      <cd:Integer>
                        <cd:Description>If set to 1: precession correction has been applied</cd:Description>
                        <cd:BitSize>1</cd:BitSize>
                        <cd:NativeType>uint8</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="aberration_correction_enabled">
                      <cd:Integer>
                        <cd:Description>If set to 1: aberration correction has been applied</cd:Description>
                        <cd:BitSize>1</cd:BitSize>
                        <cd:NativeType>uint8</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="rate_quality">
                      <cd:Integer>
                        <cd:Description>Rate Quality</cd:Description>
                        <cd:BitSize>2</cd:BitSize>
                        <cd:NativeType>uint8</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="rate_information_valid">
                      <cd:Integer>
                        <cd:Description>If set to 1: the rate information is valid (i.e. derived from current measurements)</cd:Description>
                        <cd:BitSize>1</cd:BitSize>
                        <cd:NativeType>uint8</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="attitude_quality_index">
                      <cd:Integer>
                        <cd:Description>Sum of single-star qualities of attitude stars</cd:Description>
                        <cd:BitSize>8</cd:BitSize>
                        <cd:NativeType>uint8</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                  </cd:Record>
                </cd:Field>
                <cd:Field name="nav_sol">
                  <cd:Record format="binary">
                    <cd:Field name="filler">
                      <cd:Raw>
                        <cd:BitSize>24</cd:BitSize>
                      </cd:Raw>
                      <cd:Hidden/>
                    </cd:Field>
                    <cd:Field name="frontend_temp">
                      <cd:Integer>
                        <cd:Description>Structure Identifier</cd:Description>
                        <cd:BitSize>8</cd:BitSize>
                        <cd:NativeType>uint8</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="ID">
                      <cd:Integer>
                        <cd:Description>Internal use only</cd:Description>
                        <cd:BitSize>8</cd:BitSize>
                        <cd:NativeType>uint8</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="serial_number">
                      <cd:Integer>
                        <cd:Description>Serial Number</cd:Description>
                        <cd:BitSize>4</cd:BitSize>
                        <cd:NativeType>uint8</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="data_valid">
                      <cd:Integer>
                        <cd:Description>Data valid flag</cd:Description>
                        <cd:BitSize>1</cd:BitSize>
                        <cd:NativeType>uint8</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="receiver_mode">
                      <cd:Integer>
                        <cd:Description>ReceiverMode</cd:Description>
                        <cd:BitSize>3</cd:BitSize>
                        <cd:NativeType>uint8</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="number_of_records">
                      <cd:Integer>
                        <cd:Description>Number of records in data block</cd:Description>
                        <cd:BitSize>8</cd:BitSize>
                        <cd:NativeType>uint8</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="GPS_seconds">
                      <cd:Integer>
                        <cd:Description>GPS time (seconds)</cd:Description>
                        <cd:BitSize>32</cd:BitSize>
                        <cd:NativeType>uint32</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="GPS_subsec">
                      <cd:Integer>
                        <cd:Description>GPS time (sub-seconds)</cd:Description>
                        <cd:BitSize>32</cd:BitSize>
                        <cd:NativeType>uint32</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="NU3">
                      <cd:Integer>
                        <cd:BitSize>1</cd:BitSize>
                        <cd:NativeType>uint8</cd:NativeType>
                      </cd:Integer>
                      <cd:Hidden/>
                    </cd:Field>
                    <cd:Field name="NSM">
                      <cd:Integer>
                        <cd:Description>Navigation Solution Method</cd:Description>
                        <cd:BitSize>3</cd:BitSize>
                        <cd:NativeType>uint8</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="quality_index">
                      <cd:Integer>
                        <cd:Description>Quality Index</cd:Description>
                        <cd:BitSize>12</cd:BitSize>
                        <cd:NativeType>uint16</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="GDOP">
                      <cd:Integer>
                        <cd:Description>Geometrical dilution of precision</cd:Description>
                        <cd:BitSize>16</cd:BitSize>
                        <cd:NativeType>uint16</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="max_URA">
                      <cd:Integer>
                        <cd:Description>Maximum user range accuracy</cd:Description>
                        <cd:BitSize>5</cd:BitSize>
                        <cd:NativeType>int8</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="max_fit">
                      <cd:Integer>
                        <cd:Description>Maximum curve fit interval taken from all SVs used in current navigation solution</cd:Description>
                        <cd:BitSize>4</cd:BitSize>
                        <cd:NativeType>uint8</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="NU4">
                      <cd:Integer>
                        <cd:BitSize>3</cd:BitSize>
                        <cd:NativeType>uint8</cd:NativeType>
                      </cd:Integer>
                      <cd:Hidden/>
                    </cd:Field>
                    <cd:Field name="number_of_SVs">
                      <cd:Integer>
                        <cd:Description>Number of SVs contributing to the Navigation Solution</cd:Description>
                        <cd:BitSize>4</cd:BitSize>
                        <cd:NativeType>uint8</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="position_x">
                      <cd:Integer>
                        <cd:Description>X-coordinate</cd:Description>
                        <cd:BitSize>48</cd:BitSize>
                        <cd:NativeType>int64</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="position_y">
                      <cd:Integer>
                        <cd:Description>Y-coordinate</cd:Description>
                        <cd:BitSize>48</cd:BitSize>
                        <cd:NativeType>int64</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="position_z">
                      <cd:Integer>
                        <cd:Description>Z-coordinate</cd:Description>
                        <cd:BitSize>48</cd:BitSize>
                        <cd:NativeType>int64</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="velocity_x">
                      <cd:Integer>
                        <cd:Description>X-velocity</cd:Description>
                        <cd:BitSize>32</cd:BitSize>
                        <cd:NativeType>int32</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="velocity_y">
                      <cd:Integer>
                        <cd:Description>Y-velocity</cd:Description>
                        <cd:BitSize>32</cd:BitSize>
                        <cd:NativeType>int32</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="velocity_z">
                      <cd:Integer>
                        <cd:Description>Y-velocity</cd:Description>
                        <cd:BitSize>32</cd:BitSize>
                        <cd:NativeType>int32</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="PDOP">
                      <cd:Integer>
                        <cd:Description>Precision dilution of precision</cd:Description>
                        <cd:BitSize>16</cd:BitSize>
                        <cd:NativeType>uint16</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="TDOP">
                      <cd:Integer>
                        <cd:Description>Time dilution of precision</cd:Description>
                        <cd:BitSize>16</cd:BitSize>
                        <cd:NativeType>uint16</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="delta_x">
                      <cd:Integer>
                        <cd:Description>Position error in X direction</cd:Description>
                        <cd:BitSize>32</cd:BitSize>
                        <cd:NativeType>int32</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="delta_y">
                      <cd:Integer>
                        <cd:Description>Position error in Y direction</cd:Description>
                        <cd:BitSize>32</cd:BitSize>
                        <cd:NativeType>int32</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="delta_z">
                      <cd:Integer>
                        <cd:Description>Position error in Z direction</cd:Description>
                        <cd:BitSize>32</cd:BitSize>
                        <cd:NativeType>int32</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="delta_t">
                      <cd:Integer>
                        <cd:Description>GNSS system time error</cd:Description>
                        <cd:BitSize>32</cd:BitSize>
                        <cd:NativeType>int32</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="delta_v_x">
                      <cd:Integer>
                        <cd:Description>Velocity error in X direction</cd:Description>
                        <cd:BitSize>32</cd:BitSize>
                        <cd:NativeType>int32</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="delta_v_y">
                      <cd:Integer>
                        <cd:Description>Velocity error in Y direction</cd:Description>
                        <cd:BitSize>32</cd:BitSize>
                        <cd:NativeType>int32</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="delta_v_z">
                      <cd:Integer>
                        <cd:Description>Velocity error in Z direction</cd:Description>
                        <cd:BitSize>32</cd:BitSize>
                        <cd:NativeType>int32</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="delta_f">
                      <cd:Integer>
                        <cd:Description>Receiver clock frequency error</cd:Description>
                        <cd:BitSize>32</cd:BitSize>
                        <cd:NativeType>int32</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="height">
                      <cd:Integer>
                        <cd:Description>Height above reference ellipsoid</cd:Description>
                        <cd:BitSize>32</cd:BitSize>
                        <cd:NativeType>int32</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="vertical_speed">
                      <cd:Integer>
                        <cd:Description>Vertical speed</cd:Description>
                        <cd:BitSize>32</cd:BitSize>
                        <cd:NativeType>int32</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="longitude">
                      <cd:Integer>
                        <cd:Description>Longitude</cd:Description>
                        <cd:BitSize>32</cd:BitSize>
                        <cd:NativeType>int32</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                    <cd:Field name="latitude">
                      <cd:Integer>
                        <cd:Description>Longitude</cd:Description>
                        <cd:BitSize>32</cd:BitSize>
                        <cd:NativeType>int32</cd:NativeType>
                      </cd:Integer>
                    </cd:Field>
                  </cd:Record>
                </cd:Field>
              </cd:Union>
          </cd:Field>
          <cd:Field name="CRC">
            <cd:Integer>
              <cd:Description>Packet Error Control (CRC)</cd:Description>
              <cd:BitSize>16</cd:BitSize>
              <cd:NativeType>uint16</cd:NativeType>
            </cd:Integer>
          </cd:Field>
        </cd:Record>
      </cd:Field>
    </cd:Record>
  </cd:Array>
  <cd:ProductVariable name="num_dsr">
    <cd:Init><![CDATA[$num_dsr = unboundindex(/, byteoffset(.) >= filesize())]]></cd:Init>
  </cd:ProductVariable>
</cd:ProductDefinition>
