Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
84 <strong>HID</strong> <strong>Sensor</strong> <strong>Usage</strong>s<br />
Any of these Modifiers can be applied to any Data Field. Below is an example extracted from a <strong>HID</strong><br />
Report Descriptor that again uses the single Data Field thermometer example:<br />
.<br />
.<br />
.<br />
<strong>HID</strong>_USAGE_SENSOR_DATA(<strong>HID</strong>_USAGE_SENSOR_DATA_ENVIRONMENTAL_TEMPERATURE,<br />
<strong>HID</strong>_USAGE_SENSOR_DATA_MOD_CHANGE_SENSITIVITY_ABS),<br />
<strong>HID</strong>_USAGE_SENSOR_DATA(<strong>HID</strong>_USAGE_SENSOR_DATA_ENVIRONMENTAL_TEMPERATURE,<strong>HID</strong>_USAGE_SENSOR_DATA_MOD_MAX),<br />
<strong>HID</strong>_USAGE_SENSOR_DATA(<strong>HID</strong>_USAGE_SENSOR_DATA_ENVIRONMENTAL_TEMPERATURE,<strong>HID</strong>_USAGE_SENSOR_DATA_MOD_MIN),<br />
<strong>HID</strong>_USAGE_SENSOR_DATA(<strong>HID</strong>_USAGE_SENSOR_DATA_ENVIRONMENTAL_TEMPERATURE,<strong>HID</strong>_USAGE_SENSOR_DATA_MOD_ACCURACY),<br />
<strong>HID</strong>_USAGE_SENSOR_DATA(<strong>HID</strong>_USAGE_SENSOR_DATA_ENVIRONMENTAL_TEMPERATURE,<strong>HID</strong>_USAGE_SENSOR_DATA_MOD_PRECISION),<br />
.<br />
.<br />
.<br />
Provision has been made for this sytax to apply to those cases where there are multiple Data Fields defined<br />
for the sensor. In each case where multiple Data Fields are defines, a definition has been created that refers<br />
to all of them collectively. Using again the accelerometer as an example, the collective and individual Data<br />
Field defintions are below:<br />
#define <strong>HID</strong>_USAGE_SENSOR_DATA_MOTION_ACCELERATION 0x0A,0x52,0x04<br />
#define <strong>HID</strong>_USAGE_SENSOR_DATA_MOTION_ACCELERATION_X_AXIS 0x0A,0x53,0x04<br />
#define <strong>HID</strong>_USAGE_SENSOR_DATA_MOTION_ACCELERATION_Y_AXIS 0x0A,0x54,0x04<br />
#define <strong>HID</strong>_USAGE_SENSOR_DATA_MOTION_ACCELERATION_Z_AXIS 0x0A,0x55,0x04<br />
Applying the list of Properties to the collective version of the Data Field would be done as follows:<br />
.<br />
.<br />
.<br />
<strong>HID</strong>_USAGE_SENSOR_DATA(<strong>HID</strong>_USAGE_SENSOR_DATA_MOTION_ACCELERATION,<strong>HID</strong>_USAGE_SENSOR_DATA_MOD_CHANGE_SENSITIVITY_ABS),<br />
<strong>HID</strong>_USAGE_SENSOR_DATA(<strong>HID</strong>_USAGE_SENSOR_DATA_MOTION_ACCELERATION,<strong>HID</strong>_USAGE_SENSOR_DATA_MOD_MAX),<br />
<strong>HID</strong>_USAGE_SENSOR_DATA(<strong>HID</strong>_USAGE_SENSOR_DATA_MOTION_ACCELERATION,<strong>HID</strong>_USAGE_SENSOR_DATA_MOD_MIN),<br />
<strong>HID</strong>_USAGE_SENSOR_DATA(<strong>HID</strong>_USAGE_SENSOR_DATA_MOTION_ACCELERATION,<strong>HID</strong>_USAGE_SENSOR_DATA_MOD_ACCURACY),<br />
<strong>HID</strong>_USAGE_SENSOR_DATA(<strong>HID</strong>_USAGE_SENSOR_DATA_MOTION_ACCELERATION,<strong>HID</strong>_USAGE_SENSOR_DATA_MOD_PRECISION),<br />
.<br />
.<br />
.<br />
Note that in each case the Data Field to which the Modifier applies is specified, and that in each case the<br />
Data Field specified is for the collective version of the Data Field. This is mostly equivalent to the<br />
following definitions presented previously and repeated here for convenience:<br />
.<br />
.<br />
.<br />
<strong>HID</strong>_USAGE_SENSOR_PROPERTY_CHANGE_SENSITIVITY_ABS,<br />
<strong>HID</strong>_USAGE_SENSOR_PROPERTY_MAXIMUM,<br />
<strong>HID</strong>_USAGE_SENSOR_PROPERTY_MINIMUM,<br />
<strong>HID</strong>_USAGE_SENSOR_PROPERTY_ACCURACY,<br />
<strong>HID</strong>_USAGE_SENSOR_PROPERTY_RESOLUTION,<br />
.<br />
.<br />
.<br />
In the case of the collective Data Field specification, this will only apply to Data Fields of that type. In the<br />
case of the <strong>HID</strong>_USAGE_SENSOR_PROPERTY_xxx construction, this would apply to all Data Fields<br />
even if they are not of the same type.<br />
In the case of specifying Properties that are applied per-datafield with the expectation that the Property may<br />
change depending on the Data Field, the following homogenous constructing again using the accelerometer<br />
follows:<br />
.<br />
.<br />
.<br />
<strong>HID</strong>_USAGE_SENSOR_DATA(<strong>HID</strong>_USAGE_SENSOR_DATA_MOTION_ACCELERATION_X_AXIS,<br />
<strong>HID</strong>_USAGE_SENSOR_DATA_MOD_CHANGE_SENSITIVITY_ABS),<br />
<strong>HID</strong>_USAGE_SENSOR_DATA(<strong>HID</strong>_USAGE_SENSOR_DATA_MOTION_ACCELERATION_Y_AXIS,<br />
<strong>HID</strong>_USAGE_SENSOR_DATA_MOD_CHANGE_SENSITIVITY_ABS),<br />
<strong>HID</strong>_USAGE_SENSOR_DATA(<strong>HID</strong>_USAGE_SENSOR_DATA_MOTION_ACCELERATION_Z_AXIS,<br />
<strong>HID</strong>_USAGE_SENSOR_DATA_MOD_CHANGE_SENSITIVITY_ABS),