Example #1
0
unsigned char mouse_report[] =
{
    HID_USAGE_PAGE_1B (HUP_GENERIC_DESKTOP),
    HID_USAGE_1B (HU_MOUSE),
    HID_COLLECTION (HID_APPLICATION),
        HID_USAGE_1B (HU_POINTER),
        HID_COLLECTION (HID_PHYSICAL),
            HID_USAGE_PAGE_1B (HUP_BUTTONS),
            HID_USAGE_MINIMUM (1),
            HID_USAGE_MAXIMUM (3),
            HID_LOGICAL_MINIMUM_1B (0),
            HID_LOGICAL_MAXIMUM_1B (1),
            HID_REPORT_COUNT (3),
            HID_REPORT_SIZE (1),
            HID_INPUT (HID_DATA | HID_VARIABLE | HID_ABSOLUTE),
            HID_REPORT_COUNT (1),
            HID_REPORT_SIZE (5),
            HID_INPUT (HID_CONSTANT),
            HID_USAGE_PAGE_1B (HUP_GENERIC_DESKTOP),
            HID_USAGE_1B (HU_X),
            HID_USAGE_1B (HU_Y),
            HID_LOGICAL_MINIMUM_1B (-127),
            HID_LOGICAL_MAXIMUM_1B (127),
            HID_REPORT_SIZE (8),
            HID_REPORT_COUNT (2),
            HID_INPUT (HID_DATA | HID_VARIABLE | HID_RELATIVE),
        HID_END_COLLECTION,
    HID_END_COLLECTION
};
Example #2
0
  .iProduct = 2,
  .iSerialNumber = 3,
  .bNumConfigurations = 1,
};

static const uint8_t hid_report_descriptor[] = {
  0x06, 0x00, 0xff,
  HID_USAGE   (0x01),
  HID_COLLECTION    (HID_COLLECTION_APPLICATION),
    HID_REPORT_ID(1),
    HID_LOGICAL_MINIMUM     (0),
    HID_LOGICAL_MAXIMUM     (255),
    HID_REPORT_SIZE   (8),
    HID_REPORT_COUNT  (9),
    HID_USAGE   (0x01),
    HID_INPUT (0x02),
  HID_END_COLLECTION,
  0x06, 0x00, 0xff,
  HID_USAGE   (0x01),
  HID_COLLECTION    (HID_COLLECTION_APPLICATION),
    HID_REPORT_ID(2),
    HID_LOGICAL_MINIMUM     (0),
    HID_LOGICAL_MAXIMUM     (255),
    HID_REPORT_SIZE   (8),
    HID_REPORT_COUNT  (MAX_PACKET_SIZE),
    HID_USAGE   (0x01),
    HID_INPUT (0x02),
  HID_END_COLLECTION,
};

static const struct {
Example #3
0
	item must start on a byte boundary to satisfy this condition.
		- USB HID 1.11 Specification, p. 57
*/
local const u8 PROGMEM NkroKeyboardReportDescriptor[] = {
	HID_USAGE_PAGE      (8, HID_USAGE_PAGE_GENERIC_DESKTOP_CONTROLS),
	HID_USAGE           (8, HID_DESKTOP_KEYBOARD),
	HID_COLLECTION      (8, HID_COLLECTION_APPLICATION),

	HID_USAGE_PAGE      (8, HID_USAGE_PAGE_KEYBOARD_KEYPAD),
	HID_LOGICAL_MINIMUM (8, 0x00),
	HID_LOGICAL_MAXIMUM (8, 0x01),
	HID_REPORT_SIZE     (8, 0x01),
	HID_REPORT_COUNT    (8, 0x20),
	HID_USAGE_MINIMUM   (8, 0x00),
	HID_USAGE_MAXIMUM   (8, 0x1F),
	HID_INPUT           (8, HID_DATA | HID_VARIABLE | HID_ABSOLUTE),

	HID_USAGE_MINIMUM   (8, 0x20),
	HID_USAGE_MAXIMUM   (8, 0x3F),
	HID_INPUT           (8, HID_DATA | HID_VARIABLE | HID_ABSOLUTE),

	HID_USAGE_MINIMUM   (8, 0x40),
	HID_USAGE_MAXIMUM   (8, 0x5F),
	HID_INPUT           (8, HID_DATA | HID_VARIABLE | HID_ABSOLUTE),

	HID_USAGE_MINIMUM   (8, 0x60),
	HID_USAGE_MAXIMUM   (8, 0x7F),
	HID_INPUT           (8, HID_DATA | HID_VARIABLE | HID_ABSOLUTE),

	HID_USAGE_MINIMUM   (8, 0x80),
	HID_USAGE_MAXIMUM   (8, 0x9F),
Example #4
0
	HID_USAGE_PAGE_SENSOR,
	
	HID_USAGE_SENSOR_STATE,
	HID_LOGICAL_MIN_8(0),
	HID_LOGICAL_MAX_8(6),
			HID_REPORT_SIZE(8),
			HID_REPORT_COUNT(1),
	HID_COLLECTION(Logical),
			HID_USAGE_SENSOR_STATE_UNKNOWN_SEL_SEL,
			HID_USAGE_SENSOR_STATE_READY_SEL_SEL,
			HID_USAGE_SENSOR_STATE_NOT_AVAILABLE_SEL_SEL,
			HID_USAGE_SENSOR_STATE_NO_DATA_SEL_SEL,
			HID_USAGE_SENSOR_STATE_INITIALIZING_SEL_SEL,
			HID_USAGE_SENSOR_STATE_ACCESS_DENIED_SEL_SEL,
			HID_USAGE_SENSOR_STATE_ERROR_SEL_SEL,
	HID_INPUT(Data_Arr_Abs),
	HID_END_COLLECTION,
	
	HID_USAGE_SENSOR_EVENT,
	HID_LOGICAL_MIN_8(0),
	HID_LOGICAL_MAX_8(5),
			HID_REPORT_SIZE(8),
			HID_REPORT_COUNT(1),
		HID_COLLECTION(Logical),
	HID_USAGE_SENSOR_EVENT_UNKNOWN_SEL_SEL,
	HID_USAGE_SENSOR_EVENT_STATE_CHANGED_SEL_SEL,
	HID_USAGE_SENSOR_EVENT_PROPERTY_CHANGED_SEL_SEL,
	HID_USAGE_SENSOR_EVENT_DATA_UPDATED_SEL_SEL,
	HID_USAGE_SENSOR_EVENT_POLL_RESPONSE_SEL_SEL,
	HID_USAGE_SENSOR_EVENT_CHANGE_SENSITIVITY_SEL_SEL,
	HID_INPUT(Data_Arr_Abs),