Сам с USB только начал разбираться, по сему если что не так понимаю извините.
Вот дескриптор репорта джойстика Logitech Attack 3, коментировал для себя сам - могут быть ошибки.
Код
0x05, 0x01, // Usage Page (Generic Desktop)
0x09, 0x04, // Usage (Joystick ???)
0xa1, 0x01, // Collection (Application)
0xa1, 0x02, // Collection (Logical)
0x15, 0x00, // Logical Minimum (0)
0x26, 0xff, 0x00, // Logical Maximum (0x00FF)
0x35, 0x00, // Phisical Minimum (0)
0x46, 0xff, 0x00, // Phisical Maximum (0x00FF)
0x75, 0x08, // Report Size (8)
0x95, 0x03, // Report Count (3)
0x09, 0x30, // Usage (X)
0x09, 0x31, // Usage (Y)
0x09, 0x32, // Usage (Z)
0x81, 0x02, // Input(Data,Var,Abs)
0x25, 0x01, // Logical Maximum (1)
0x45, 0x01, // Phisical Maximum (1)
0x75, 0x01, // Report Size (1)
0x95, 0x0b, // Report Count (11)
0x05, 0x09, // Usage Page (Buttons)
0x19, 0x01, // Usage Minimum (01)
0x29, 0x0b, // Usage Maximum (11)
0x81, 0x02, // Input(Data,Var,Abs)
0x75, 0x01, // Report Size (1)
0x95, 0x05, // Report Count (5)
0x81, 0x01, // Input(????????)
0xc0, // End collection
0xa1, 0x02, // Collection (Logical)
0x26, 0xff, 0x00, // Logical Maximum (0x00FF)
0x46, 0xff, 0x00, // Phisical Maximum (0x00FF)
0x75, 0x08, // Report Size (8)
0x95, 0x04, // Report Count (3)
0x06, 0x00, 0xff, // Usage (Vendor defined)
0x09, 0x01, // Usage (Monitor control)
0xb1, 0x02, // Feature (Data, Var, Abs)
0xc0, // End collection x2
0xc0 //End collection x2
У это джойстика одиннадцать кнопок, собственно это видно в дескрипторе. Но за кнопками добиты еще 5 ненужных??? бит. Сдается мне что добили их до размера данных в 2 байта. Возможно Вам необходимо сделать тоже, то есть добавить 6 бит.
Типа так:
Код
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
0x09, 0x05, // USAGE (Game Pad (Joystick))
0xa1, 0x01, // COLLECTION (Application)
0x09, 0x01, // USAGE (Pointer)
0xa1, 0x00, // COLLECTION (Physical)
0x85, 0x01, // REPORT_ID (1)
0x05, 0x09, // USAGE_PAGE (Button)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0x01, // LOGICAL_MAXIMUM (1)
0x19, 0x01, // USAGE_MINIMUM (Button 1)
0x29, 0x0A, // USAGE_MAXIMUM (Button 10)
0x95, 0x0A, // REPORT_COUNT (10)
0x75, 0x01, // REPORT_SIZE (1)
0x81, 0x02, // INPUT (Data,Var,Abs)
0x81, 0x07, // INPUT (Constant)
0x75, 0x01, // Report Size (1)
0x95, 0x05, // Report Count (6)
0x81, 0x01, // Input(????????)
0xc0, // END_COLLECTION