Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Jan 2011 15:41:36 -0800
From:      Maksim Yevmenkin <maksim.yevmenkin@gmail.com>
To:        David Demelier <demelier.david@gmail.com>, freebsd-bluetooth@freebsd.org
Subject:   Re: Bluetooth mouse does not connect after reboot
Message-ID:  <AANLkTim4MCXnzVwgk83kN%2Bk9tUe%2Bn0JbMEuxrfG-0FyE@mail.gmail.com>
In-Reply-To: <alpine.NEB.2.00.1101211933450.13080@galant.ukfsn.org>
References:  <4D3889D2.80508@gmail.com> <201101202043.p0KKhDIB076736@lurza.secnetix.de> <AANLkTindTyEBAgGV3cBcSs6tGMtN8JtQ3_sHOF4n%2BnEs@mail.gmail.com> <4D393F19.9020005@gmail.com> <4D398BEC.9020503@gmail.com> <alpine.NEB.2.00.1101211933450.13080@galant.ukfsn.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jan 21, 2011 at 11:44 AM, Iain Hibbert <plunky@rya-online.net> 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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTim4MCXnzVwgk83kN%2Bk9tUe%2Bn0JbMEuxrfG-0FyE>