31.08.2013 Views

HID Sensor Usage Tables - USB.org

HID Sensor Usage Tables - USB.org

HID Sensor Usage Tables - USB.org

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

66 <strong>HID</strong> <strong>Sensor</strong> <strong>Usage</strong>s<br />

Each Named Array takes on only one value (“radio button” style), so Report Count must be 1;<br />

Input Report Item or Feature Report Item must have “Array” flag (use Const_Arr_Abs or<br />

Data_Arr_Abs).<br />

See Also<br />

For more information about <strong>HID</strong> Selectors; please refer to Section 3.4.2.1, 3.4.3.1, and A.4 of the <strong>USB</strong> <strong>HID</strong><br />

<strong>Usage</strong> <strong>Tables</strong> specification (Reference Document [3]).<br />

3.8 <strong>HID</strong> <strong>Usage</strong> Page<br />

All <strong>HID</strong> <strong>Usage</strong>s for sensors are defined to occur on <strong>HID</strong> <strong>Usage</strong> Page 0x20.<br />

3.9 <strong>HID</strong> Units<br />

<strong>Usage</strong>s have by definition a default Unit of Measure, which will be mentioned in the <strong>Usage</strong>s Table.<br />

For example, a Thermometer sensor may have a Data Field (Input Report Item) <strong>Usage</strong> called “Current<br />

Temperature”, and its default Unit of Measure may be “Degrees Celsius”.<br />

If not explicitly overridden, the programmer should assume the default Unit of Measure.<br />

It is possible to override the default Unit of Measure by explicitly including a Unit() descriptor item in<br />

the <strong>HID</strong> Report Descriptor. For example, “Degrees Celsius” could be overridden by declaring<br />

Unit(Kelvin).<br />

See Also<br />

For more information about <strong>HID</strong> Units; please refer to Sections 6.2.2.7 of the Device Class Definition for<br />

Human Interface Devices specification (Reference Document [2]).<br />

<strong>Usage</strong>s state specifically whether Units are required to define a time base or other reference. A Units<br />

requirement implies the definition or Units, Physical Maximum, Physical Minimum and Unit Exponent<br />

descriptor items.<br />

Units are global items that persist from main item to main item. Units can be disabled by setting Units to<br />

“None”, and Physical Maximum, Physical Minimum and Unit Exponent equal to 0.<br />

Normalized <strong>Usage</strong>s use Logical Minimum and Logical Maximum to define their range of values. These<br />

values are automatically scaled by an application to fit the range of values required for the target operation<br />

and do not require Units. This is useful where, for example, the <strong>Usage</strong> is expressed as a Percent; use a<br />

Logical Minimum of 0 and a Logical Maximum of 100.<br />

To declare a vector (Vx, Vy, or Vz) as a linear velocity or acceleration, define the System field of the Unit<br />

item associated with the vector usage to be either SI Linear (1) or English Linear (3). To declare vectors as<br />

angular velocity or acceleration, define the System field of the Unit item to be either SI Rotation (2) or<br />

English Rotation (4).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!