On Fri, Jan 21, 2011 at 11:44 AM, Iain Hibbert <[email protected]> wrote: > On Fri, 21 Jan 2011, David Demelier wrote: > > the HID descriptor you posted decodes as > > Collection page=Generic_Desktop usage=Mouse > Collection page=Generic_Desktop usage=Pointer > Input id=2 size=1 count=1 page=Button usage=Button_1 Variable, logical range > 0..1 > Input id=2 size=1 count=1 page=Button usage=Button_2 Variable, logical range > 0..1 > Input id=2 size=1 count=1 page=Button usage=Button_3 Variable, logical range > 0..1 > Input id=2 size=1 count=1 page=Button usage=Button_4 Variable, logical range > 0..1 > Input id=2 size=1 count=1 page=Button usage=Button_5 Variable, logical range > 0..1 > Input id=2 size=1 count=1 page=Button usage=Button_6 Variable, logical range > 0..1 > Input id=2 size=1 count=1 page=Button usage=Button_7 Variable, logical range > 0..1 > Input id=2 size=1 count=1 page=Button usage=Button_8 Variable, logical range > 0..1 > Input id=2 size=12 count=1 page=Generic_Desktop usage=X Variable Relative, > logical range -2047..2047 > Input id=2 size=12 count=1 page=Generic_Desktop usage=Y Variable Relative, > logical range -2047..2047 > Input id=2 size=8 count=1 page=Generic_Desktop usage=Wheel Variable > Relative, logical range -127..127 > Input id=2 size=8 count=1 page=Consumer usage=AC_Pan Variable Relative, > logical range -127..127 > End collection > End collection > Input id=16 size=8 count=6 page=Microsoft usage=0x0001, logical range 0..255 > Output id=16 size=8 count=6 page=Microsoft usage=0x0001, logical range 0..255 > Collection page=Microsoft usage=0x0001 > > so for report # 2 we expect a six byte report at the end of the packet > (the rest is ACL (5), L2CAP (4) and HID (2) headers..) > >> for wheel up: >> > 02 0C 20 0C 00 08 00 43 00 A1 02 00 00 00 00 01 00 >> >> for wheel down: >> > 02 0C 20 0C 00 08 00 43 00 A1 02 00 00 00 00 FF 00 > > those are GenericDesktop/Wheel +1 (01) and -1 (FF) values, probably you > can make them larger by spinning the wheel faster > >> for wheel logical button to left: >> > 02 0C 20 0C 00 08 00 43 00 A1 02 00 00 00 00 00 FF >> > 02 0C 20 0C 00 08 00 43 00 A1 02 00 00 00 00 00 00 >> >> and for wheel logical button to right: >> > 02 0C 20 0C 00 08 00 43 00 A1 02 00 00 00 00 00 01 >> > 02 0C 20 0C 00 08 00 43 00 A1 02 00 00 00 00 00 00 > > and Consumer/AC_PAN -1 (ff) and +1 (01) and since it comes from a button > you probably can't increase the speed - might accelerate, if you held it > down? They sent a 00 on release though I don't think that is required > (don't think my apple magic mouse ever did that with PAN)
thank you Iain :) so, yes, those events decode as Consumer/AC_PAN (aka "w" direction). as i mentioned before, mouse_info structure (or more specifically mouse_data structure) does not contain place to report "w" direction. the good news is that mouse_data is a part of a union inside mouse_info structure. theoretically, it should be possible to add place for "w" direction in mouse_data, or, even create completely new mouse_data2. of course there is still a work to do with ioctl. another option is decode those as button clicks, i.e. less than zero - button X, more than zero - button X+1. not sure if this is a good idea though. thanks, max _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-bluetooth To unsubscribe, send any mail to "[email protected]"
