Lightweight USB stack
1.0
|
This module contains USB Human Interface Devices class definitions. More...
Modules | |
HID Usage Tables for Button | |
Contains USB HID Usages definitions for Button Page. | |
HID Usage Tables for Desktop | |
Contains USB HID Usages definitions for Generic Desktop Page. | |
HID Usages for Device | |
Contains USB HID Usages definitions for Generic Device Control Page. | |
HID Usage Tables for Game | |
Contains USB HID Usages definitions for Game Controls Page. | |
HID Usages for Keyboard | |
Contains USB HID Usages definitions for Keyboard/Keypad Page. | |
HID Usages for LED's | |
Contains USB HID Usages definitions for LED's Control Page. | |
HID Usage Tables for Ordinal | |
Contains USB HID Usages definitions for Ordinal Page. | |
HID Usage Tables for Power Devices. | |
Contains USB HID Usage tables definitions for HID Power Devices. | |
HID Usage Tables for Simulation | |
Contains USB HID Usages definitions for Simulation Controls Page. | |
HID Usage Tables for Sport | |
Contains USB HID Usages definitions for Sport Controls Page. | |
HID Usage Tables for Telephony | |
Contains USB HID Usages definitions for Telephony Page. | |
HID Usage Tables for VR | |
Contains USB HID Usages definitions for VR Control Page. | |
Data Structures | |
struct | usb_hid_descriptor |
USB HID functional descriptor. More... | |
struct | usb_hid_descriptor_header |
USB HID functional descriptor header. More... | |
struct | usb_hid_report_descriptor |
USB HID report descriptor. More... | |
Macros | |
#define | USB_HID_REPORT_IN 0x01 |
Indicates that the item is an IN report type. | |
#define | USB_HID_REPORT_OUT 0x02 |
Indicates that the item is an OUT report type. | |
#define | USB_HID_REPORT_FEATURE 0x03 |
Indicates that the item is a FEATURE report type. | |
#define | DECLARE_USB_HID_DESCRIPTOR(p) |
Helper macro for the multireport hid descriptor. More... | |
USB HID class code | |
#define | USB_CLASS_HID 0x03 |
Interface belongs to the Human Interface device class. | |
USB HID subclass codes | |
#define | USB_HID_SUBCLASS_NONBOOT 0x00 |
Nonboot subclass. | |
#define | USB_HID_SUBCLASS_BOOT 0x01 |
Boot subclass. | |
USB HID protocol codes | |
#define | USB_HID_PROTO_NONBOOT 0x00 |
Nonboot protocol. | |
#define | USB_HID_PROTO_KEYBOARD 0x01 |
Keyboard boot protocol. | |
#define | USB_HID_PROTO_MOUSE 0x02 |
Mouse boot protocol. | |
USB HID class-specified requests | |
#define | USB_HID_GETREPORT 0x01 |
Request to get the current HID report from the device. | |
#define | USB_HID_GETIDLE 0x02 |
Request to get the current device idle count. | |
#define | USB_HID_GETPROTOCOL 0x03 |
Request to get the current HID report protocol mode. | |
#define | USB_HID_SETREPORT 0x09 |
Request to set the current HID report to the device. | |
#define | USB_HID_SETIDLE 0x0A |
Request to set the device's idle count. | |
#define | USB_HID_SETPROTOCOL 0x0B |
Request to set the current HID report protocol mode. | |
USB HID class-specified descriptor types | |
#define | USB_DTYPE_HID 0x21 |
HID class HID descriptor type. | |
#define | USB_DTYPE_HID_REPORT 0x22 |
HID class HID report descriptor type. | |
USB HID country codes | |
#define | USB_HID_COUNTRY_NONE 0 |
Not supported. | |
#define | USB_HID_COUNTRY_AR 1 |
Arabic. | |
#define | USB_HID_COUNTRY_BE 2 |
Belgian. | |
#define | USB_HID_COUNTRY_CA_BI 3 |
Canadian-Bilingual. | |
#define | USB_HID_COUNTRY_CA_FR 4 |
Canadian-French. | |
#define | USB_HID_COUNTRY_CZ 5 |
Czech Republic. | |
#define | USB_HID_COUNTRY_DK 6 |
Danish. | |
#define | USB_HID_COUNTRY_FI 7 |
Finnish. | |
#define | USB_HID_COUNTRY_FR 8 |
French. | |
#define | USB_HID_COUNTRY_DE 9 |
German. | |
#define | USB_HID_COUNTRY_GR 10 |
Greek. | |
#define | USB_HID_COUNTRY_HEB 11 |
Hebrew. | |
#define | USB_HID_COUNTRY_HU 12 |
Hungary. | |
#define | USB_HID_COUNTRY_ISO 13 |
International (ISO) | |
#define | USB_HID_COUNTRY_IT 14 |
Italian. | |
#define | USB_HID_COUNTRY_JP 15 |
Japan (Katakana) | |
#define | USB_HID_COUNTRY_KR 16 |
Korean. | |
#define | USB_HID_COUNTRY_LAT 17 |
Latin American. | |
#define | USB_HID_COUNTRY_NL 18 |
Netherlands/Dutch. | |
#define | USB_HID_COUNTRY_NO 19 |
Norwegian. | |
#define | USB_HID_COUNTRY_PER 20 |
Persian (Farsi) | |
#define | USB_HID_COUNTRY_PL 21 |
Poland. | |
#define | USB_HID_COUNTRY_PO 22 |
Portuguese. | |
#define | USB_HID_COUNTRY_RU 23 |
Russia. | |
#define | USB_HID_COUNTRY_SK 24 |
Slovakia. | |
#define | USB_HID_COUNTRY_ES 25 |
Spanish. | |
#define | USB_HID_COUNTRY_SE 26 |
Swedish. | |
#define | USB_HID_COUNTRY_CH_FR 26 |
Swiss-French. | |
#define | USB_HID_COUNTRY_CH_DE 27 |
Swiss-German. | |
#define | USB_HID_COUNTRY_CH 29 |
Switzerland. | |
#define | USB_HID_COUNTRY_TW 30 |
Taiwan. | |
#define | USB_HID_COUNTRY_TR_Q 31 |
Turkish-Q. | |
#define | USB_HID_COUNTRY_UK 32 |
United Kingdom. | |
#define | USB_HID_COUNTRY_US 33 |
United States. | |
#define | USB_HID_COUNTRY_YU 34 |
Yugoslavia. | |
#define | USB_HID_COUNTRY_TR_F 35 |
Turkish-F. | |
HID Collections types | |
#define | HID_PHYSICAL_COLLECTION 0x00 |
A physical collection of items. | |
#define | HID_APPLICATION_COLLECTION 0x01 |
Applies a name to a top level collection which the operating system uses to identify a device and possibly remap to a legacy API. | |
#define | HID_LOGICAL_COLLECTION 0x02 |
A logical collection of items. | |
#define | HID_REPORT_COLLECTION 0x03 |
#define | HID_NARY_COLLECTION 0x04 |
A collection that encompasses an array definition, naming the array set or the field created by the array. | |
#define | HID_USAGE_SWITCH_COLLECTION 0x05 |
Modifies the purpose or function of the usages (controls) that it contains. | |
#define | HID_USAGE_MODIFIER_COLLECTION 0x06 |
Modifies the purpose or function of the usages (controls) that contains it. | |
HID Input, Output and Feature Report Descriptor Item Flags | |
#define | HID_IOF_CONSTANT (1 << 0) |
#define | HID_IOF_DATA (0 << 0) |
#define | HID_IOF_VARIABLE (1 << 1) |
#define | HID_IOF_ARRAY (0 << 1) |
#define | HID_IOF_RELATIVE (1 << 2) |
#define | HID_IOF_ABSOLUTE (0 << 2) |
#define | HID_IOF_WRAP (1 << 3) |
#define | HID_IOF_NO_WRAP (0 << 3) |
#define | HID_IOF_NON_LINEAR (1 << 4) |
#define | HID_IOF_LINEAR (0 << 4) |
#define | HID_IOF_NO_PREFERRED_STATE (1 << 5) |
#define | HID_IOF_PREFERRED_STATE (0 << 5) |
#define | HID_IOF_NULLSTATE (1 << 6) |
#define | HID_IOF_NO_NULL_POSITION (0 << 6) |
#define | HID_IOF_VOLATILE (1 << 7) |
#define | HID_IOF_NON_VOLATILE (0 << 7) |
#define | HID_IOF_BUFFERED_BYTES (1 << 8) |
#define | HID_IOF_BITFIELD (0 << 8) |
HID Report Descriptor Main items | |
#define | HID_RI_INPUT(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0x80, DataBits, __VA_ARGS__) |
#define | HID_RI_OUTPUT(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0x90, DataBits, __VA_ARGS__) |
#define | HID_RI_COLLECTION(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0xA0, DataBits, __VA_ARGS__) |
#define | HID_RI_FEATURE(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0xB0, DataBits, __VA_ARGS__) |
#define | HID_RI_END_COLLECTION(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0xC0, DataBits, __VA_ARGS__) |
HID Report Descriptor Global items | |
#define | HID_RI_USAGE_PAGE(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x00, DataBits, __VA_ARGS__) |
#define | HID_RI_LOGICAL_MINIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x10, DataBits, __VA_ARGS__) |
#define | HID_RI_LOGICAL_MAXIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x20, DataBits, __VA_ARGS__) |
#define | HID_RI_PHYSICAL_MINIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x30, DataBits, __VA_ARGS__) |
#define | HID_RI_PHYSICAL_MAXIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x40, DataBits, __VA_ARGS__) |
#define | HID_RI_UNIT_EXPONENT(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x50, DataBits, __VA_ARGS__) |
#define | HID_RI_UNIT(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x60, DataBits, __VA_ARGS__) |
#define | HID_RI_REPORT_SIZE(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x70, DataBits, __VA_ARGS__) |
#define | HID_RI_REPORT_ID(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x80, DataBits, __VA_ARGS__) |
#define | HID_RI_REPORT_COUNT(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x90, DataBits, __VA_ARGS__) |
#define | HID_RI_PUSH(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0xA0, DataBits, __VA_ARGS__) |
#define | HID_RI_POP(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0xB0, DataBits, __VA_ARGS__) |
HID Report Descriptor Local items | |
#define | HID_RI_USAGE(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x00, DataBits, __VA_ARGS__) |
#define | HID_RI_USAGE_MINIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x10, DataBits, __VA_ARGS__) |
#define | HID_RI_USAGE_MAXIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x20, DataBits, __VA_ARGS__) |
#define | HID_RI_DESIGNATOR_INDEX(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x30, DataBits, __VA_ARGS__) |
#define | HID_RI_DESIGNATOR_MIN(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x40, DataBits, __VA_ARGS__) |
#define | HID_RI_DESIGNATOR_MAX(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x50, DataBits, __VA_ARGS__) |
#define | HID_RI_STRING_INDEX(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x70, DataBits, __VA_ARGS__) |
#define | HID_RI_STRING_MINIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x80, DataBits, __VA_ARGS__) |
#define | HID_RI_STRING_MAXIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x90, DataBits, __VA_ARGS__) |
#define | HID_RI_DELIMITER(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0xA0, DataBits, __VA_ARGS__) |
Macros for the units encoding | |
#define | HID_UNIT_NONE 0x00 |
#define | HID_UNIT_CGS_LINEAR 0x01 |
#define | HID_UNIT_CGS_ROTATION 0x02 |
#define | HID_UNIT_IMPERIAL_LINEAR 0x03 |
#define | HID_UNIT_IMPERIAL_ROTATION 0x04 |
#define | HID_UNIT_LENGTH(exp) ((exp & 0x0F) << 4) |
#define | HID_UNIT_ANGLE(exp) ((exp & 0x0F) << 4) |
#define | HID_UNIT_MASS(exp) ((exp & 0x0F) << 8) |
#define | HID_UNIT_TIME(exp) ((exp & 0x0F) << 12) |
#define | HID_UNIT_TEMPERATURE(exp) ((exp & 0x0F) << 16) |
#define | HID_UNIT_CURRENT(exp) ((exp & 0x0F) << 20) |
#define | HID_UNIT_LUMINOUS(exp) ((exp & 0x0F) << 24) |
Macros for the some SI named units | |
#define | HID_UNIT_METER(exp) |
#define | HID_UNIT_KG(exp) |
#define | HID_UNIT_SECOND(exp) |
#define | HID_UNIT_MPS(exp) |
#define | HID_UNIT_MPS2(exp) |
#define | HID_UNIT_NEWTON(exp) |
#define | HID_UNIT_JOULE(exp) |
#define | HID_UNIT_WATT(exp) |
#define | HID_UNIT_PASCAL(exp) |
#define | HID_UNIT_HERTZ(exp) |
#define | HID_UNIT_AMPERE(exp) |
#define | HID_UNIT_VOLT(exp) |
#define | HID_UNIT_OHM(exp) |
#define | HID_UNIT_HENRY(exp) |
#define | HID_UNIT_FARAD(exp) |
#define | HID_UNIT_COULOMB(exp) |
#define | HID_UNIT_TESLA(exp) |
#define | HID_UNIT_LUX(exp) |
This module contains USB Human Interface Devices class definitions.
This module based on
Type | Logical min | Logical max | Flags | Signal | Operation |
---|---|---|---|---|---|
[LC] Linear control | -1 | 1 | Relative, Preferred state | Edge | Inc / Dec value |
-Min | Max | Relative, Preferred state | Level | Inc / Dec value by n | |
Min | Max | Absolute, Preferred state | N/A | Absolute value | |
[OOC] ON/OFF control | -1 | 1 | Relative, No preferred | Edge | 1 asserts ON; -1 assertsOFF |
0 | 1 | Relative, Preferred state | Edge | 0->1 toggles ON/OFF | |
0 | 1 | Absolute, No preferred | Level | 0 asserts ON; 1 asserts OFF | |
[MC] Momentary control | 0 | 1 | Absolute, Preferred state | Level | 0 asserts, 1 deasserts condition |
[OSC] One shot control | 0 | 1 | Relative, Preferred state | Edge | 0->1 triggers an event |
[RTC] Re-trigger control | 0 | 1 | Absolute, Preferred state | Level | 1 trigger an event |
Type | Flgs | Description |
---|---|---|
[SEL] Selector | Array | Contained a Named Array |
[SV] Static value | Constant, Variable, Absolute | Read-only multiple-bit value |
[SF] Static flag | Constant, Variable, Absolute | Read-only single-bit value |
[DV] Dynamic value | Data, Variable, Absolute | Read-write multiple-bit value |
[DF] Dynamic flag | Data, Variable, Absolute | Read-write single-bit value |
#define DECLARE_USB_HID_DESCRIPTOR | ( | p | ) |
Helper macro for the multireport hid descriptor.
#define HID_IOF_CONSTANT (1 << 0) |
#define HID_IOF_DATA (0 << 0) |
#define HID_IOF_VARIABLE (1 << 1) |
#define HID_IOF_ARRAY (0 << 1) |
#define HID_IOF_RELATIVE (1 << 2) |
#define HID_IOF_ABSOLUTE (0 << 2) |
#define HID_IOF_WRAP (1 << 3) |
#define HID_IOF_NO_WRAP (0 << 3) |
#define HID_IOF_NON_LINEAR (1 << 4) |
#define HID_IOF_LINEAR (0 << 4) |
#define HID_IOF_NO_PREFERRED_STATE (1 << 5) |
#define HID_IOF_PREFERRED_STATE (0 << 5) |
#define HID_IOF_NULLSTATE (1 << 6) |
#define HID_IOF_NO_NULL_POSITION (0 << 6) |
#define HID_IOF_VOLATILE (1 << 7) |
#define HID_IOF_NON_VOLATILE (0 << 7) |
#define HID_IOF_BUFFERED_BYTES (1 << 8) |
#define HID_IOF_BITFIELD (0 << 8) |
#define HID_RI_INPUT | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0x80, DataBits, __VA_ARGS__) |
#define HID_RI_OUTPUT | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0x90, DataBits, __VA_ARGS__) |
#define HID_RI_COLLECTION | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0xA0, DataBits, __VA_ARGS__) |
#define HID_RI_FEATURE | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0xB0, DataBits, __VA_ARGS__) |
#define HID_RI_END_COLLECTION | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0xC0, DataBits, __VA_ARGS__) |
#define HID_RI_USAGE_PAGE | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x00, DataBits, __VA_ARGS__) |
#define HID_RI_LOGICAL_MINIMUM | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x10, DataBits, __VA_ARGS__) |
#define HID_RI_LOGICAL_MAXIMUM | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x20, DataBits, __VA_ARGS__) |
#define HID_RI_PHYSICAL_MINIMUM | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x30, DataBits, __VA_ARGS__) |
#define HID_RI_PHYSICAL_MAXIMUM | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x40, DataBits, __VA_ARGS__) |
#define HID_RI_UNIT_EXPONENT | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x50, DataBits, __VA_ARGS__) |
#define HID_RI_UNIT | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x60, DataBits, __VA_ARGS__) |
#define HID_RI_REPORT_SIZE | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x70, DataBits, __VA_ARGS__) |
#define HID_RI_REPORT_ID | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x80, DataBits, __VA_ARGS__) |
#define HID_RI_REPORT_COUNT | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x90, DataBits, __VA_ARGS__) |
#define HID_RI_PUSH | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0xA0, DataBits, __VA_ARGS__) |
#define HID_RI_POP | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0xB0, DataBits, __VA_ARGS__) |
#define HID_RI_USAGE | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x00, DataBits, __VA_ARGS__) |
#define HID_RI_USAGE_MINIMUM | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x10, DataBits, __VA_ARGS__) |
#define HID_RI_USAGE_MAXIMUM | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x20, DataBits, __VA_ARGS__) |
#define HID_RI_DESIGNATOR_INDEX | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x30, DataBits, __VA_ARGS__) |
#define HID_RI_DESIGNATOR_MIN | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x40, DataBits, __VA_ARGS__) |
#define HID_RI_DESIGNATOR_MAX | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x50, DataBits, __VA_ARGS__) |
#define HID_RI_STRING_INDEX | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x70, DataBits, __VA_ARGS__) |
#define HID_RI_STRING_MINIMUM | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x80, DataBits, __VA_ARGS__) |
#define HID_RI_STRING_MAXIMUM | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x90, DataBits, __VA_ARGS__) |
#define HID_RI_DELIMITER | ( | DataBits, | |
... | |||
) | _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0xA0, DataBits, __VA_ARGS__) |
#define HID_INPUT | ( | data | ) | HID_RI_INPUT(8, data) |
#define HID_OUTPUT | ( | data | ) | HID_RI_OUTPUT(8, data) |
#define HID_COLLECTION | ( | data | ) | HID_RI_COLLECTION(8, data) |
#define HID_FEATURE | ( | data | ) | HID_RI_FEATURE(8, data) |
#define HID_END_COLLECTION HID_RI_END_COLLECTION(0) |
#define HID_USAGE_PAGE | ( | data | ) | HID_RI_USAGE_PAGE(8, data) |
#define HID_LOGICAL_MINIMUM | ( | data | ) | HID_RI_LOGICAL_MINIMUM(8, data) |
#define HID_LOGICAL_MAXIMUM | ( | data | ) | HID_RI_LOGICAL_MAXIMUM(8, data) |
#define HID_PHYSICAL_MINIMUM | ( | data | ) | HID_RI_PHYSICAL_MINIMUM(16, data) |
#define HID_PHYSICAL_MAXIMUM | ( | data | ) | HID_RI_PHYSICAL_MAXIMUM(16, data) |
#define HID_UNIT_EXPONENT | ( | data | ) | HID_RI_UNIT_EXPONENT(8, data) |
#define HID_UNIT | ( | bits, | |
data | |||
) | HID_RI_UNIT(bits, data) |
#define HID_REPORT_SIZE | ( | data | ) | HID_RI_REPORT_SIZE(8, data) |
#define HID_REPORT_ID | ( | data | ) | HID_RI_REPORT_ID(8, data) |
#define HID_REPORT_COUNT | ( | data | ) | HID_RI_REPORT_COUNT(8, data) |
#define HID_PUSH HID_RI_PUSH(0) |
#define HID_POP HID_RI_POP(0) |
#define HID_USAGE | ( | data | ) | HID_RI_USAGE(8, data) |
#define HID_USAGE_MINIMUM | ( | data | ) | HID_RI_USAGE_MINIMUM(8, data) |
#define HID_USAGE_MAXIMUM | ( | data | ) | HID_RI_USAGE_MAXIMUM(8, data) |
#define HID_UNIT_CGS_LINEAR 0x01 |
#define HID_UNIT_CGS_ROTATION 0x02 |
#define HID_UNIT_IMPERIAL_LINEAR 0x03 |
#define HID_UNIT_IMPERIAL_ROTATION 0x04 |
#define HID_UNIT_LENGTH | ( | exp | ) | ((exp & 0x0F) << 4) |
#define HID_UNIT_ANGLE | ( | exp | ) | ((exp & 0x0F) << 4) |
#define HID_UNIT_MASS | ( | exp | ) | ((exp & 0x0F) << 8) |
#define HID_UNIT_TIME | ( | exp | ) | ((exp & 0x0F) << 12) |
#define HID_UNIT_TEMPERATURE | ( | exp | ) | ((exp & 0x0F) << 16) |
#define HID_UNIT_CURRENT | ( | exp | ) | ((exp & 0x0F) << 20) |
#define HID_UNIT_LUMINOUS | ( | exp | ) | ((exp & 0x0F) << 24) |
#define HID_UNIT_METER | ( | exp | ) |
SI length. m = 1E2 * cm
#define HID_UNIT_KG | ( | exp | ) |
SI mass. kg = 1E3 * g
#define HID_UNIT_SECOND | ( | exp | ) |
SI time. 1s
#define HID_UNIT_MPS | ( | exp | ) |
SI velocity. m/s = 1E2 * cm/s
#define HID_UNIT_MPS2 | ( | exp | ) |
SI acceleration. m/s^2 = 1E2 * cm/s^2
#define HID_UNIT_NEWTON | ( | exp | ) |
SI force. N = 1E5 * g * cm / s^2
#define HID_UNIT_JOULE | ( | exp | ) |
SI energy. J = 1E7 * g * cm^2 / s^2
#define HID_UNIT_WATT | ( | exp | ) |
SI power. W = 1E7 * g * cm^2 / s^3
#define HID_UNIT_PASCAL | ( | exp | ) |
SI pressure. Pa = 1E1 * g / (cm * s^2)
#define HID_UNIT_HERTZ | ( | exp | ) |
SI frequency. Hz = 1 / s
#define HID_UNIT_AMPERE | ( | exp | ) |
SI current. A
#define HID_UNIT_VOLT | ( | exp | ) |
SI voltage. V = W / A = 1E7 * g * cm^2 / (s^3 * A)
#define HID_UNIT_OHM | ( | exp | ) |
SI resistance. Ohm = 1E7 * g * cm^2 / (s^3 * A^2)
#define HID_UNIT_HENRY | ( | exp | ) |
SI inductance. H = 1E7 * g * cm^2 / (s^2 * A^2)
#define HID_UNIT_FARAD | ( | exp | ) |
SI capacitance. F = 1E-7 * s^4 * A^2 / (cm^2 * g)
#define HID_UNIT_COULOMB | ( | exp | ) |
SI electric charge. C = s * A
#define HID_UNIT_TESLA | ( | exp | ) |
SI magnetic flux density. T = 1E3 * g / (s^2 * A)
#define HID_UNIT_LUX | ( | exp | ) |
SI illuminance. lx = 1E4 * cd / cm^2