Microchip® Advanced Software Framework

usb_protocol_hid.h File Reference

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