<mipdefs>
	<struct name="ProtocolLinkStats">
		<param name="rx_bytes" type="u64" index="0" />
		<param name="tx_bytes" type="u64" index="8" />
		<param name="rx_units" type="u64" index="16" />
		<param name="tx_units" type="u64" index="24" />
		<param name="rx_dropped" type="u64" index="32" />
		<param name="tx_dropped" type="u64" index="40" />
	</struct>
	<struct name="ultracal_serial_stats">
		<param name="rx_buffered" type="u16" index="0" />
		<param name="tx_buffered" type="u16" index="2" />
		<param name="rx_max_buffered" type="u16" index="4" />
		<param name="tx_max_buffered" type="u16" index="6" />
		<param name="rx_bytes" type="u64" index="8" />
		<param name="tx_bytes" type="u64" index="16" />
		<param name="rx_overruns" type="u64" index="24" />
		<param name="tx_overruns" type="u64" index="32" />
	</struct>
	<descriptor_set name="ULTRACAL_PLATE" descriptor="0xE4">
		<field descriptor="0x40" name="Bandwidth Test Payload" proprietary="true">
			Dummy payload of maximum size for testing transmission bandwidth.
			<param name="index" index="0" type="u8" />
			<param name="ackStart" index="1" type="u8" />
			<param name="ackEnd" index="2" type="u8" />
			<param name="dropped" index="3" type="u8" />
			<param name="payload" index="4" type="u8" count="249" />
		</field>
		<field descriptor="0x41" name="Plate Status" proprietary="true">
			Contains various diagnostics and statistics.
			<param name="platePosition" index="0" type="u8" />
			<param name="configMode" index="1" type="u8" />
			<param name="flags" index="2" type="u16" />
			<param name="timer" index="4" type="u32" />
			<param name="dt_cycles" index="8" type="u32" />
			<param name="dt_total" index="12" type="u32" />
			<param name="dt_min" index="16" type="u16" />
			<param name="dt_max" index="18" type="u16" />
		</field>
		<field descriptor="0x42" name="Plate UUT Status" proprietary="true">
			Contains diagnostic information for each UUT. Similar to plate status.
			<param name="uut_index" index="0" type="u8" />
			<param name="uut_count" index="1" type="u8" />
			<param name="active" index="2" type="bool" />
			<param name="reserved" index="3" type="u8" />
			<param name="serial_stats" index="4" type="ultracal_serial_stats" />
		</field>
		<field descriptor="0x43" name="Plate network diagnostic statistics per connection" proprietary="true">
			Network stats pertaining to a specific port.
			<param name="port" index="0" type="u16" />
			<param name="connected" index="2" type="u8" />
			<param name="reserved" index="3" type="u8" />
			<param name="extra" index="4" type="u32" />
			<param name="tcp" index="8" type="ProtocolLinkStats" />
			<param name="udp" index="56" type="ProtocolLinkStats" />
		</field>
		<field descriptor="0x48" name="Plate network diagnostic statistics (MAC &amp; IF)" proprietary="true">
			Network stats pertaining to the MAC, NetIf, and IP layers.
			<param name="macRxFrames" index="0" type="u64" />
			<param name="macTxFrames" index="8" type="u64" />
			<param name="macRxErrFrames" index="16" type="u64" />
			<param name="macTxErrFrames" index="24" type="u64" />
			<param name="ifRxPkts" index="32" type="u64" />
			<param name="ifTxPkts" index="40" type="u64" />
			<param name="ifRxBytes" index="48" type="u64" />
			<param name="ifTxBytes" index="56" type="u64" />
			<param name="ifRxDropPkts" index="64" type="u64" />
			<param name="ifTxDropPkts" index="72" type="u64" />
			<param name="ifRxDropBytes" index="80" type="u64" />
			<param name="ifTxDropBytes" index="88" type="u64" />
		</field>
		<field descriptor="0x44" name="Plate Power" proprietary="true">
			Details about the power supply for this plate processor and its attached UUTs.
			<param name="uut_voltage" index="0" type="float" />
			<param name="plate_voltage" index="4" type="float" />
			<param name="mcu_voltage" index="8" type="float" />
			<param name="reference" index="12" type="float" />
			<param name="uut_voltages" index="16" type="float" count="8" />
			<param name="uut_currents" index="20" type="float" count="8" />
			<param name="power_on" index="24" type="bool" />
			<param name="enabled_uuts" index="25" type="u8" />
			<param name="uut_curr_limit" index="26" type="u8" />
			<param name="reserved" index="27" type="u8" />
			<param name="adc_sample_time" index="28" type="u32" />
			<param name="adc_overruns" index="32" type="u32" />
		</field>
		<field descriptor="0x45" name="Plate Temperature" proprietary="true">
			Temperature sensor readings. May not be in sequence; some indices may be skipped.
			<param name="index" index="0" type="u8" />
			<param name="count" index="1" type="u8" />
			<param name="temperature" index="2" type="float" />
		</field>
		<field descriptor="0x46" name="Plate PPS Status" proprietary="true">
			Provides information about the PPS line.
			<param name="pps_low_ticks" index="0" type="u64" />
			<param name="pps_high_ticks" index="8" type="u64" />
			<param name="current_state" index="16" type="bool" />
		</field>
		<field descriptor="0x47" name="Plate GPIO States" proprietary="true">
			UUT GPIO state information.
			<param name="uut_index" index="0" type="u8" />
			<param name="states" index="1" type="u16" />
			<param name="modes" index="3" type="u16" />
		</field>
	</descriptor_set>
</mipdefs>
