<mipdefs>
	<descriptor_set name="HIL" descriptor="0x65">
		<field descriptor="0x01" name="led" proprietary="true" functions="WD">
			Controls the tricolor LED on the HIL interface board.
			<param name="state1_red" index="0" type="u8" />
			<param name="state1_green" index="1" type="u8" />
			<param name="state1_blue" index="2" type="u8" />
			<param name="state2_red" index="3" type="u8" />
			<param name="state2_green" index="4" type="u8" />
			<param name="state2_blue" index="5" type="u8" />
			<param name="blink_period" index="6" type="u16" />
			<param name="on_time" index="8" type="u16" />
			<param name="fade" index="10" type="bool" />
			<param name="blink_cnt" index="11" type="u8" />
		</field>
		<field descriptor="0x03" name="power" proprietary="true" functions="WR">
			Controls power to the UUT.
			<param name="enable" index="0" type="bool" />
			<response descriptor="0x83">
				<param name="enabled" index="0" type="bool" />
				<param name="voltage" index="1" type="float" />
				<param name="current" index="5" type="float" />
			</response>
		</field>
		<field descriptor="0x02" name="gpio" proprietary="true" functions="WRD">
			Set the GPIO pin mode.
			<enum name="Port" type="u8">
				<value name="PORT_ALL" value="0" />
				<value name="PORT_A" value="1" />
				<value name="PORT_B" value="2" />
				<value name="PORT_C" value="3" />
				<value name="PORT_D" value="4" />
				<value name="PORT_E" value="5" />
				<value name="PORT_F" value="6" />
				<value name="PORT_G" value="7" />
				<value name="PORT_H" value="8" />
				<value name="PORT_I" value="9" />
				<value name="PORT_J" value="10" />
			</enum>
			<param name="port" index="0" type="Port" functions="WRD" />
			<param name="pin" index="1" type="u8" functions="WRD" />
			<bitfield name="Mode" type="u8">
				<value name="output" firstBit="0" />
				<value name="state" firstBit="2" />
				<value name="pullup" firstBit="3" />
				<value name="pulldown" firstBit="4" />
				<value name="opendrain" firstBit="5" />
			</bitfield>
			<param name="mode" index="2" type="Mode" />
			<response descriptor="0x82">
				<param name="port" index="0" type="Port" />
				<param name="pin" index="1" type="u8" />
				<param name="mode" index="2" type="Mode" />
				<param name="state" index="3" type="bool" />
			</response>
		</field>
		<field descriptor="0x10" name="sensor_info" proprietary="true">
			Get the definition of the sensors emulated by the HIL board
			<response descriptor="0x90">
				<param name="num_sensor_channels" index="0" type="u8" />
				<struct name="SensorChannel">
					<param name="sensor_id" type="u8" index="0" />
					<param name="channel_id" type="u8" index="1" />
					<enum name="SensorAxis" type="u8">
						<value name="NO_AXIS" value="0" />
						<value name="X_AXIS" value="1" />
						<value name="Y_AXIS" value="2" />
						<value name="Z_AXIS" value="3" />
					</enum>
					<param name="axis" type="SensorAxis" index="3" />
					<enum name="ChannelType" type="u8">
						<value name="UNKNOWN" value="0" />
						<value name="BOARD_TEMPERATURE" value="1" />
						<value name="ACCELEROMETER" value="2" />
						<value name="GYROSCOPE" value="3" />
						<value name="MAGNETOMETER" value="4" />
						<value name="PRESSURE_SENSOR" value="5" />
						<value name="ACCELEROMETER_TEMPERATURE" value="6" />
						<value name="GYROSCOPE_TEMPERATURE" value="7" />
						<value name="MAGNETOMETER_TEMPERATURE" value="8" />
						<value name="PRESSURE_SENSOR_TEMPERATURE" value="9" />
					</enum>
					<param name="type" type="ChannelType" index="4" />
				</struct>
				<param name="sensor_info" index="1" type="SensorChannel" count="num_sensor_channels" />
			</response>
		</field>
		<field descriptor="0x11" name="sensor_data" proprietary="true">
			Sensor Data transmitted to the UUT.
			<param name="sensor_id" index="0" type="u8" />
			<param name="channel" index="1" type="u8" />
			<param name="data" index="2" type="double" />
		</field>
		<field descriptor="0x20" name="signal_generator_setup" proprietary="true">
			Signal generator setup command
			<param name="id" index="0" type="u8" />
			<enum name="GeneratorType" type="u8">
				<value name="NONE" value="0" />
				<value name="SQUARE_WAVE" value="1" />
				<value name="SINE_WAVE" value="2" />
				<value name="COUNTER" value="3" />
			</enum>
			<param name="type" index="1" type="GeneratorType" />
			<param name="num_params" index="2" type="u8" />
			<param name="params" index="3" type="double" count="num_params" />
			<param name="num_sensor_channels" index="11" type="u8" />
			<struct name="SensorChannel">
				<param name="sensor_id" type="u8" index="0" />
				<param name="channel_id" type="u8" index="1" />
			</struct>
			<param name="channel_config" index="12" type="SensorChannel" count="num_sensor_channels" />
		</field>
		<field descriptor="0x21" name="signal_generator_control" proprietary="true">
			Signal generator control command
			<param name="id" index="0" type="u8" />
			<enum name="State" type="u8">
				<value name="STOP" value="0" />
				<value name="RUN" value="1" />
				<value name="PAUSE" value="2" />
				<value name="RESET" value="3" />
				<value name="RESTART" value="4" />
			</enum>
			<param name="state" index="1" type="State" />
		</field>
	</descriptor_set>
</mipdefs>
