From 87fe93f6e9d3b693ec8966f6e05f01631dcb8ca7 Mon Sep 17 00:00:00 2001 From: nirenjan Date: Tue, 1 Dec 2015 08:29:57 -0800 Subject: [PATCH] Add parsed HID report Report descriptor can be obtained from /sys/bus/hid/devices/.../report_descriptor. Once dumped in hex, the parser at http://eleccelerator.com/usbdescreqparser/ can convert it to a human readable format. --- info/x52pro_hid_report.md | 64 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 info/x52pro_hid_report.md diff --git a/info/x52pro_hid_report.md b/info/x52pro_hid_report.md new file mode 100644 index 0000000..b0e412a --- /dev/null +++ b/info/x52pro_hid_report.md @@ -0,0 +1,64 @@ +0x05, 0x01, // Usage Page (Generic Desktop Ctrls) +0x09, 0x04, // Usage (Joystick) +0xA1, 0x01, // Collection (Application) +0x09, 0x01, // Usage (Pointer) +0xA1, 0x00, // Collection (Physical) +0x09, 0x30, // Usage (X) +0x09, 0x31, // Usage (Y) +0x15, 0x00, // Logical Minimum (0) +0x26, 0xFF, 0x03, // Logical Maximum (1023) +0x75, 0x0A, // Report Size (10) +0x95, 0x02, // Report Count (2) +0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) +0x75, 0x02, // Report Size (2) +0x95, 0x01, // Report Count (1) +0x81, 0x01, // Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) +0x09, 0x35, // Usage (Rz) +0x15, 0x00, // Logical Minimum (0) +0x26, 0xFF, 0x03, // Logical Maximum (1023) +0x75, 0x0A, // Report Size (10) +0x95, 0x01, // Report Count (1) +0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) +0x09, 0x32, // Usage (Z) +0x09, 0x33, // Usage (Rx) +0x09, 0x34, // Usage (Ry) +0x09, 0x36, // Usage (Slider) +0x15, 0x00, // Logical Minimum (0) +0x26, 0xFF, 0x00, // Logical Maximum (255) +0x75, 0x08, // Report Size (8) +0x95, 0x04, // Report Count (4) +0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) +0x05, 0x09, // Usage Page (Button) +0x19, 0x01, // Usage Minimum (0x01) +0x29, 0x27, // Usage Maximum (0x27) +0x15, 0x00, // Logical Minimum (0) +0x25, 0x01, // Logical Maximum (1) +0x95, 0x27, // Report Count (39) +0x75, 0x01, // Report Size (1) +0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) +0x75, 0x05, // Report Size (5) +0x95, 0x01, // Report Count (1) +0x81, 0x01, // Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) +0x05, 0x01, // Usage Page (Generic Desktop Ctrls) +0x09, 0x39, // Usage (Hat switch) +0x15, 0x01, // Logical Minimum (1) +0x25, 0x08, // Logical Maximum (8) +0x35, 0x00, // Physical Minimum (0) +0x46, 0x3B, 0x01, // Physical Maximum (315) +0x66, 0x14, 0x00, // Unit (System: English Rotation, Length: Centimeter) +0x75, 0x04, // Report Size (4) +0x95, 0x01, // Report Count (1) +0x81, 0x42, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,Null State) +0x05, 0x05, // Usage Page (Game Ctrls) +0x09, 0x24, // Usage (Move Right/Left) +0x09, 0x26, // Usage (Move Up/Down) +0x15, 0x00, // Logical Minimum (0) +0x25, 0x0F, // Logical Maximum (15) +0x75, 0x04, // Report Size (4) +0x95, 0x02, // Report Count (2) +0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) +0xC0, // End Collection +0xC0, // End Collection + +// 125 bytes +