<mipdefs>
	<struct name="base_device_info">
		<param name="firmware_version" type="u16" index="0" />
		<param name="model_name" type="char" index="2" />
		<param name="model_number" type="char" index="3" />
		<param name="serial_number" type="char" index="4" />
		<param name="lot_number" type="char" index="5" />
		<param name="device_options" type="char" index="6" />
	</struct>
	<descriptor_set name="BASE" descriptor="0x01">
		<field descriptor="0x01" name="Ping">
			Test Communications with a device.
		</field>
		<field descriptor="0x02" name="Set to idle">
			Turn off all device data streams.
		</field>
		<field descriptor="0x03" name="Get device information">
			Get the device ID strings and firmware version number.
			<response descriptor="0x81">
				<param name="device_info" index="0" type="base_device_info" />
			</response>
		</field>
		<field descriptor="0x04" name="Get device descriptors">
			Get the command and data descriptors supported by the device.
			<response descriptor="0x82">
				<param name="descriptors" index="0" type="u16" count="" />
			</response>
		</field>
		<field descriptor="0x05" name="Built in test">
			Run the device Built-In Test (BIT).
			<response descriptor="0x83">
				<param name="result" index="0" type="u32" />
			</response>
		</field>
		<field descriptor="0x06" name="Resume">
			Take the device out of idle mode.
		</field>
		<field descriptor="0x07" name="Get device descriptors (extended)">
			Get the command and data descriptors supported by the device.
			<response descriptor="0x86">
				<param name="descriptors" index="0" type="u16" count="" />
			</response>
		</field>
		<field descriptor="0x08" name="Continuous built-in test">
			Report result of continuous built-in test.
			<response descriptor="0x88">
				<param name="result" index="0" type="u8" count="16" />
			</response>
		</field>
		<field descriptor="0x09" name="Comm Port Speed" functions="WRSLD">
			Controls the baud rate of a specific port on the device.
			<param name="port" index="0" type="u8" functions="WRSLD" />
			<param name="baud" index="1" type="u32" />
			<response descriptor="0x89">
				<param name="port" index="0" type="u8" functions="WRSLD" />
				<param name="baud" index="1" type="u32" />
			</response>
		</field>
		<field descriptor="0x7B" name="Get firmware information" proprietary="true">
			Retrieves extended firmware information.
			<param name="target" index="0" type="u32" />
			<param name="index" index="4" type="u8" />
			<response descriptor="0x87">
				<param name="format" index="0" type="u8" />
				<param name="info" index="1" type="u8" count="" />
			</response>
		</field>
		<field descriptor="0x7D" name="Enter bootloader" proprietary="true">
			Enter firmware update mode.
			<param name="security_key" index="0" type="u32" />
		</field>
		<field descriptor="0x7C" name="Enter hardware-in-the-loop test mode" proprietary="true">
			Enter hardware-in-the-loop test mode
			<param name="enable" index="0" type="u8" />
			<param name="security_key" index="1" type="u32" />
			<param name="test_param" index="5" type="u32" />
		</field>
		<field descriptor="0x72" name="GPS Time Update Command" functions="W">
			Set device internal GPS time
			<enum name="field_id" type="u8">
				<value name="WEEK_NUMBER" value="1" />
				<value name="TIME_OF_WEEK" value="2" />
			</enum>
			<param name="field_id" index="0" type="field_id" />
			<param name="value" index="1" type="u32" />
		</field>
		<field descriptor="0x7E" name="Reset device">
			Resets the device.
		</field>
		<field descriptor="0x7F" name="Enter production test mode" proprietary="true">
			Enter production test mode.
			<param name="security_key" index="0" type="u32" />
		</field>
	</descriptor_set>
</mipdefs>
