esp32_nimble/server/
hid.rs

1#[allow(unused_macros)]
2macro count {
3  () => { 0u8 },
4  ($x:tt $($xs:tt)*) => {1u8 + count!($($xs)*)}
5}
6
7pub macro hid {
8  ($(( $($xs:tt),*)),+ $(,)?) => { &[ $( (count!($($xs)*)-1) | $($xs),* ),* ] }
9}
10
11// Main items
12pub const HIDINPUT: u8 = 0x80;
13pub const HIDOUTPUT: u8 = 0x90;
14pub const FEATURE: u8 = 0xb0;
15pub const COLLECTION: u8 = 0xa0;
16pub const END_COLLECTION: u8 = 0xc0;
17
18// Global items
19pub const USAGE_PAGE: u8 = 0x04;
20pub const LOGICAL_MINIMUM: u8 = 0x14;
21pub const LOGICAL_MAXIMUM: u8 = 0x24;
22pub const PHYSICAL_MINIMUM: u8 = 0x34;
23pub const PHYSICAL_MAXIMUM: u8 = 0x44;
24pub const UNIT_EXPONENT: u8 = 0x54;
25pub const UNIT: u8 = 0x64;
26pub const REPORT_SIZE: u8 = 0x74; //bits
27pub const REPORT_ID: u8 = 0x84;
28pub const REPORT_COUNT: u8 = 0x94; //bytes
29pub const PUSH: u8 = 0xa4;
30pub const POP: u8 = 0xb4;
31
32// Local items
33pub const USAGE: u8 = 0x08;
34pub const USAGE_MINIMUM: u8 = 0x18;
35pub const USAGE_MAXIMUM: u8 = 0x28;
36pub const DESIGNATOR_INDEX: u8 = 0x38;
37pub const DESIGNATOR_MINIMUM: u8 = 0x48;
38pub const DESIGNATOR_MAXIMUM: u8 = 0x58;
39pub const STRING_INDEX: u8 = 0x78;
40pub const STRING_MINIMUM: u8 = 0x88;
41pub const STRING_MAXIMUM: u8 = 0x98;
42pub const DELIMITER: u8 = 0xa8;