Я строю собственную мышь Bluetooth, используя датчик приближения для координат Y и гироскоп для координат X, и мне было интересно, возможно ли установить ось X как относительную, а ось Y как абсолютную.
Я могу заставить мою мышь работать, используя обе координаты как относительные или обе координаты как абсолютные;но использование их в качестве различных настроек помогло бы мне получить гораздо лучшую точность наведения при фильтрации, что я не могу реализовать, если и X, и Y имеют одинаковые настройки.
Однако, когда я пытаюсь иметь X как относительное и Y как абсолютноеизменяя дескриптор устройства HID, настройки для координат Y игнорируются.
Это мой дескриптор HID
const uint8_t kMouseHidDescriptor[] = {
0x05, 0x01, // USAGE_PAGE (Generic Desktop) 0
0x09, 0x02, // USAGE (Mouse) 2
0xa1, 0x01, // COLLECTION (Application) 4
0x85, 0x01, // REPORT_ID (Mouse) 6
0x09, 0x01, // USAGE (Pointer) 8
0xa1, 0x00, // COLLECTION (Physical) 10
0x05, 0x09, // USAGE_PAGE (Button) 12
0x19, 0x01, // USAGE_MINIMUM (Button 1) 14
0x29, 0x03, // USAGE_MAXIMUM (Button 3) 16
0x15, 0x00, // LOGICAL_MINIMUM (0) 18
0x25, 0x01, // LOGICAL_MAXIMUM (1) 20
0x75, 0x01, // REPORT_SIZE (1) 22
0x95, 0x03, // REPORT_COUNT (3) 24
0x81, 0x02, // INPUT (Data,Var,Abs) 26
0x95, 0x05, // REPORT_COUNT (5) 28
0x81, 0x03, // INPUT (Cnst,Var,Abs) 30
0x05, 0x01, // USAGE_PAGE (Generic Desktop) 32
0x09, 0x30, // USAGE (X) 34
0x15, 0x81, // LOGICAL_MINIMUM (-127) 36
0x25, 0x7f, // LOGICAL_MAXIMUM (127) 38
0x75, 0x08, // REPORT_SIZE (8) 40
0x95, 0x01, // REPORT_COUNT (1) 42
0x81, 0x06, // INPUT (Data,Var,Rel) 44
0x05, 0x01, // USAGE_PAGE (Generic Desktop) 46
0x09, 0x31, // USAGE (Y) 48
0x16, 0x01, 0xf8, // LOGICAL_MINIMUM (-2047) 50
0x26, 0xff, 0x07, // LOGICAL_MAXIMUM (2047) 53
0x75, 0x10, // REPORT_SIZE (16) 56
0x95, 0x01, // REPORT_COUNT (1) 58
0x81, 0x02, // INPUT (Data,Var,Abs) 60
0xc0, // END_COLLECTION 62
0xc0 // END_COLLECTION 63/64
};
Я ожидал, что X-данные будут интерпретироваться как относительные значения, а Y-данные - как абсолютные, но я получаю, что X и Y интерпретируются как относительныеценности.У кого-нибудь есть идеи, как это лучше реализовать?