<Instrument id="ADR"> <!-- subsystem -->
   <Port name="ADR" function="command" number="2201" type="ASCII" serverPort="false" >

      <Command name="HouseKeeping" >
         <Argument name="tag"     type="java.lang.String" required="true" hidden="true" />
         <Argument name="Command" type="java.lang.String" required="true" hidden="true" />
         <Argument name="RATE"    type="java.lang.Integer" required="true" >
             <ValidRange low="0" high="120000" />
          </Argument>
       </Command>
 
           <!-- Note the special XML decimal-like encoding for NEWLINE terminator -->
<RecordFormat name="HouseKeeping" size="-1" ordered="true" terminator="&#10;" attributeSeparator=" ">
         <Format name="tag"     format="%s" size="16" ordered="true" />
         <Format name="Command" format="HOUSEKEEPING" size="-1" />
         <Format name="RATE"    format="%s" ordered="false" header="RATE=" />
       </RecordFormat>
   </Port> 
   <Port function="data" name="ADR" number="2200" type="BINARY" serverPort="false" >

             <Telemetry name="Status" >
         <Field name="tag" type="java.lang.String" required="true" />
         <Field name="Time" type="java.lang.Integer" required="true" />
         <ArrayField name="Temperatures" required="true" dimensions="10">
               <Field name="dataElement" type="java.lang.Float" required="true" />
         </ArrayField>
         <Field name="Heat Switch" type="java.lang.Integer" required="true" />
       </Telemetry>

      <RecordFormat name="Status" size="64" ordered="true" >
         <Format name="tag"     format="%s" size="16" ordered="true" />
         <Format name="Time"    format="%d" size="4" ordered="true" />
         <ArrayFormat name="Temperatures" size="40" ordered="true" >
               <Format name="dataElement" format="%f" size="4" ordered="true" />
         </ArrayFormat>
         <Format name="Heat Switch" format="%d" size="4" ordered="true" />
       </RecordFormat>
   </Port>
   </Instrument>
