USB Human Interface Device (HID) protocol definitions.
Copyright (c) 2009-2018 Microchip Technology Inc. and its subsidiaries.
Data Structures | |
struct | usb_hid_descriptor_t |
HID Descriptor. More... | |
Macros | |
Possible Class value | |
#define | HID_CLASS 0x03 |
Possible SubClass value | |
#define | HID_SUB_CLASS_NOBOOT 0x00 |
Interface subclass NO support BOOT protocol. More... | |
#define | HID_SUB_CLASS_BOOT 0x01 |
Interface subclass support BOOT protocol. More... | |
Possible protocol value | |
#define | HID_PROTOCOL_GENERIC 0x00 |
Protocol generic standard. More... | |
#define | HID_PROTOCOL_KEYBOARD 0x01 |
Protocol keyboard standard. More... | |
#define | HID_PROTOCOL_MOUSE 0x02 |
Protocol mouse standard. More... | |
HID Report type | |
Used by SETUP_HID_GET_REPORT & SETUP_HID_SET_REPORT | |
#define | REPORT_TYPE_INPUT 0x01 |
#define | REPORT_TYPE_OUTPUT 0x02 |
#define | REPORT_TYPE_FEATURE 0x03 |
Constants of field DESCRIPTOR_HID | |
#define | USB_HID_BDC_V1_11 0x0111 |
Numeric expression identifying the HID Class Specification release (here V1.11) More... | |
#define | USB_HID_NUM_DESC 0x01 |
Numeric expression specifying the number of class descriptors Note: Always at least one i.e. More... | |
Country code | |
#define | USB_HID_NO_COUNTRY_CODE 0 |
#define | USB_HID_COUNTRY_ARABIC 1 |
#define | USB_HID_COUNTRY_BELGIAN 2 |
#define | USB_HID_COUNTRY_CANADIAN_BILINGUAL 3 |
#define | USB_HID_COUNTRY_CANADIAN_FRENCH 4 |
#define | USB_HID_COUNTRY_CZECH_REPUBLIC 5 |
#define | USB_HID_COUNTRY_DANISH 6 |
#define | USB_HID_COUNTRY_FINNISH 7 |
#define | USB_HID_COUNTRY_FRENCH 8 |
#define | USB_HID_COUNTRY_GERMAN 9 |
#define | USB_HID_COUNTRY_GREEK 10 |
#define | USB_HID_COUNTRY_HEBREW 11 |
#define | USB_HID_COUNTRY_HUNGARY 12 |
#define | USB_HID_COUNTRY_INTERNATIONAL_ISO 13 |
#define | USB_HID_COUNTRY_ITALIAN 14 |
#define | USB_HID_COUNTRY_JAPAN_KATAKANA 15 |
#define | USB_HID_COUNTRY_KOREAN 16 |
#define | USB_HID_COUNTRY_LATIN_AMERICAN 17 |
#define | USB_HID_COUNTRY_NETHERLANDS_DUTCH 18 |
#define | USB_HID_COUNTRY_NORWEGIAN 19 |
#define | USB_HID_COUNTRY_PERSIAN_FARSI 20 |
#define | USB_HID_COUNTRY_POLAND 21 |
#define | USB_HID_COUNTRY_PORTUGUESE 22 |
#define | USB_HID_COUNTRY_RUSSIA 23 |
#define | USB_HID_COUNTRY_SLOVAKIA 24 |
#define | USB_HID_COUNTRY_SPANISH 25 |
#define | USB_HID_COUNTRY_SWEDISH 26 |
#define | USB_HID_COUNTRY_SWISS_FRENCH 27 |
#define | USB_HID_COUNTRY_SWISS_GERMAN 28 |
#define | USB_HID_COUNTRY_SWITZERLAND 29 |
#define | USB_HID_COUNTRY_TAIWAN 30 |
#define | USB_HID_COUNTRY_TURKISH_Q 31 |
#define | USB_HID_COUNTRY_UK 32 |
#define | USB_HID_COUNTRY_US 33 |
#define | USB_HID_COUNTRY_YUGOSLAVIA 34 |
#define | USB_HID_COUNTRY_TURKISH_F 35 |
HID KEYS values | |
#define | HID_A 0x04 |
#define | HID_B 0x05 |
#define | HID_C 0x06 |
#define | HID_D 0x07 |
#define | HID_E 0x08 |
#define | HID_F 0x09 |
#define | HID_G 0x0A |
#define | HID_H 0x0B |
#define | HID_I 0x0C |
#define | HID_J 0x0D |
#define | HID_K 0x0E |
#define | HID_L 0x0F |
#define | HID_M 0x10 |
#define | HID_N 0x11 |
#define | HID_O 0x12 |
#define | HID_P 0x13 |
#define | HID_Q 0x14 |
#define | HID_R 0x15 |
#define | HID_S 0x16 |
#define | HID_T 0x17 |
#define | HID_U 0x18 |
#define | HID_V 0x19 |
#define | HID_W 0x1A |
#define | HID_X 0x1B |
#define | HID_Y 0x1C |
#define | HID_Z 0x1D |
#define | HID_1 30 |
#define | HID_2 31 |
#define | HID_3 32 |
#define | HID_4 33 |
#define | HID_5 34 |
#define | HID_6 35 |
#define | HID_7 36 |
#define | HID_8 37 |
#define | HID_9 38 |
#define | HID_0 39 |
#define | HID_ENTER 40 |
#define | HID_ESCAPE 41 |
#define | HID_BACKSPACE 42 |
#define | HID_TAB 43 |
#define | HID_SPACEBAR 44 |
#define | HID_UNDERSCORE 45 |
#define | HID_PLUS 46 |
#define | HID_OPEN_BRACKET 47 |
#define | HID_CLOSE_BRACKET 48 |
#define | HID_BACKSLASH 49 |
#define | HID_ASH 50 |
#define | HID_COLON 51 |
#define | HID_QUOTE 52 |
#define | HID_TILDE 53 |
#define | HID_COMMA 54 |
#define | HID_DOT 55 |
#define | HID_SLASH 56 |
#define | HID_CAPS_LOCK 57 |
#define | HID_F1 58 |
#define | HID_F2 59 |
#define | HID_F3 60 |
#define | HID_F4 61 |
#define | HID_F5 62 |
#define | HID_F6 63 |
#define | HID_F7 64 |
#define | HID_F8 65 |
#define | HID_F9 66 |
#define | HID_F10 67 |
#define | HID_F11 68 |
#define | HID_F12 69 |
#define | HID_PRINTSCREEN 70 |
#define | HID_SCROLL_LOCK 71 |
#define | HID_PAUSE 72 |
#define | HID_INSERT 73 |
#define | HID_HOME 74 |
#define | HID_PAGEUP 75 |
#define | HID_DELETE 76 |
#define | HID_END 77 |
#define | HID_PAGEDOWN 78 |
#define | HID_RIGHT 79 |
#define | HID_LEFT 80 |
#define | HID_DOWN 81 |
#define | HID_UP 82 |
#define | HID_KEYPAD_NUM_LOCK 83 |
#define | HID_KEYPAD_DIVIDE 84 |
#define | HID_KEYPAD_AT 85 |
#define | HID_KEYPAD_MULTIPLY 85 |
#define | HID_KEYPAD_MINUS 86 |
#define | HID_KEYPAD_PLUS 87 |
#define | HID_KEYPAD_ENTER 88 |
#define | HID_KEYPAD_1 89 |
#define | HID_KEYPAD_2 90 |
#define | HID_KEYPAD_3 91 |
#define | HID_KEYPAD_4 92 |
#define | HID_KEYPAD_5 93 |
#define | HID_KEYPAD_6 94 |
#define | HID_KEYPAD_7 95 |
#define | HID_KEYPAD_8 96 |
#define | HID_KEYPAD_9 97 |
#define | HID_KEYPAD_0 98 |
#define | HID_LED_NUM_LOCK (1<<0) |
#define | HID_LED_CAPS_LOCK (1<<1) |
#define | HID_LED_SCROLL_LOCK (1<<2) |
#define | HID_LED_COMPOSE (1<<3) |
#define | HID_LED_KANA (1<<4) |
HID modifier values | |
#define | HID_MODIFIER_NONE 0x00 |
#define | HID_MODIFIER_LEFT_CTRL 0x01 |
#define | HID_MODIFIER_LEFT_SHIFT 0x02 |
#define | HID_MODIFIER_LEFT_ALT 0x04 |
#define | HID_MODIFIER_LEFT_UI 0x08 |
#define | HID_MODIFIER_RIGHT_CTRL 0x10 |
#define | HID_MODIFIER_RIGHT_SHIFT 0x20 |
#define | HID_MODIFIER_RIGHT_ALT 0x40 |
#define | HID_MODIFIER_RIGHT_UI 0x80 |
Enumerations | |
enum | usb_descriptor_type_hid { USB_DT_HID = 0x21, USB_DT_HID_REPORT = 0x22, USB_DT_HID_PHYSICAL = 0x23 } |
HID USB descriptor types. More... | |
enum | usb_hid_item_report_type { USB_HID_ITEM_REPORT_TYPE_MAIN = 0, USB_HID_ITEM_REPORT_TYPE_GLOBAL = 1, USB_HID_ITEM_REPORT_TYPE_LOCAL = 2, USB_HID_ITEM_REPORT_TYPE_LONG = 3 } |
HID Type for report descriptor. More... | |
enum | usb_hid_protocol { USB_HID_PROCOTOL_BOOT = 0, USB_HID_PROCOTOL_REPORT = 1 } |
HID protocol. More... | |
enum | usb_hid_report_type { USB_HID_REPORT_TYPE_INPUT = 1, USB_HID_REPORT_TYPE_OUTPUT = 2, USB_HID_REPORT_TYPE_FEATURE = 3 } |
HID report type. More... | |
enum | usb_reqid_hid { USB_REQ_HID_GET_REPORT = 0x01, USB_REQ_HID_GET_IDLE = 0x02, USB_REQ_HID_GET_PROTOCOL = 0x03, USB_REQ_HID_SET_REPORT = 0x09, USB_REQ_HID_SET_IDLE = 0x0A, USB_REQ_HID_SET_PROTOCOL = 0x0B } |
Hid USB requests (bRequest) More... | |
#define HID_0 39 |
#define HID_1 30 |
#define HID_2 31 |
#define HID_3 32 |
#define HID_4 33 |
#define HID_5 34 |
#define HID_6 35 |
#define HID_7 36 |
#define HID_8 37 |
#define HID_9 38 |
#define HID_A 0x04 |
#define HID_ASH 50 |
#define HID_B 0x05 |
#define HID_BACKSLASH 49 |
#define HID_BACKSPACE 42 |
#define HID_C 0x06 |
#define HID_CAPS_LOCK 57 |
#define HID_CLOSE_BRACKET 48 |
#define HID_COLON 51 |
#define HID_COMMA 54 |
#define HID_D 0x07 |
#define HID_DELETE 76 |
#define HID_DOT 55 |
#define HID_DOWN 81 |
#define HID_E 0x08 |
#define HID_END 77 |
#define HID_ENTER 40 |
#define HID_ESCAPE 41 |
#define HID_F 0x09 |
#define HID_F1 58 |
#define HID_F10 67 |
#define HID_F11 68 |
#define HID_F12 69 |
#define HID_F2 59 |
#define HID_F3 60 |
#define HID_F4 61 |
#define HID_F5 62 |
#define HID_F6 63 |
#define HID_F7 64 |
#define HID_F8 65 |
#define HID_F9 66 |
#define HID_G 0x0A |
#define HID_H 0x0B |
#define HID_HOME 74 |
#define HID_I 0x0C |
#define HID_INSERT 73 |
#define HID_J 0x0D |
#define HID_K 0x0E |
#define HID_KEYPAD_0 98 |
#define HID_KEYPAD_1 89 |
#define HID_KEYPAD_2 90 |
#define HID_KEYPAD_3 91 |
#define HID_KEYPAD_4 92 |
#define HID_KEYPAD_5 93 |
#define HID_KEYPAD_6 94 |
#define HID_KEYPAD_7 95 |
#define HID_KEYPAD_8 96 |
#define HID_KEYPAD_9 97 |
#define HID_KEYPAD_AT 85 |
#define HID_KEYPAD_DIVIDE 84 |
#define HID_KEYPAD_ENTER 88 |
#define HID_KEYPAD_MINUS 86 |
#define HID_KEYPAD_MULTIPLY 85 |
#define HID_KEYPAD_NUM_LOCK 83 |
#define HID_KEYPAD_PLUS 87 |
#define HID_L 0x0F |
#define HID_LED_CAPS_LOCK (1<<1) |
#define HID_LED_COMPOSE (1<<3) |
#define HID_LED_KANA (1<<4) |
#define HID_LED_NUM_LOCK (1<<0) |
#define HID_LED_SCROLL_LOCK (1<<2) |
#define HID_LEFT 80 |
#define HID_M 0x10 |
#define HID_MODIFIER_LEFT_ALT 0x04 |
#define HID_MODIFIER_LEFT_CTRL 0x01 |
#define HID_MODIFIER_LEFT_SHIFT 0x02 |
#define HID_MODIFIER_LEFT_UI 0x08 |
#define HID_MODIFIER_NONE 0x00 |
#define HID_MODIFIER_RIGHT_ALT 0x40 |
#define HID_MODIFIER_RIGHT_CTRL 0x10 |
#define HID_MODIFIER_RIGHT_SHIFT 0x20 |
#define HID_MODIFIER_RIGHT_UI 0x80 |
#define HID_N 0x11 |
#define HID_O 0x12 |
#define HID_OPEN_BRACKET 47 |
#define HID_P 0x13 |
#define HID_PAGEDOWN 78 |
#define HID_PAGEUP 75 |
#define HID_PAUSE 72 |
#define HID_PLUS 46 |
#define HID_PRINTSCREEN 70 |
#define HID_Q 0x14 |
#define HID_QUOTE 52 |
#define HID_R 0x15 |
#define HID_RIGHT 79 |
#define HID_S 0x16 |
#define HID_SCROLL_LOCK 71 |
#define HID_SLASH 56 |
#define HID_SPACEBAR 44 |
#define HID_T 0x17 |
#define HID_TAB 43 |
#define HID_TILDE 53 |
#define HID_U 0x18 |
#define HID_UNDERSCORE 45 |
#define HID_UP 82 |
#define HID_V 0x19 |
#define HID_W 0x1A |
#define HID_X 0x1B |
#define HID_Y 0x1C |
#define HID_Z 0x1D |