05 01 // Usage page Generic desktop 09 02 // Usage Mouse a1 01 // Collection Application 09 01 // Usage Pointer a1 00 // Collection Physical 05 09 // Usage Page Buttons 19 01 // Usage Min 01 29 08 // Usage Max 08 15 00 // Logical min 0 25 01 // Logical max 1 95 08 // Report count 8 75 01 // Report size 1 81 02 // Input Data, Variable, Absolute 05 01 // Usage Page Generic Desktop 09 30 // Usage X 09 31 // Usage Y 15 00 // Logical Min ( 0) 25 FF // Logical Max ( 255) 75 08 // Report size 8 95 02 // Report count 2 81 02 // Input Data, Variable, Absolute 05 01 // Usage Page Generic Desktop 09 38 // Usage Wheel 15 81 // Logical Min (-127) 25 7f // Logical Max ( 127) 75 08 // Report size 8 95 01 // Report count 1 81 06 // Input Data, Variable, Relative c0 // End collection c0 // End collection input bytes (4 bytes) 0 - 0 data / 1 constant 1 - 0 array / 1 variable 2 - 0 absolute / 1 relative 3 - 0 no wrap / 1 wrap 4 - 0 linear / 1 non linear 5 - 0 prefered state / 1 no preferred 6 - 0 no null pos / 1 null state 7 - 0 non volatile / 1 volatile 8 - 0 bit field / 1 buffered bytes 9 - 31 reserved 00000110 ||| ||\ --> data |\--> variable \--> relative