Я создал USB HID Pen Digitizer, который сообщает следующее:
////////////////////////////
// HID PEN DIGITIZER PART //
////////////////////////////
0x05, 0x0d, // USAGE_PAGE (Digitizers)
0x09, 0x01, // USAGE (Digitizers)
0xa1, 0x01, // COLLECTION (Application)
0x85, 0x02, // REPORT_ID(2)
0x09, 0x02, // USAGE (pen)
0xa1, 0x00, // COLLECTION (Physical)
// Tip Switch & In Range
0x09, 0x42, // USAGE (Tip Switch)
0x09, 0x32, // USAGE (In Range)
0x09, 0x3c, // USAGE (Invert)
0x09, 0x45, // USAGE (Eraser)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0x01, // LOGICAL_MAXIMUM (1)
0x75, 0x01, // REPORT_SIZE (1)
0x95, 0x04, // REPORT_COUNT (4)
0x81, 0x02, // INPUT (Data,Var,Abs)
// Padding
0x09, 0x00, // USAGE (Undefined / Padding)
0x75, 0x04, // REPORT_SIZE (4)
0x95, 0x01, // REPORT_COUNT (1)
0x81, 0x01, // INPUT (Cnst,Ary,Abs)
// X & Y TILT
0x09, 0x3d, // USAGE (X tilt)
0x09, 0x3e, // USAGE (Y tilt)
0x15, 0xa6, // LOGICAL_MINIMUM (-90)
0x25, 0x5a, // LOGICAL_MAXIMUM (90)
0x75, 0x08, // REPORT_SIZE (8)
0x95, 0x02, // REPORT_COUNT (2)
0x35, 0xa6, // PHYSICAL_MINIMUM (-90)
0x45, 0x5a, // PHYSICAL_MAXIMUM (90)
0x81, 0x02, // INPUT (Data,Var,Abs)
// Tip pressure
0x09, 0x30, // USAGE (PRESSURE)
0x16, 0x00, 0x00, // LOGICAL_MINIMUM (0)
0x26, 0xff, 0x0f, // LOGICAL_MAXIMUM (4095)
0x75, 0x10, // REPORT_SIZE (16)
0x95, 0x01, // REPORT_COUNT (1)
0x36, 0x00, 0x00, // PHYSICAL_MINIMUM (0)
0x46, 0xff, 0x00, // PHYSICAL_MAXIMUM (255)
0x81, 0x02, // INPUT (Data,Var,Abs)
// Generic desktop X, Y, Z
// X
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
0x16, 0xc8, 0x05, // LOGICAL_MINIMUM (1480)
0x26, 0x68, 0x47, // LOGICAL_MAXIMUM (18280)
0x75, 0x10, // REPORT_SIZE (16)
0x95, 0x01, // REPORT_COUNT (1)
0x55, 0x0d, // UNIT_EXPONENT (-3)
0x65, 0x11, // UNIT (en cm)
0x09, 0x30, // USAGE (X)
0x36, 0xC8, 0x05, // PHYSICAL_MINIMUM (1480)
0x46, 0x68, 0x47, // PHYSICAL_MAXIMUM (18280)
0x81, 0x02, // INPUT (Data,Var,Abs)
// Y
0x16, 0x34, 0x08, // LOGICAL_MINIMUM (2100)
0x26, 0x74, 0x36, // LOGICAL_MAXIMUM (13940)
0x75, 0x10, // REPORT_SIZE (16)
0x95, 0x01, // REPORT_COUNT (1)
0x55, 0x0d, // UNIT_EXPONENT (-3)
0x65, 0x11, // UNIT (en cm)
0x09, 0x31, // USAGE (Y)
0x36, 0x34, 0x08, // PHYSICAL_MINIMUM (2100)
0x46, 0x74, 0x36, // PHYSICAL_MAXIMUM (13940)
0x81, 0x02, // INPUT (Data,Var,Abs)
// Z
0x16, 0x00, 0x00, // LOGICAL_MINIMUM (0)
0x26, 0x10, 0x27, // LOGICAL_MAXIMUM (10000)
0x75, 0x10, // REPORT_SIZE (16)
0x95, 0x01, // REPORT_COUNT (1)
0x55, 0x0d, // UNIT_EXPONENT (-3)
0x65, 0x11, // UNIT (en cm)
0x09, 0x32, // USAGE (Z)
0x36, 0x00, 0x00, // PHYSICAL_MINIMUM (0)
0x46, 0x10, 0x27, // PHYSICAL_MAXIMUM (10000)
0x81, 0x02, // INPUT (Data,Var,Abs)
0xc0, // END_COLLECTION
0xc0, // END_COLLECTION
Проблема возникает только при использовании приложений в MacOSX = не работает перо.Ручка HID работает, «контакт» в порядке, но данные о давлении не обрабатываются.Давление всегда находится на полном давлении, когда контакт включен.
Используя приложение, которое может справиться с этим (SketchBook от Autodesk), давление пера хорошо работает в Windows, но не в MacOSX.
кто-то уже сталкивался с подобной проблемой с устройством Pen на MacOSX?Что я могу сделать для отладки?