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.

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

};<br />

<strong>HID</strong>_LOGICAL_MAX_16(0xFF,0xFF),<br />

<strong>HID</strong>_USAGE_SENSOR_UNITS_KELVIN,<br />

<strong>HID</strong>_UNIT_EXPONENT(0),<br />

<strong>HID</strong>_REPORT_SIZE(16),<br />

<strong>HID</strong>_REPORT_COUNT(1),<br />

<strong>HID</strong>_INPUT(Const_Var_Abs),<br />

<strong>HID</strong>_USAGE_SENSOR_DATA_LIGHT_CHROMATICITY_X,<br />

<strong>HID</strong>_LOGICAL_MIN_8(0),<br />

<strong>HID</strong>_LOGICAL_MAX_16(0xFF,0xFF),<br />

<strong>HID</strong>_USAGE_SENSOR_UNITS_NOT_SPECIFIED,<br />

<strong>HID</strong>_UNIT_EXPONENT(0x0C), // scale default unit to provide 4 digits past decimal point<br />

<strong>HID</strong>_REPORT_SIZE(16),<br />

<strong>HID</strong>_REPORT_COUNT(1),<br />

<strong>HID</strong>_INPUT(Const_Var_Abs),<br />

<strong>HID</strong>_USAGE_SENSOR_DATA_LIGHT_CHROMATICITY_Y,<br />

<strong>HID</strong>_LOGICAL_MIN_8(0),<br />

<strong>HID</strong>_LOGICAL_MAX_16(0xFF,0xFF),<br />

<strong>HID</strong>_USAGE_SENSOR_UNITS_NOT_SPECIFIED,<br />

<strong>HID</strong>_UNIT_EXPONENT(0x0C), // scale default unit to provide 4 digits past decimal point<br />

<strong>HID</strong>_REPORT_SIZE(16),<br />

<strong>HID</strong>_REPORT_COUNT(1),<br />

<strong>HID</strong>_INPUT(Const_Var_Abs),<br />

<strong>HID</strong>_END_COLLECTION<br />

4.3.13 Location: GPS<br />

The use of a Location category sensor may be typified by definitions for a Global Positioning Sytem type<br />

sensor. As an example, two examples are provided illustrating how a GPS sensor may be defined.<br />

The first example assumes that NMEA sentences are produced by the sensor, and that those sentences are<br />

parsed within the driver that supports that sensor.<br />

Notice that to accommodate the fact that NMEA sentences can be quite long, the sensor may break those<br />

sentences up into chunks that are sent in back-to-back Input Reports. The driver (and/or upper-layer<br />

software) would need to concatenate the NMEA sentence fragments from some number of Input reports in<br />

order to create a complete NMEA sentence. This is not difficult to do, because all NMEA sentences begin<br />

with the unique symbol ‘$’ and end with an ‘*’ followed by a 2-digit hex checksum and then a Carriage<br />

Return and Line Feed.<br />

// Complete NMEA GPS <strong>HID</strong> report descriptor<br />

const unsigned char nmea_report_descriptor[] = {<br />

<strong>HID</strong>_USAGE_PAGE_SENSOR,<br />

<strong>HID</strong>_USAGE_SENSOR_TYPE_LOCATION_GPS,<br />

<strong>HID</strong>_COLLECTION(Physical),<br />

//feature reports (xmit/receive)<br />

<strong>HID</strong>_USAGE_PAGE_SENSOR,<br />

<strong>HID</strong>_USAGE_SENSOR_PROPERTY_REPORTING_STATE,<br />

<strong>HID</strong>_LOGICAL_MIN_8(0),<br />

<strong>HID</strong>_LOGICAL_MAX_8(5),<br />

<strong>HID</strong>_REPORT_SIZE(8),<br />

<strong>HID</strong>_REPORT_COUNT(1),<br />

<strong>HID</strong>_COLLECTION(Logical),<br />

<strong>HID</strong>_USAGE_SENSOR_PROPERTY_REPORTING_STATE_NO_EVENTS,<br />

<strong>HID</strong>_USAGE_SENSOR_PROPERTY_REPORTING_STATE_ALL_EVENTS,<br />

<strong>HID</strong>_USAGE_SENSOR_PROPERTY_REPORTING_STATE_THRESHOLD_EVENTS,<br />

<strong>HID</strong>_USAGE_SENSOR_PROPERTY_REPORTING_STATE_NO_EVENTS_WAKE,<br />

<strong>HID</strong>_USAGE_SENSOR_PROPERTY_REPORTING_STATE_ALL_EVENTS_WAKE,<br />

<strong>HID</strong>_USAGE_SENSOR_PROPERTY_REPORTING_STATE_THRESHOLD_EVENTS_WAKE,<br />

<strong>HID</strong>_FEATURE(Data_Arr_Abs),<br />

<strong>HID</strong>_END_COLLECTION,<br />

<strong>HID</strong>_USAGE_SENSOR_PROPERTY_SENSOR_STATUS,<br />

<strong>HID</strong>_LOGICAL_MIN_8(0),<br />

<strong>HID</strong>_LOGICAL_MAX_32(0xFF,0xFF,0xFF,0xFF),<br />

<strong>HID</strong>_REPORT_SIZE(32),<br />

<strong>HID</strong>_REPORT_COUNT(1),<br />

<strong>HID</strong>_FEATURE(Data_Var_Abs), // up to VT_UI4 worth of status info<br />

<strong>HID</strong>_USAGE_SENSOR_PROPERTY_REPORT_INTERVAL,<br />

<strong>HID</strong>_LOGICAL_MIN_8(0),<br />

<strong>HID</strong>_LOGICAL_MAX_32(0xFF,0xFF,0xFF,0xFF),<br />

<strong>HID</strong>_REPORT_SIZE(32),<br />

<strong>HID</strong>_REPORT_COUNT(1),<br />

// <strong>HID</strong>_USAGE_SENSOR_UNITS_MILLISECOND,<br />

<strong>HID</strong>_UNIT_EXPONENT(0),<br />

<strong>HID</strong>_FEATURE(Data_Var_Abs),<br />

<strong>HID</strong>_USAGE_SENSOR_PROPERTY_SENSOR_CONNECTION_TYPE, // NAry<br />

<strong>HID</strong>_LOGICAL_MIN_8(0),<br />

<strong>HID</strong>_LOGICAL_MAX_8(2),<br />

<strong>HID</strong>_REPORT_SIZE(8),

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

Saved successfully!

Ooh no, something went wrong!