linux-zen-desktop/tools/testing/selftests/hid/tests/descriptors_wacom.py

1361 lines
86 KiB
Python

# SPDX-License-Identifier: GPL-2.0
# fmt: off
wacom_pth660_v145 = [
0x05, 0x01, # . Usage Page (Desktop),
0x09, 0x02, # . Usage (Mouse),
0xA1, 0x01, # . Collection (Application),
0x85, 0x01, # . Report ID (1),
0x09, 0x01, # . Usage (Pointer),
0xA1, 0x00, # . Collection (Physical),
0x05, 0x09, # . Usage Page (Button),
0x19, 0x01, # . Usage Minimum (01h),
0x29, 0x03, # . Usage Maximum (03h),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x01, # . Logical Maximum (1),
0x75, 0x01, # . Report Size (1),
0x95, 0x03, # . Report Count (3),
0x81, 0x02, # . Input (Variable),
0x75, 0x01, # . Report Size (1),
0x95, 0x05, # . Report Count (5),
0x81, 0x03, # . Input (Constant, Variable),
0x05, 0x01, # . Usage Page (Desktop),
0x09, 0x30, # . Usage (X),
0x09, 0x31, # . Usage (Y),
0x15, 0x81, # . Logical Minimum (-127),
0x25, 0x7F, # . Logical Maximum (127),
0x75, 0x08, # . Report Size (8),
0x95, 0x02, # . Report Count (2),
0x81, 0x06, # . Input (Variable, Relative),
0xC0, # . End Collection,
0xC0, # . End Collection,
0x06, 0x0D, 0xFF, # . Usage Page (FF0Dh),
0x09, 0x01, # . Usage (01h),
0xA1, 0x01, # . Collection (Application),
0x85, 0x10, # . Report ID (16),
0x09, 0x20, # . Usage (20h),
0xA1, 0x00, # . Collection (Physical),
0x09, 0x42, # . Usage (42h),
0x09, 0x44, # . Usage (44h),
0x09, 0x5A, # . Usage (5Ah),
0x09, 0x45, # . Usage (45h),
0x09, 0x3C, # . Usage (3Ch),
0x09, 0x32, # . Usage (32h),
0x09, 0x36, # . Usage (36h),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x01, # . Logical Maximum (1),
0x75, 0x01, # . Report Size (1),
0x95, 0x07, # . Report Count (7),
0x81, 0x02, # . Input (Variable),
0x95, 0x01, # . Report Count (1),
0x81, 0x03, # . Input (Constant, Variable),
0x0A, 0x30, 0x01, # . Usage (0130h),
0x65, 0x11, # . Unit (Centimeter),
0x55, 0x0D, # . Unit Exponent (13),
0x35, 0x00, # . Physical Minimum (0),
0x47, 0x80, 0x57, 0x00, 0x00, # . Physical Maximum (22400),
0x15, 0x00, # . Logical Minimum (0),
0x27, 0x00, 0xAF, 0x00, 0x00, # . Logical Maximum (44800),
0x75, 0x18, # . Report Size (24),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0x0A, 0x31, 0x01, # . Usage (0131h),
0x47, 0xD0, 0x39, 0x00, 0x00, # . Physical Maximum (14800),
0x27, 0xA0, 0x73, 0x00, 0x00, # . Logical Maximum (29600),
0x81, 0x02, # . Input (Variable),
0x09, 0x30, # . Usage (30h),
0x55, 0x00, # . Unit Exponent (0),
0x65, 0x00, # . Unit,
0x15, 0x00, # . Logical Minimum (0),
0x26, 0xFF, 0x1F, # . Logical Maximum (8191), # !!! Errata: Missing Physical Max = 0
0x75, 0x10, # . Report Size (16),
0x81, 0x02, # . Input (Variable),
0x09, 0x3D, # . Usage (3Dh),
0x09, 0x3E, # . Usage (3Eh),
0x65, 0x14, # . Unit (Degrees),
0x55, 0x00, # . Unit Exponent (0),
0x35, 0xC0, # . Physical Minimum (-64),
0x45, 0x3F, # . Physical Maximum (63),
0x15, 0xC0, # . Logical Minimum (-64),
0x25, 0x3F, # . Logical Maximum (63),
0x75, 0x08, # . Report Size (8),
0x95, 0x02, # . Report Count (2),
0x81, 0x02, # . Input (Variable),
0x09, 0x41, # . Usage (41h),
0x65, 0x14, # . Unit (Degrees),
0x55, 0x00, # . Unit Exponent (0),
0x36, 0x4C, 0xFF, # . Physical Minimum (-180),
0x46, 0xB3, 0x00, # . Physical Maximum (179),
0x16, 0x7C, 0xFC, # . Logical Minimum (-900),
0x26, 0x83, 0x03, # . Logical Maximum (899),
0x75, 0x10, # . Report Size (16),
0x95, 0x01, # . Report Count (1),
0x81, 0x0A, # . Input (Variable, Wrap),
0x0A, 0x03, 0x0D, # . Usage (0D03h),
0x65, 0x00, # . Unit,
0x55, 0x00, # . Unit Exponent (0),
0x15, 0x00, # . Logical Minimum (0),
0x26, 0xFF, 0x07, # . Logical Maximum (2047), # !!! Errata: Missing Physical Min/Max = 0
0x75, 0x10, # . Report Size (16),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0x0A, 0x32, 0x01, # . Usage (0132h),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x3F, # . Logical Maximum (63),
0x75, 0x08, # . Report Size (8),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0x09, 0x5B, # . Usage (5Bh),
0x09, 0x5C, # . Usage (5Ch),
0x17, 0x00, 0x00, 0x00, 0x80, # . Logical Minimum (-2147483648),
0x27, 0xFF, 0xFF, 0xFF, 0x7F, # . Logical Maximum (2147483647),
0x75, 0x20, # . Report Size (32),
0x95, 0x02, # . Report Count (2),
0x81, 0x02, # . Input (Variable),
0x09, 0x77, # . Usage (77h),
0x15, 0x00, # . Logical Minimum (0),
0x26, 0xFF, 0x0F, # . Logical Maximum (4095),
0x75, 0x10, # . Report Size (16),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0xC0, # . End Collection,
0x85, 0x11, # . Report ID (17),
0x09, 0x39, # . Usage (39h),
0xA1, 0x00, # . Collection (Physical),
0x1A, 0x10, 0x09, # . Usage Minimum (0910h),
0x2A, 0x17, 0x09, # . Usage Maximum (0917h),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x01, # . Logical Maximum (1),
0x75, 0x01, # . Report Size (1),
0x95, 0x08, # . Report Count (8),
0x81, 0x02, # . Input (Variable),
0x1A, 0x40, 0x09, # . Usage Minimum (0940h),
0x2A, 0x47, 0x09, # . Usage Maximum (0947h),
0x81, 0x02, # . Input (Variable),
0x0A, 0x95, 0x09, # . Usage (0995h),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0x95, 0x07, # . Report Count (7),
0x81, 0x03, # . Input (Constant, Variable),
0x0A, 0x38, 0x01, # . Usage (0138h),
0x65, 0x14, # . Unit (Degrees),
0x55, 0x00, # . Unit Exponent (0),
0x35, 0x00, # . Physical Minimum (0),
0x46, 0x67, 0x01, # . Physical Maximum (359),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x47, # . Logical Maximum (71),
0x75, 0x07, # . Report Size (7),
0x95, 0x01, # . Report Count (1),
0x81, 0x0A, # . Input (Variable, Wrap),
0x0A, 0x39, 0x01, # . Usage (0139h),
0x65, 0x00, # . Unit,
0x55, 0x00, # . Unit Exponent (0),
0x25, 0x01, # . Logical Maximum (1), # !!! Errata: Missing Physical Max = 0
0x75, 0x01, # . Report Size (1),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0x75, 0x08, # . Report Size (8),
0x95, 0x04, # . Report Count (4),
0x81, 0x03, # . Input (Constant, Variable),
0xC0, # . End Collection,
0x85, 0x13, # . Report ID (19),
0x0A, 0x13, 0x10, # . Usage (1013h),
0xA1, 0x00, # . Collection (Physical),
0x0A, 0x3B, 0x04, # . Usage (043Bh),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x64, # . Logical Maximum (100),
0x75, 0x07, # . Report Size (7),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0x0A, 0x04, 0x04, # . Usage (0404h),
0x25, 0x01, # . Logical Maximum (1),
0x75, 0x01, # . Report Size (1),
0x81, 0x02, # . Input (Variable),
0x0A, 0x52, 0x04, # . Usage (0452h),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x01, # . Logical Maximum (1),
0x75, 0x01, # . Report Size (1),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0x95, 0x06, # . Report Count (6),
0x81, 0x03, # . Input (Constant, Variable),
0x0A, 0x54, 0x04, # . Usage (0454h),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0x75, 0x08, # . Report Size (8),
0x95, 0x06, # . Report Count (6),
0x81, 0x03, # . Input (Constant, Variable),
0xC0, # . End Collection,
0x09, 0x0E, # . Usage (0Eh),
0xA1, 0x02, # . Collection (Logical),
0x15, 0x00, # . Logical Minimum (0),
0x85, 0x02, # . Report ID (2),
0x09, 0x01, # . Usage (01h),
0x75, 0x08, # . Report Size (8),
0x25, 0x01, # . Logical Maximum (1),
0x95, 0x01, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x03, # . Report ID (3),
0x0A, 0x03, 0x10, # . Usage (1003h),
0x26, 0xFF, 0x00, # . Logical Maximum (255),
0x95, 0x01, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x04, # . Report ID (4),
0x0A, 0x04, 0x10, # . Usage (1004h),
0x25, 0x01, # . Logical Maximum (1),
0x95, 0x01, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x07, # . Report ID (7),
0x0A, 0x09, 0x10, # . Usage (1009h),
0x25, 0x02, # . Logical Maximum (2),
0x95, 0x01, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0x95, 0x01, # . Report Count (1),
0xB1, 0x03, # . Feature (Constant, Variable),
0x0A, 0x07, 0x10, # . Usage (1007h),
0x09, 0x00, # . Usage (00h),
0x0A, 0x08, 0x10, # . Usage (1008h),
0x09, 0x00, # . Usage (00h),
0x09, 0x00, # . Usage (00h),
0x09, 0x00, # . Usage (00h),
0x27, 0xFF, 0xFF, 0x00, 0x00, # . Logical Maximum (65535),
0x75, 0x10, # . Report Size (16),
0x95, 0x06, # . Report Count (6),
0xB1, 0x02, # . Feature (Variable),
0x75, 0x08, # . Report Size (8),
0x95, 0x01, # . Report Count (1),
0xB1, 0x03, # . Feature (Constant, Variable),
0x85, 0x0C, # . Report ID (12),
0x0A, 0x30, 0x0D, # . Usage (0D30h),
0x0A, 0x31, 0x0D, # . Usage (0D31h),
0x0A, 0x32, 0x0D, # . Usage (0D32h),
0x0A, 0x33, 0x0D, # . Usage (0D33h), # !!! Errata: Missing Non-zero Physical Max
0x65, 0x11, # . Unit (Centimeter),
0x55, 0x0D, # . Unit Exponent (13),
0x75, 0x10, # . Report Size (16),
0x95, 0x04, # . Report Count (4),
0xB1, 0x03, # . Feature (Constant, Variable),
0x85, 0x0D, # . Report ID (13),
0x65, 0x00, # . Unit,
0x55, 0x00, # . Unit Exponent (0),
0x0A, 0x0D, 0x10, # . Usage (100Dh),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x01, # . Logical Maximum (1),
0x75, 0x08, # . Report Size (8),
0x95, 0x01, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x14, # . Report ID (20),
0x0A, 0x14, 0x10, # . Usage (1014h),
0x26, 0xFF, 0x00, # . Logical Maximum (255),
0x95, 0x0D, # . Report Count (13),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x31, # . Report ID (49),
0x0A, 0x31, 0x10, # . Usage (1031h),
0x25, 0x64, # . Logical Maximum (100),
0x95, 0x05, # . Report Count (5),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x32, # . Report ID (50),
0x0A, 0x31, 0x10, # . Usage (1031h),
0x25, 0x64, # . Logical Maximum (100),
0x95, 0x01, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0x0A, 0x32, 0x10, # . Usage (1032h),
0x25, 0x03, # . Logical Maximum (3),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x34, # . Report ID (52),
0x0A, 0x34, 0x10, # . Usage (1034h),
0x25, 0x01, # . Logical Maximum (1),
0x95, 0x04, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x35, # . Report ID (53),
0x0A, 0x35, 0x10, # . Usage (1035h),
0x26, 0xFF, 0x00, # . Logical Maximum (255),
0x95, 0x0A, # . Report Count (10),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x36, # . Report ID (54),
0x0A, 0x35, 0x10, # . Usage (1035h),
0x26, 0xFF, 0x00, # . Logical Maximum (255),
0x96, 0x01, 0x01, # . Report Count (257),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xCC, # . Report ID (204),
0x0A, 0xCC, 0x10, # . Usage (10CCh),
0x26, 0xFF, 0x00, # . Logical Maximum (255),
0x95, 0x02, # . Report Count (2),
0xB1, 0x02, # . Feature (Variable),
0xC0, # . End Collection,
0x0A, 0xAC, 0x10, # . Usage (10ACh),
0xA1, 0x02, # . Collection (Logical),
0x15, 0x00, # . Logical Minimum (0),
0x26, 0xFF, 0x00, # . Logical Maximum (255),
0x75, 0x08, # . Report Size (8),
0x85, 0xAC, # . Report ID (172),
0x09, 0x00, # . Usage (00h),
0x95, 0xBF, # . Report Count (191),
0x81, 0x02, # . Input (Variable),
0x85, 0x33, # . Report ID (51),
0x09, 0x00, # . Usage (00h),
0x95, 0x12, # . Report Count (18),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x64, # . Report ID (100),
0x09, 0x00, # . Usage (00h),
0x95, 0x0C, # . Report Count (12),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x15, # . Report ID (21),
0x09, 0x00, # . Usage (00h),
0x95, 0x0E, # . Report Count (14),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x12, # . Report ID (18),
0x09, 0x00, # . Usage (00h),
0x95, 0x04, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x16, # . Report ID (22),
0x09, 0x00, # . Usage (00h),
0x95, 0x0E, # . Report Count (14),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x40, # . Report ID (64),
0x09, 0x00, # . Usage (00h),
0x95, 0x01, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x41, # . Report ID (65),
0x09, 0x00, # . Usage (00h),
0x95, 0x01, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x42, # . Report ID (66),
0x09, 0x00, # . Usage (00h),
0x95, 0x04, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x43, # . Report ID (67),
0x09, 0x00, # . Usage (00h),
0x95, 0x0D, # . Report Count (13),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x44, # . Report ID (68),
0x09, 0x00, # . Usage (00h),
0x95, 0x3F, # . Report Count (63),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x45, # . Report ID (69),
0x09, 0x00, # . Usage (00h),
0x95, 0x20, # . Report Count (32),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x60, # . Report ID (96),
0x09, 0x00, # . Usage (00h),
0x95, 0x3F, # . Report Count (63),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x61, # . Report ID (97),
0x09, 0x00, # . Usage (00h),
0x95, 0x3E, # . Report Count (62),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x62, # . Report ID (98),
0x09, 0x00, # . Usage (00h),
0x95, 0x3E, # . Report Count (62),
0xB1, 0x02, # . Feature (Variable),
0xC0, # . End Collection,
0x85, 0xD0, # . Report ID (208),
0x09, 0x01, # . Usage (01h),
0x96, 0x08, 0x00, # . Report Count (8),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD1, # . Report ID (209),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x01, # . Report Count (260),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD2, # . Report ID (210),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x01, # . Report Count (260),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD3, # . Report ID (211),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x00, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD4, # . Report ID (212),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x00, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD5, # . Report ID (213),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x00, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD6, # . Report ID (214),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x00, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD7, # . Report ID (215),
0x09, 0x01, # . Usage (01h),
0x96, 0x08, 0x00, # . Report Count (8),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD8, # . Report ID (216),
0x09, 0x01, # . Usage (01h),
0x96, 0x0C, 0x00, # . Report Count (12),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD9, # . Report ID (217),
0x09, 0x01, # . Usage (01h),
0x96, 0x00, 0x0A, # . Report Count (2560),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xDA, # . Report ID (218),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x04, # . Report Count (1028),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xDB, # . Report ID (219),
0x09, 0x01, # . Usage (01h),
0x96, 0x06, 0x00, # . Report Count (6),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xDC, # . Report ID (220),
0x09, 0x01, # . Usage (01h),
0x96, 0x02, 0x00, # . Report Count (2),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xDD, # . Report ID (221),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x00, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xDE, # . Report ID (222),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x00, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xDF, # . Report ID (223),
0x09, 0x01, # . Usage (01h),
0x96, 0x22, 0x00, # . Report Count (34),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xE0, # . Report ID (224),
0x09, 0x01, # . Usage (01h),
0x96, 0x01, 0x00, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xE1, # . Report ID (225),
0x09, 0x01, # . Usage (01h),
0x96, 0x02, 0x00, # . Report Count (2),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xE2, # . Report ID (226),
0x09, 0x01, # . Usage (01h),
0x96, 0x02, 0x00, # . Report Count (2),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xE3, # . Report ID (227),
0x09, 0x01, # . Usage (01h),
0x96, 0x02, 0x00, # . Report Count (2),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xE4, # . Report ID (228),
0x09, 0x01, # . Usage (01h),
0x96, 0xFF, 0x01, # . Report Count (511),
0xB1, 0x02, # . Feature (Variable),
0xC0 # . End Collection
]
# fmt: on
# Report ID (20), Usage (1014h), Report Count (13) -> 15
wacom_pth660_v150 = wacom_pth660_v145.copy()
wacom_pth660_v150[0x2CB] = 0x0F
# fmt: off
wacom_pth860_v145 = [
0x05, 0x01, # . Usage Page (Desktop),
0x09, 0x02, # . Usage (Mouse),
0xA1, 0x01, # . Collection (Application),
0x85, 0x01, # . Report ID (1),
0x09, 0x01, # . Usage (Pointer),
0xA1, 0x00, # . Collection (Physical),
0x05, 0x09, # . Usage Page (Button),
0x19, 0x01, # . Usage Minimum (01h),
0x29, 0x03, # . Usage Maximum (03h),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x01, # . Logical Maximum (1),
0x75, 0x01, # . Report Size (1),
0x95, 0x03, # . Report Count (3),
0x81, 0x02, # . Input (Variable),
0x95, 0x05, # . Report Count (5),
0x81, 0x03, # . Input (Constant, Variable),
0x05, 0x01, # . Usage Page (Desktop),
0x09, 0x30, # . Usage (X),
0x09, 0x31, # . Usage (Y),
0x15, 0x80, # . Logical Minimum (-128),
0x25, 0x7F, # . Logical Maximum (127),
0x75, 0x08, # . Report Size (8),
0x95, 0x02, # . Report Count (2),
0x81, 0x06, # . Input (Variable, Relative),
0xC0, # . End Collection,
0xC0, # . End Collection,
0x06, 0x0D, 0xFF, # . Usage Page (FF0Dh),
0x09, 0x01, # . Usage (01h),
0xA1, 0x01, # . Collection (Application),
0x85, 0x10, # . Report ID (16),
0x09, 0x20, # . Usage (20h),
0xA1, 0x00, # . Collection (Physical),
0x09, 0x42, # . Usage (42h),
0x09, 0x44, # . Usage (44h),
0x09, 0x5A, # . Usage (5Ah),
0x09, 0x45, # . Usage (45h),
0x09, 0x3C, # . Usage (3Ch),
0x09, 0x32, # . Usage (32h),
0x09, 0x36, # . Usage (36h),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x01, # . Logical Maximum (1),
0x75, 0x01, # . Report Size (1),
0x95, 0x07, # . Report Count (7),
0x81, 0x02, # . Input (Variable),
0x95, 0x01, # . Report Count (1),
0x81, 0x03, # . Input (Constant, Variable),
0x0A, 0x30, 0x01, # . Usage (0130h),
0x65, 0x11, # . Unit (Centimeter),
0x55, 0x0D, # . Unit Exponent (13),
0x35, 0x00, # . Physical Minimum (0),
0x47, 0x7C, 0x79, 0x00, 0x00, # . Physical Maximum (31100),
0x15, 0x00, # . Logical Minimum (0),
0x27, 0xF8, 0xF2, 0x00, 0x00, # . Logical Maximum (62200),
0x75, 0x18, # . Report Size (24),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0x0A, 0x31, 0x01, # . Usage (0131h),
0x47, 0x60, 0x54, 0x00, 0x00, # . Physical Maximum (21600),
0x27, 0xC0, 0xA8, 0x00, 0x00, # . Logical Maximum (43200),
0x81, 0x02, # . Input (Variable),
0x09, 0x30, # . Usage (30h), # !!! Errata: Missing Physical Max = 0
0x55, 0x00, # . Unit Exponent (0),
0x65, 0x00, # . Unit,
0x15, 0x00, # . Logical Minimum (0),
0x26, 0xFF, 0x1F, # . Logical Maximum (8191),
0x75, 0x10, # . Report Size (16),
0x81, 0x02, # . Input (Variable),
0x09, 0x3D, # . Usage (3Dh),
0x09, 0x3E, # . Usage (3Eh),
0x65, 0x14, # . Unit (Degrees),
0x55, 0x00, # . Unit Exponent (0),
0x35, 0xC0, # . Physical Minimum (-64),
0x45, 0x3F, # . Physical Maximum (63),
0x15, 0xC0, # . Logical Minimum (-64),
0x25, 0x3F, # . Logical Maximum (63),
0x75, 0x08, # . Report Size (8),
0x95, 0x02, # . Report Count (2),
0x81, 0x02, # . Input (Variable),
0x09, 0x41, # . Usage (41h),
0x65, 0x14, # . Unit (Degrees),
0x55, 0x00, # . Unit Exponent (0),
0x36, 0x4C, 0xFF, # . Physical Minimum (-180),
0x46, 0xB3, 0x00, # . Physical Maximum (179),
0x16, 0x7C, 0xFC, # . Logical Minimum (-900),
0x26, 0x83, 0x03, # . Logical Maximum (899),
0x75, 0x10, # . Report Size (16),
0x95, 0x01, # . Report Count (1),
0x81, 0x0A, # . Input (Variable, Wrap),
0x0A, 0x03, 0x0D, # . Usage (0D03h),
0x65, 0x00, # . Unit,
0x55, 0x00, # . Unit Exponent (0),
0x15, 0x00, # . Logical Minimum (0),
0x26, 0xFF, 0x07, # . Logical Maximum (2047), # !!! Errata: Missing Physical Min/Max = 0
0x75, 0x10, # . Report Size (16),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0x0A, 0x32, 0x01, # . Usage (0132h),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x3F, # . Logical Maximum (63),
0x75, 0x08, # . Report Size (8),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0x09, 0x5B, # . Usage (5Bh),
0x09, 0x5C, # . Usage (5Ch),
0x17, 0x00, 0x00, 0x00, 0x80, # . Logical Minimum (-2147483648),
0x27, 0xFF, 0xFF, 0xFF, 0x7F, # . Logical Maximum (2147483647),
0x75, 0x20, # . Report Size (32),
0x95, 0x02, # . Report Count (2),
0x81, 0x02, # . Input (Variable),
0x09, 0x77, # . Usage (77h),
0x16, 0x00, 0x00, # . Logical Minimum (0),
0x26, 0xFF, 0x0F, # . Logical Maximum (4095),
0x75, 0x10, # . Report Size (16),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0xC0, # . End Collection,
0x85, 0x11, # . Report ID (17),
0x09, 0x39, # . Usage (39h),
0xA1, 0x00, # . Collection (Physical),
0x1A, 0x10, 0x09, # . Usage Minimum (0910h),
0x2A, 0x17, 0x09, # . Usage Maximum (0917h),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x01, # . Logical Maximum (1),
0x75, 0x01, # . Report Size (1),
0x95, 0x08, # . Report Count (8),
0x81, 0x02, # . Input (Variable),
0x1A, 0x40, 0x09, # . Usage Minimum (0940h),
0x2A, 0x47, 0x09, # . Usage Maximum (0947h),
0x81, 0x02, # . Input (Variable),
0x0A, 0x95, 0x09, # . Usage (0995h),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0x95, 0x07, # . Report Count (7),
0x81, 0x03, # . Input (Constant, Variable),
0x0A, 0x38, 0x01, # . Usage (0138h),
0x65, 0x14, # . Unit (Degrees),
0x55, 0x00, # . Unit Exponent (0),
0x35, 0x00, # . Physical Minimum (0),
0x46, 0x67, 0x01, # . Physical Maximum (359),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x47, # . Logical Maximum (71),
0x75, 0x07, # . Report Size (7),
0x95, 0x01, # . Report Count (1),
0x81, 0x0A, # . Input (Variable, Wrap),
0x0A, 0x39, 0x01, # . Usage (0139h),
0x65, 0x00, # . Unit,
0x55, 0x00, # . Unit Exponent (0),
0x25, 0x01, # . Logical Maximum (1), # !!! Errata: Missing Physical Max = 0
0x75, 0x01, # . Report Size (1),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0x75, 0x08, # . Report Size (8),
0x95, 0x04, # . Report Count (4),
0x81, 0x03, # . Input (Constant, Variable),
0xC0, # . End Collection,
0x85, 0x13, # . Report ID (19),
0x0A, 0x13, 0x10, # . Usage (1013h),
0xA1, 0x00, # . Collection (Physical),
0x0A, 0x3B, 0x04, # . Usage (043Bh),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x64, # . Logical Maximum (100),
0x75, 0x07, # . Report Size (7),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0x0A, 0x04, 0x04, # . Usage (0404h),
0x25, 0x01, # . Logical Maximum (1),
0x75, 0x01, # . Report Size (1),
0x81, 0x02, # . Input (Variable),
0x0A, 0x52, 0x04, # . Usage (0452h),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x01, # . Logical Maximum (1),
0x75, 0x01, # . Report Size (1),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0x95, 0x06, # . Report Count (6),
0x81, 0x03, # . Input (Constant, Variable),
0x0A, 0x54, 0x04, # . Usage (0454h),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0x75, 0x08, # . Report Size (8),
0x95, 0x06, # . Report Count (6),
0x81, 0x03, # . Input (Constant, Variable),
0xC0, # . End Collection,
0x09, 0x0E, # . Usage (0Eh),
0xA1, 0x02, # . Collection (Logical),
0x15, 0x00, # . Logical Minimum (0),
0x85, 0x02, # . Report ID (2),
0x09, 0x01, # . Usage (01h),
0x75, 0x08, # . Report Size (8),
0x25, 0x01, # . Logical Maximum (1),
0x95, 0x01, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x03, # . Report ID (3),
0x0A, 0x03, 0x10, # . Usage (1003h),
0x26, 0xFF, 0x00, # . Logical Maximum (255),
0x95, 0x01, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x04, # . Report ID (4),
0x0A, 0x04, 0x10, # . Usage (1004h),
0x25, 0x01, # . Logical Maximum (1),
0x95, 0x01, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x07, # . Report ID (7),
0x0A, 0x09, 0x10, # . Usage (1009h),
0x25, 0x02, # . Logical Maximum (2),
0x95, 0x01, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0x95, 0x01, # . Report Count (1),
0xB1, 0x03, # . Feature (Constant, Variable),
0x0A, 0x07, 0x10, # . Usage (1007h),
0x09, 0x00, # . Usage (00h),
0x0A, 0x08, 0x10, # . Usage (1008h),
0x09, 0x00, # . Usage (00h),
0x09, 0x00, # . Usage (00h),
0x09, 0x00, # . Usage (00h),
0x27, 0xFF, 0xFF, 0x00, 0x00, # . Logical Maximum (65535),
0x75, 0x10, # . Report Size (16),
0x95, 0x06, # . Report Count (6),
0xB1, 0x02, # . Feature (Variable),
0x75, 0x08, # . Report Size (8),
0x95, 0x01, # . Report Count (1),
0xB1, 0x03, # . Feature (Constant, Variable),
0x85, 0x0C, # . Report ID (12),
0x0A, 0x30, 0x0D, # . Usage (0D30h),
0x0A, 0x31, 0x0D, # . Usage (0D31h),
0x0A, 0x32, 0x0D, # . Usage (0D32h),
0x0A, 0x33, 0x0D, # . Usage (0D33h), # !!! Errata: Missing Non-zero Physical Max
0x65, 0x11, # . Unit (Centimeter),
0x55, 0x0D, # . Unit Exponent (13),
0x75, 0x10, # . Report Size (16),
0x95, 0x04, # . Report Count (4),
0xB1, 0x03, # . Feature (Constant, Variable),
0x85, 0x0D, # . Report ID (13),
0x65, 0x00, # . Unit,
0x55, 0x00, # . Unit Exponent (0),
0x0A, 0x0D, 0x10, # . Usage (100Dh),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x01, # . Logical Maximum (1),
0x75, 0x08, # . Report Size (8),
0x95, 0x01, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x14, # . Report ID (20),
0x0A, 0x14, 0x10, # . Usage (1014h),
0x26, 0xFF, 0x00, # . Logical Maximum (255),
0x95, 0x0D, # . Report Count (13),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x31, # . Report ID (49),
0x0A, 0x31, 0x10, # . Usage (1031h),
0x25, 0x64, # . Logical Maximum (100),
0x95, 0x05, # . Report Count (5),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x32, # . Report ID (50),
0x0A, 0x31, 0x10, # . Usage (1031h),
0x25, 0x64, # . Logical Maximum (100),
0x95, 0x01, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0x0A, 0x32, 0x10, # . Usage (1032h),
0x25, 0x03, # . Logical Maximum (3),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x34, # . Report ID (52),
0x0A, 0x34, 0x10, # . Usage (1034h),
0x25, 0x01, # . Logical Maximum (1),
0x95, 0x04, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x35, # . Report ID (53),
0x0A, 0x35, 0x10, # . Usage (1035h),
0x26, 0xFF, 0x00, # . Logical Maximum (255),
0x95, 0x0A, # . Report Count (10),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x36, # . Report ID (54),
0x0A, 0x35, 0x10, # . Usage (1035h),
0x26, 0xFF, 0x00, # . Logical Maximum (255),
0x96, 0x01, 0x01, # . Report Count (257),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xCC, # . Report ID (204),
0x0A, 0xCC, 0x10, # . Usage (10CCh),
0x26, 0xFF, 0x00, # . Logical Maximum (255),
0x95, 0x02, # . Report Count (2),
0xB1, 0x02, # . Feature (Variable),
0xC0, # . End Collection,
0x0A, 0xAC, 0x10, # . Usage (10ACh),
0xA1, 0x02, # . Collection (Logical),
0x15, 0x00, # . Logical Minimum (0),
0x26, 0xFF, 0x00, # . Logical Maximum (255),
0x75, 0x08, # . Report Size (8),
0x85, 0xAC, # . Report ID (172),
0x09, 0x00, # . Usage (00h),
0x95, 0xBF, # . Report Count (191),
0x81, 0x02, # . Input (Variable),
0x85, 0x33, # . Report ID (51),
0x09, 0x00, # . Usage (00h),
0x95, 0x12, # . Report Count (18),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x64, # . Report ID (100),
0x09, 0x00, # . Usage (00h),
0x95, 0x0C, # . Report Count (12),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x15, # . Report ID (21),
0x09, 0x00, # . Usage (00h),
0x95, 0x0E, # . Report Count (14),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x12, # . Report ID (18),
0x09, 0x00, # . Usage (00h),
0x95, 0x04, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x16, # . Report ID (22),
0x09, 0x00, # . Usage (00h),
0x95, 0x0E, # . Report Count (14),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x40, # . Report ID (64),
0x09, 0x00, # . Usage (00h),
0x95, 0x01, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x41, # . Report ID (65),
0x09, 0x00, # . Usage (00h),
0x95, 0x01, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x42, # . Report ID (66),
0x09, 0x00, # . Usage (00h),
0x95, 0x04, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x43, # . Report ID (67),
0x09, 0x00, # . Usage (00h),
0x95, 0x0D, # . Report Count (13),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x44, # . Report ID (68),
0x09, 0x00, # . Usage (00h),
0x95, 0x3F, # . Report Count (63),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x45, # . Report ID (69),
0x09, 0x00, # . Usage (00h),
0x95, 0x20, # . Report Count (32),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x60, # . Report ID (96),
0x09, 0x00, # . Usage (00h),
0x95, 0x3F, # . Report Count (63),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x61, # . Report ID (97),
0x09, 0x00, # . Usage (00h),
0x95, 0x3E, # . Report Count (62),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x62, # . Report ID (98),
0x09, 0x00, # . Usage (00h),
0x95, 0x3E, # . Report Count (62),
0xB1, 0x02, # . Feature (Variable),
0xC0, # . End Collection,
0x85, 0xD0, # . Report ID (208),
0x09, 0x01, # . Usage (01h),
0x96, 0x08, 0x00, # . Report Count (8),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD1, # . Report ID (209),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x01, # . Report Count (260),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD2, # . Report ID (210),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x01, # . Report Count (260),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD3, # . Report ID (211),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x00, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD4, # . Report ID (212),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x00, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD5, # . Report ID (213),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x00, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD6, # . Report ID (214),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x00, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD7, # . Report ID (215),
0x09, 0x01, # . Usage (01h),
0x96, 0x08, 0x00, # . Report Count (8),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD8, # . Report ID (216),
0x09, 0x01, # . Usage (01h),
0x96, 0x0C, 0x00, # . Report Count (12),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD9, # . Report ID (217),
0x09, 0x01, # . Usage (01h),
0x96, 0x00, 0x0A, # . Report Count (2560),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xDA, # . Report ID (218),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x04, # . Report Count (1028),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xDB, # . Report ID (219),
0x09, 0x01, # . Usage (01h),
0x96, 0x06, 0x00, # . Report Count (6),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xDC, # . Report ID (220),
0x09, 0x01, # . Usage (01h),
0x96, 0x02, 0x00, # . Report Count (2),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xDD, # . Report ID (221),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x00, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xDE, # . Report ID (222),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x00, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xDF, # . Report ID (223),
0x09, 0x01, # . Usage (01h),
0x96, 0x22, 0x00, # . Report Count (34),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xE0, # . Report ID (224),
0x09, 0x01, # . Usage (01h),
0x96, 0x01, 0x00, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xE1, # . Report ID (225),
0x09, 0x01, # . Usage (01h),
0x96, 0x02, 0x00, # . Report Count (2),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xE2, # . Report ID (226),
0x09, 0x01, # . Usage (01h),
0x96, 0x02, 0x00, # . Report Count (2),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xE3, # . Report ID (227),
0x09, 0x01, # . Usage (01h),
0x96, 0x02, 0x00, # . Report Count (2),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xE4, # . Report ID (228),
0x09, 0x01, # . Usage (01h),
0x96, 0xFF, 0x01, # . Report Count (511),
0xB1, 0x02, # . Feature (Variable),
0xC0 # . End Collection
]
# fmt: on
# Report ID (20), Usage (1014h), Report Count (13) -> 15
wacom_pth860_v150 = wacom_pth860_v145.copy()
wacom_pth860_v150[0x2CA] = 0x0F
# fmt: off
wacom_pth460_v105 = [
0x06, 0x0D, 0xFF, # . Usage Page (FF0Dh),
0x09, 0x01, # . Usage (01h),
0xA1, 0x01, # . Collection (Application),
0x85, 0x10, # . Report ID (16),
0x09, 0x20, # . Usage (20h),
0x35, 0x00, # . Physical Minimum (0),
0x45, 0x00, # . Physical Maximum (0),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x01, # . Logical Maximum (1),
0xA1, 0x00, # . Collection (Physical),
0x09, 0x42, # . Usage (42h),
0x09, 0x44, # . Usage (44h),
0x09, 0x5A, # . Usage (5Ah),
0x09, 0x45, # . Usage (45h),
0x09, 0x3C, # . Usage (3Ch),
0x09, 0x32, # . Usage (32h),
0x09, 0x36, # . Usage (36h),
0x25, 0x01, # . Logical Maximum (1),
0x75, 0x01, # . Report Size (1),
0x95, 0x07, # . Report Count (7),
0x81, 0x02, # . Input (Variable),
0x95, 0x01, # . Report Count (1),
0x81, 0x03, # . Input (Constant, Variable),
0x0A, 0x30, 0x01, # . Usage (0130h),
0x65, 0x11, # . Unit (Centimeter),
0x55, 0x0D, # . Unit Exponent (13),
0x47, 0x58, 0x3E, 0x00, 0x00, # . Physical Maximum (15960),
0x27, 0xB0, 0x7C, 0x00, 0x00, # . Logical Maximum (31920),
0x75, 0x18, # . Report Size (24),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0x0A, 0x31, 0x01, # . Usage (0131h),
0x47, 0xF7, 0x26, 0x00, 0x00, # . Physical Maximum (9975),
0x27, 0xEE, 0x4D, 0x00, 0x00, # . Logical Maximum (19950),
0x81, 0x02, # . Input (Variable),
0x09, 0x30, # . Usage (30h),
0x55, 0x00, # . Unit Exponent (0),
0x65, 0x00, # . Unit,
0x26, 0xFF, 0x1F, # . Logical Maximum (8191), # !!! Errata: Missing Physical Max = 0
0x75, 0x10, # . Report Size (16),
0x81, 0x02, # . Input (Variable),
0x09, 0x3D, # . Usage (3Dh),
0x09, 0x3E, # . Usage (3Eh),
0x65, 0x14, # . Unit (Degrees),
0x55, 0x00, # . Unit Exponent (0),
0x35, 0xC0, # . Physical Minimum (-64),
0x45, 0x3F, # . Physical Maximum (63),
0x15, 0xC0, # . Logical Minimum (-64),
0x25, 0x3F, # . Logical Maximum (63),
0x75, 0x08, # . Report Size (8),
0x95, 0x02, # . Report Count (2),
0x81, 0x02, # . Input (Variable),
0x09, 0x41, # . Usage (41h),
0x65, 0x14, # . Unit (Degrees),
0x55, 0x00, # . Unit Exponent (0),
0x36, 0x4C, 0xFF, # . Physical Minimum (-180),
0x46, 0xB3, 0x00, # . Physical Maximum (179),
0x16, 0x7C, 0xFC, # . Logical Minimum (-900),
0x26, 0x83, 0x03, # . Logical Maximum (899),
0x75, 0x10, # . Report Size (16),
0x95, 0x01, # . Report Count (1),
0x81, 0x0A, # . Input (Variable, Wrap),
0x0A, 0x03, 0x0D, # . Usage (0D03h),
0x65, 0x00, # . Unit,
0x55, 0x00, # . Unit Exponent (0),
0x35, 0x00, # . Physical Minimum (0),
0x45, 0x00, # . Physical Maximum (0),
0x15, 0x00, # . Logical Minimum (0),
0x26, 0xFF, 0x07, # . Logical Maximum (2047),
0x81, 0x02, # . Input (Variable),
0x0A, 0x32, 0x01, # . Usage (0132h),
0x25, 0x3F, # . Logical Maximum (63),
0x75, 0x08, # . Report Size (8),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0x09, 0x5B, # . Usage (5Bh),
0x09, 0x5C, # . Usage (5Ch),
0x17, 0x00, 0x00, 0x00, 0x80, # . Logical Minimum (-2147483648),
0x27, 0xFF, 0xFF, 0xFF, 0x7F, # . Logical Maximum (2147483647),
0x75, 0x20, # . Report Size (32),
0x95, 0x02, # . Report Count (2),
0x81, 0x02, # . Input (Variable),
0x09, 0x77, # . Usage (77h),
0x15, 0x00, # . Logical Minimum (0),
0x26, 0xFF, 0x0F, # . Logical Maximum (4095),
0x75, 0x10, # . Report Size (16),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0xC0, # . End Collection,
0x85, 0x11, # . Report ID (17),
0x65, 0x00, # . Unit,
0x55, 0x00, # . Unit Exponent (0),
0x35, 0x00, # . Physical Minimum (0),
0x45, 0x00, # . Physical Maximum (0),
0x09, 0x39, # . Usage (39h),
0xA1, 0x00, # . Collection (Physical),
0x09, 0x39, # . Usage (39h),
0xA1, 0x00, # . Collection (Physical),
0x35, 0x00, # . Physical Minimum (0),
0x45, 0x00, # . Physical Maximum (0),
0x15, 0x00, # . Logical Minimum (0),
0x1A, 0x10, 0x09, # . Usage Minimum (0910h),
0x2A, 0x15, 0x09, # . Usage Maximum (0915h),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x01, # . Logical Maximum (1),
0x75, 0x01, # . Report Size (1),
0x95, 0x06, # . Report Count (6),
0x81, 0x02, # . Input (Variable),
0x95, 0x02, # . Report Count (2),
0x81, 0x03, # . Input (Constant, Variable),
0xC0, # . End Collection,
0x75, 0x08, # . Report Size (8),
0x95, 0x01, # . Report Count (1),
0x81, 0x03, # . Input (Constant, Variable),
0x09, 0x39, # . Usage (39h),
0xA1, 0x00, # . Collection (Physical),
0x35, 0x00, # . Physical Minimum (0),
0x45, 0x00, # . Physical Maximum (0),
0x0A, 0x95, 0x09, # . Usage (0995h),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x01, # . Logical Maximum (1),
0x75, 0x01, # . Report Size (1),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0x95, 0x07, # . Report Count (7),
0x81, 0x03, # . Input (Constant, Variable),
0xC0, # . End Collection,
0x09, 0x39, # . Usage (39h),
0xA1, 0x00, # . Collection (Physical),
0x35, 0x00, # . Physical Minimum (0),
0x15, 0x00, # . Logical Minimum (0),
0x0A, 0x38, 0x01, # . Usage (0138h),
0x65, 0x14, # . Unit (Degrees),
0x55, 0x00, # . Unit Exponent (0),
0x35, 0x00, # . Physical Minimum (0),
0x46, 0x67, 0x01, # . Physical Maximum (359),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x47, # . Logical Maximum (71),
0x75, 0x07, # . Report Size (7),
0x95, 0x01, # . Report Count (1),
0x81, 0x4A, # . Input (Variable, Wrap, Null State),
0x0A, 0x39, 0x01, # . Usage (0139h),
0x65, 0x00, # . Unit,
0x55, 0x00, # . Unit Exponent (0),
0x45, 0x00, # . Physical Maximum (0),
0x25, 0x01, # . Logical Maximum (1),
0x75, 0x01, # . Report Size (1),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0xC0, # . End Collection,
0x75, 0x08, # . Report Size (8),
0x95, 0x04, # . Report Count (4),
0x81, 0x03, # . Input (Constant, Variable),
0xC0, # . End Collection,
0x85, 0x13, # . Report ID (19),
0x65, 0x00, # . Unit,
0x55, 0x00, # . Unit Exponent (0),
0x35, 0x00, # . Physical Minimum (0),
0x45, 0x00, # . Physical Maximum (0),
0x0A, 0x13, 0x10, # . Usage (1013h),
0xA1, 0x00, # . Collection (Physical),
0x0A, 0x13, 0x10, # . Usage (1013h),
0xA1, 0x00, # . Collection (Physical),
0x35, 0x00, # . Physical Minimum (0),
0x45, 0x00, # . Physical Maximum (0),
0x15, 0x00, # . Logical Minimum (0),
0x0A, 0x3B, 0x04, # . Usage (043Bh),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x64, # . Logical Maximum (100),
0x75, 0x07, # . Report Size (7),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0x0A, 0x04, 0x04, # . Usage (0404h),
0x25, 0x01, # . Logical Maximum (1),
0x75, 0x01, # . Report Size (1),
0x81, 0x02, # . Input (Variable),
0xC0, # . End Collection,
0x0A, 0x13, 0x10, # . Usage (1013h),
0xA1, 0x00, # . Collection (Physical),
0x35, 0x00, # . Physical Minimum (0),
0x45, 0x00, # . Physical Maximum (0),
0x0A, 0x52, 0x04, # . Usage (0452h),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x01, # . Logical Maximum (1),
0x75, 0x01, # . Report Size (1),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0x0A, 0x41, 0x04, # . Usage (0441h),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x07, # . Logical Maximum (7),
0x75, 0x03, # . Report Size (3),
0x95, 0x02, # . Report Count (2),
0x81, 0x02, # . Input (Variable),
0x0A, 0x54, 0x04, # . Usage (0454h),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x01, # . Logical Maximum (1),
0x75, 0x01, # . Report Size (1),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0xC0, # . End Collection,
0x0A, 0x13, 0x10, # . Usage (1013h),
0xA1, 0x00, # . Collection (Physical),
0x35, 0x00, # . Physical Minimum (0),
0x45, 0x00, # . Physical Maximum (0),
0x15, 0x00, # . Logical Minimum (0),
0x0A, 0x3C, 0x04, # . Usage (043Ch),
0x55, 0x00, # . Unit Exponent (0),
0x65, 0x00, # . Unit,
0x15, 0xFB, # . Logical Minimum (-5),
0x25, 0x32, # . Logical Maximum (50),
0x75, 0x08, # . Report Size (8),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0xC0, # . End Collection,
0x0A, 0x13, 0x10, # . Usage (1013h),
0xA1, 0x00, # . Collection (Physical),
0x35, 0x00, # . Physical Minimum (0),
0x45, 0x00, # . Physical Maximum (0),
0x15, 0x00, # . Logical Minimum (0),
0x0A, 0x3D, 0x04, # . Usage (043Dh),
0x55, 0x00, # . Unit Exponent (0),
0x65, 0x00, # . Unit,
0x15, 0x00, # . Logical Minimum (0),
0x26, 0xFF, 0x0F, # . Logical Maximum (4095),
0x75, 0x10, # . Report Size (16),
0x95, 0x01, # . Report Count (1),
0x81, 0x02, # . Input (Variable),
0xC0, # . End Collection,
0x75, 0x08, # . Report Size (8),
0x95, 0x03, # . Report Count (3),
0x81, 0x03, # . Input (Constant, Variable),
0xC0, # . End Collection,
0x09, 0x0E, # . Usage (0Eh),
0xA1, 0x02, # . Collection (Logical),
0x85, 0x02, # . Report ID (2),
0x0A, 0x02, 0x10, # . Usage (1002h),
0x15, 0x02, # . Logical Minimum (2),
0x25, 0x02, # . Logical Maximum (2),
0x75, 0x08, # . Report Size (8),
0x95, 0x01, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x03, # . Report ID (3),
0x0A, 0x03, 0x10, # . Usage (1003h),
0x15, 0x00, # . Logical Minimum (0),
0x26, 0xFF, 0x00, # . Logical Maximum (255),
0x95, 0x01, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x04, # . Report ID (4),
0x0A, 0x04, 0x10, # . Usage (1004h),
0x15, 0x00, # . Logical Minimum (0),
0x25, 0x01, # . Logical Maximum (1),
0x95, 0x01, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x07, # . Report ID (7),
0x0A, 0x09, 0x10, # . Usage (1009h),
0x15, 0x00, # . Logical Minimum (0),
0x26, 0xFF, 0x00, # . Logical Maximum (255),
0x95, 0x01, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0xB1, 0x03, # . Feature (Constant, Variable),
0x0A, 0x07, 0x10, # . Usage (1007h),
0x09, 0x00, # . Usage (00h),
0x0A, 0x08, 0x10, # . Usage (1008h),
0x09, 0x00, # . Usage (00h),
0x09, 0x00, # . Usage (00h),
0x09, 0x00, # . Usage (00h),
0x27, 0xFF, 0xFF, 0x00, 0x00, # . Logical Maximum (65535),
0x75, 0x10, # . Report Size (16),
0x95, 0x06, # . Report Count (6),
0xB1, 0x02, # . Feature (Variable),
0x09, 0x00, # . Usage (00h),
0x25, 0x00, # . Logical Maximum (0),
0x75, 0x08, # . Report Size (8),
0x95, 0x01, # . Report Count (1),
0xB1, 0x03, # . Feature (Constant, Variable),
0x85, 0x0C, # . Report ID (12),
0x0A, 0x30, 0x0D, # . Usage (0D30h),
0x0A, 0x31, 0x0D, # . Usage (0D31h),
0x0A, 0x32, 0x0D, # . Usage (0D32h),
0x0A, 0x33, 0x0D, # . Usage (0D33h),
0x65, 0x11, # . Unit (Centimeter),
0x55, 0x0D, # . Unit Exponent (13),
0x35, 0x00, # . Physical Minimum (0),
0x46, 0xC8, 0x00, # . Physical Maximum (200),
0x15, 0x00, # . Logical Minimum (0),
0x26, 0x90, 0x01, # . Logical Maximum (400),
0x75, 0x10, # . Report Size (16),
0x95, 0x04, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x0D, # . Report ID (13),
0x0A, 0x0D, 0x10, # . Usage (100Dh),
0x65, 0x00, # . Unit,
0x55, 0x00, # . Unit Exponent (0),
0x45, 0x00, # . Physical Maximum (0),
0x25, 0x01, # . Logical Maximum (1),
0x75, 0x08, # . Report Size (8),
0x95, 0x01, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x14, # . Report ID (20),
0x0A, 0x14, 0x10, # . Usage (1014h),
0x26, 0xFF, 0x00, # . Logical Maximum (255),
0x95, 0x0D, # . Report Count (13),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xCC, # . Report ID (204),
0x0A, 0xCC, 0x10, # . Usage (10CCh),
0x95, 0x02, # . Report Count (2),
0xB1, 0x02, # . Feature (Variable),
0xC0, # . End Collection,
0x09, 0x0E, # . Usage (0Eh),
0xA1, 0x02, # . Collection (Logical),
0x85, 0x31, # . Report ID (49),
0x0A, 0x31, 0x10, # . Usage (1031h),
0x25, 0x64, # . Logical Maximum (100),
0x95, 0x03, # . Report Count (3),
0xB1, 0x02, # . Feature (Variable),
0x95, 0x02, # . Report Count (2),
0xB1, 0x03, # . Feature (Constant, Variable),
0xC0, # . End Collection,
0x0A, 0xAC, 0x10, # . Usage (10ACh),
0xA1, 0x02, # . Collection (Logical),
0x15, 0x00, # . Logical Minimum (0),
0x26, 0xFF, 0x00, # . Logical Maximum (255),
0x75, 0x08, # . Report Size (8),
0x85, 0xAC, # . Report ID (172),
0x09, 0x00, # . Usage (00h),
0x96, 0xBF, 0x00, # . Report Count (191),
0x81, 0x02, # . Input (Variable),
0x85, 0x15, # . Report ID (21),
0x09, 0x00, # . Usage (00h),
0x95, 0x0E, # . Report Count (14),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x33, # . Report ID (51),
0x09, 0x00, # . Usage (00h),
0x95, 0x12, # . Report Count (18),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x44, # . Report ID (68),
0x09, 0x00, # . Usage (00h),
0x95, 0x04, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x45, # . Report ID (69),
0x09, 0x00, # . Usage (00h),
0x95, 0x20, # . Report Count (32),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x60, # . Report ID (96),
0x09, 0x00, # . Usage (00h),
0x95, 0x3F, # . Report Count (63),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x61, # . Report ID (97),
0x09, 0x00, # . Usage (00h),
0x95, 0x3E, # . Report Count (62),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x62, # . Report ID (98),
0x09, 0x00, # . Usage (00h),
0x95, 0x3E, # . Report Count (62),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x65, # . Report ID (101),
0x09, 0x00, # . Usage (00h),
0x95, 0x04, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x66, # . Report ID (102),
0x09, 0x00, # . Usage (00h),
0x95, 0x04, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x67, # . Report ID (103),
0x09, 0x00, # . Usage (00h),
0x95, 0x04, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x68, # . Report ID (104),
0x09, 0x00, # . Usage (00h),
0x95, 0x11, # . Report Count (17),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x6F, # . Report ID (111),
0x09, 0x00, # . Usage (00h),
0x95, 0x3E, # . Report Count (62),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xCD, # . Report ID (205),
0x09, 0x00, # . Usage (00h),
0x95, 0x02, # . Report Count (2),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x16, # . Report ID (22),
0x09, 0x00, # . Usage (00h),
0x95, 0x0E, # . Report Count (14),
0xB1, 0x02, # . Feature (Variable),
0x85, 0x35, # . Report ID (53),
0x09, 0x00, # . Usage (00h),
0x95, 0x0A, # . Report Count (10),
0xB1, 0x02, # . Feature (Variable),
0xC0, # . End Collection,
0x85, 0xD1, # . Report ID (209),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x01, # . Report Count (260),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD2, # . Report ID (210),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x01, # . Report Count (260),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD3, # . Report ID (211),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x00, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD4, # . Report ID (212),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x00, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD5, # . Report ID (213),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x00, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD6, # . Report ID (214),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x00, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD7, # . Report ID (215),
0x09, 0x01, # . Usage (01h),
0x96, 0x08, 0x00, # . Report Count (8),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD8, # . Report ID (216),
0x09, 0x01, # . Usage (01h),
0x96, 0x0C, 0x00, # . Report Count (12),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xD9, # . Report ID (217),
0x09, 0x01, # . Usage (01h),
0x96, 0x00, 0x0A, # . Report Count (2560),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xDA, # . Report ID (218),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x04, # . Report Count (1028),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xDB, # . Report ID (219),
0x09, 0x01, # . Usage (01h),
0x96, 0x06, 0x00, # . Report Count (6),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xDC, # . Report ID (220),
0x09, 0x01, # . Usage (01h),
0x96, 0x02, 0x00, # . Report Count (2),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xDD, # . Report ID (221),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x00, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xDE, # . Report ID (222),
0x09, 0x01, # . Usage (01h),
0x96, 0x04, 0x00, # . Report Count (4),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xDF, # . Report ID (223),
0x09, 0x01, # . Usage (01h),
0x96, 0x22, 0x00, # . Report Count (34),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xE0, # . Report ID (224),
0x09, 0x01, # . Usage (01h),
0x96, 0x01, 0x00, # . Report Count (1),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xE1, # . Report ID (225),
0x09, 0x01, # . Usage (01h),
0x96, 0x02, 0x00, # . Report Count (2),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xE2, # . Report ID (226),
0x09, 0x01, # . Usage (01h),
0x96, 0x02, 0x00, # . Report Count (2),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xE3, # . Report ID (227),
0x09, 0x01, # . Usage (01h),
0x96, 0x02, 0x00, # . Report Count (2),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xE4, # . Report ID (228),
0x09, 0x01, # . Usage (01h),
0x96, 0xFF, 0x01, # . Report Count (511),
0xB1, 0x02, # . Feature (Variable),
0x85, 0xCB, # . Report ID (203),
0x09, 0x01, # . Usage (01h),
0x96, 0x1F, 0x00, # . Report Count (31),
0xB1, 0x02, # . Feature (Variable),
0xC0 # . End Collection
]
# fmt: on