mirror of https://github.com/espruino/BangleApps
89 lines
3.0 KiB
Plaintext
89 lines
3.0 KiB
Plaintext
|
|
||
|
## Joystick:
|
||
|
|
||
|
https://github.com/espruino/BangleApps/issues/349#issuecomment-620231524
|
||
|
|
||
|
```
|
||
|
0x05, 0x01, // Usage Page (Generic Desktop)
|
||
|
0x09, 0x04, // Usage (Joystick)
|
||
|
0xA1, 0x01, // Collection (Application)
|
||
|
0x09, 0x01, // Usage (Pointer)
|
||
|
0xA1, 0x00, // Collection (Physical)
|
||
|
// Buttons
|
||
|
0x05, 0x09, // Usage Page (Buttons)
|
||
|
0x19, 0x01, // Usage Minimum (1)
|
||
|
0x29, 0x05, // Usage Maximum (5)
|
||
|
0x15, 0x00, // Logical Minimum (0)
|
||
|
0x25, 0x01, // Logical Maximum (1)
|
||
|
0x95, 0x05, // Report Count (5)
|
||
|
0x75, 0x01, // Report Size (1)
|
||
|
0x81, 0x02, // Input (Data, Variable, Absolute)
|
||
|
|
||
|
// padding bits
|
||
|
0x95, 0x03, // Report Count (3)
|
||
|
0x75, 0x01, // Report Size (1)
|
||
|
0x81, 0x03, // Input (Constant)
|
||
|
|
||
|
// Stick
|
||
|
0x05, 0x01, // Usage Page (Generic 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, 0x02, // Input (Data, Variable, Absolute)
|
||
|
0xC0, // End Collection (Physical)
|
||
|
0xC0 // End Collection (Application)
|
||
|
```
|
||
|
|
||
|
## Keyboard
|
||
|
|
||
|
http://www.espruino.com/BLE+Keyboard
|
||
|
|
||
|
```
|
||
|
0x05, 0x01, // Usage Page (Generic Desktop)
|
||
|
0x09, 0x06, // Usage (Keyboard)
|
||
|
0xA1, 0x01, // Collection (Application)
|
||
|
0x05, 0x07, // Usage Page (Key Codes)
|
||
|
0x19, 0xe0, // Usage Minimum (224)
|
||
|
0x29, 0xe7, // Usage Maximum (231)
|
||
|
0x15, 0x00, // Logical Minimum (0)
|
||
|
0x25, 0x01, // Logical Maximum (1)
|
||
|
0x75, 0x01, // Report Size (1)
|
||
|
0x95, 0x08, // Report Count (8)
|
||
|
0x81, 0x02, // Input (Data, Variable, Absolute)
|
||
|
|
||
|
0x95, 0x01, // Report Count (1)
|
||
|
0x75, 0x08, // Report Size (8)
|
||
|
0x81, 0x01, // Input (Constant) reserved byte(1)
|
||
|
|
||
|
0x95, 0x05, // Report Count (5)
|
||
|
0x75, 0x01, // Report Size (1)
|
||
|
0x05, 0x08, // Usage Page (Page# for LEDs)
|
||
|
0x19, 0x01, // Usage Minimum (1)
|
||
|
0x29, 0x05, // Usage Maximum (5)
|
||
|
0x91, 0x02, // Output (Data, Variable, Absolute), Led report
|
||
|
0x95, 0x01, // Report Count (1)
|
||
|
0x75, 0x03, // Report Size (3)
|
||
|
0x91, 0x01, // Output (Data, Variable, Absolute), Led report padding
|
||
|
|
||
|
0x95, 0x06, // Report Count (6)
|
||
|
0x75, 0x08, // Report Size (8)
|
||
|
0x15, 0x00, // Logical Minimum (0)
|
||
|
0x25, 0x73, // Logical Maximum (115 - include F13, etc)
|
||
|
0x05, 0x07, // Usage Page (Key codes)
|
||
|
0x19, 0x00, // Usage Minimum (0)
|
||
|
0x29, 0x73, // Usage Maximum (115 - include F13, etc)
|
||
|
0x81, 0x00, // Input (Data, Array) Key array(6 bytes)
|
||
|
|
||
|
0x09, 0x05, // Usage (Vendor Defined)
|
||
|
0x15, 0x00, // Logical Minimum (0)
|
||
|
0x26, 0xFF, 0x00, // Logical Maximum (255)
|
||
|
0x75, 0x08, // Report Count (2)
|
||
|
0x95, 0x02, // Report Size (8 bit)
|
||
|
0xB1, 0x02, // Feature (Data, Variable, Absolute)
|
||
|
|
||
|
0xC0 // End Collection (Application)
|
||
|
```
|