You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
61 <strong>HID</strong> <strong>Sensor</strong> <strong>Usage</strong>s<br />
Third 0x30 – 0x3f<br />
Table 7. A Report ID allocation scheme example<br />
Because the SETUP packet has fields describing the request type separate from the Report ID, it is OK to<br />
“re use” Report IDs for Input Reports, Output Reports, and Feature Reports. For example, a sensor can<br />
have an Input Report with Report ID 0x01, an Output Report with Report ID 0x01, and a Feature Report<br />
with Report ID 0x01. These are all separate Reports with different contents. If you find this too confusing,<br />
you may wish to assign different Report IDs, for example: an Input Report with Report ID 0x01, an Output<br />
Report with Report ID 0x02, and a Feature Report with Report ID 0x03. Either technique is allowed.<br />
If there is only one logical device, and that device only has a single Input Report, Output Report, and/or<br />
Feature Report, then the Report ID is not mandatory and must be filled with the special value zero.<br />
3.6 <strong>HID</strong> Report Items<br />
Each report may incorporate one or more pieces of data, called Items. The Items always follow the Report<br />
ID byte, i.e., the Items start at byte position 1 and work upward.<br />
See Also<br />
For more information about <strong>HID</strong> Report Items; please refer to Sections 5.2 and 5.3 of the Device Class<br />
Definition for Human Interface Devices specification (Reference Document [2]).<br />
Input Reports are sent from the device to the host. Input Reports may be sent “asynchronously” by the<br />
device to the host (in actuality, the host bus controller periodically polls for these). The host may also<br />
“demand” an Input Report by invoking a <strong>HID</strong> GET INPUT REPORT request. <strong>Sensor</strong> Data Fields, i.e.,<br />
real-time acquired sensor data samples, are equated to <strong>HID</strong> Input Report Items.<br />
Output Reports are sent from the host to the device. Output Reports are optional. In the context of<br />
<strong>Sensor</strong>s, Output Reports may be used to send functional commands to the <strong>Sensor</strong> by invoking the <strong>HID</strong> SET<br />
OUTPUT REPORT request. In practice, configuration of sensors is more commonly done using the <strong>HID</strong><br />
SET FEATURE REPORT request instead.<br />
See Also<br />
For more information about <strong>HID</strong> Output Reports that may optionally be supported by some sensor device<br />
implementations; please refer to the Device Class Definition for Physical Interface Devices (PID)<br />
specification (Reference Document [7]). In that document, it describes how various types of Output<br />
Reports could be used for advanced features such as downloading detailed Haptic feedback waveforms,<br />
waveform shape “envelopes”, and “condition” definitions that can be used as complex triggers. Please note<br />
that PID <strong>Usage</strong>s appear on <strong>Usage</strong> Page 0x0F, not the <strong>Sensor</strong> <strong>Usage</strong> Page 0x20.<br />
Feature Reports can be used to transfer non-real-time Properties between the device and the host. They are<br />
optional, meaning that it is possible to define a sensor collection that communicates solely with Input<br />
Reports. Feature Reports are also bi-directional, and sub-divided into Get Feature Reports and Set Feature<br />
Reports, depending upon direction.<br />
Get Feature Reports are sent from the device to the host. They are used to get Properties from a sensor by<br />
invoking the <strong>HID</strong> GET FEATURE REPORT request. This might include identifying information such as<br />
the sensor’s manufacturer and model number, or reading back previously set configuration settings. <strong>Sensor</strong><br />
Properties are equated to <strong>HID</strong> Feature Report Items.