2012-03-15 09:47:08

by Vijaykumar Dadmode

[permalink] [raw]
Subject: RE: HID Over GATT implementation

DQpIaSwgDQoNCj4+IDMuIEhJRCBTZXJ2aWNlIC0gVGhpcyBzZXJ2aWNlIGNv
bnRhaW5zIHRoZSBtYWluIGxvZ2ljIGZvciB0aGUgSE9HUCwgYW5kIGFjdHMg
YXMgYSBwcm94eSBiZXR3ZWVuIHRoZSByZW1vdGUgZGV2aWNlIGFuZCB0aGUg
Pj4gbG9jYWwgSElEIHN1YnN5c3RlbXMuDQoNCkkgaGFkIHRoZSBIT0cgRGV2
aWNlIGltcGxlbWVudGVkL3Rlc3RlZCB3aXRoIHRoZSBiZWxvdyBkZXNpZ24u
IENvdWxkIHlvdSBwbGVhc2UgbGV0IG1lIGtub3cgeW91ciBvcGluaW9uIGFi
b3V0IHRoZSBkZXNpZ24/DQoNCg0KZ25vbWUgQlQgbWdyDQp8DQp8DQp8DQp2
DQpEQlVTCQkJICAgICBEQlVTDQp8ICAgICAgICAgICAgICAgICAgICAgICBe
CQ0KfCAgICAgICAgICAgICAgICAgICAgICAgfA0KfCAgICAgICAgICAgICAg
ICAgICAgICAgfChnX2RidXNfcmVnX2ludGYpDQp2ICAgICAgIChhdHRpb19j
YikgICAgICB8DQpkZXZpY2UgPC0tLS0tLS0tLS0+IEhJRG92ZXJHQVRUcGx1
Z2luDQpeKHNvY2spICAgICAgICAgICAgIF4gIF4gICAgIF4gICB8DQp8ICAg
ICAgICAgICAgICAgICAgIHwgIHwgICAgIHwgICB8ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICANCnwgICAgICAobm90aWZ5X2J1ZmYpfCAgfCAgICAgfCAgIHwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCnwtLS0t
LS0tLS0tLS0tLS0tPiBHQVRUUklCICAgfCAgIHwNCnwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIHwoaW9jdGwoSElEUENPTk5BREQsIEhJRFBf
U0NBTktFWSkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIA0KfCAgICAgICAgICAgICg/P291dHB1dHJl
cG9ydCB8ICAgfA0KfCAgICAgICAgICAgIE5vdGltcGxlbWVudGVkKSB8ICAg
fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVMNCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEtTDQp8ICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICB8DQp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICBWDQp2
KHNvY2spICAgICAgICAgICAgICAgICAgICAgKHNvY2spICANCkwyQ0FQICAg
ICAgICAgICAgICAgICAgICAgICAgSElEUDwtLS0tLS0tLS0tLS0tLS0+SW5w
dXQgU3Vic3lzdGVtDQoNCg0KVGhhbmtzLA0KVmlqYXkNCg0KLS0tLS1Pcmln
aW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IGxpbnV4LWJsdWV0b290aC1vd25l
ckB2Z2VyLmtlcm5lbC5vcmcgW21haWx0bzpsaW51eC1ibHVldG9vdGgtb3du
ZXJAdmdlci5rZXJuZWwub3JnXSBPbiBCZWhhbGYgT2YgR2FuaXIsIENoZW4N
ClNlbnQ6IE1vbmRheSwgTWFyY2ggMTIsIDIwMTIgMTE6MzIgQU0NClRvOiBD
bGF1ZGlvIFRha2FoYXNpDQpDYzogbGludXgtYmx1ZXRvb3RoQHZnZXIua2Vy
bmVsLm9yZw0KU3ViamVjdDogUkU6IEhJRCBPdmVyIEdBVFQgaW1wbGVtZW50
YXRpb24NCg0KQ2xhdWRpbywNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut
LS0tLQ0KPiBGcm9tOiBDbGF1ZGlvIFRha2FoYXNpIFttYWlsdG86Y2xhdWRp
by50YWthaGFzaUBvcGVuYm9zc2Eub3JnXQ0KPiBTZW50OiBNb25kYXksIE1h
cmNoIDEyLCAyMDEyIDI6MTIgQU0NCj4gVG86IEdhbmlyLCBDaGVuDQo+IENj
OiBsaW51eC1ibHVldG9vdGhAdmdlci5rZXJuZWwub3JnDQo+IFN1YmplY3Q6
IFJlOiBISUQgT3ZlciBHQVRUIGltcGxlbWVudGF0aW9uDQo+IA0KPiBIaSBD
aGVuIEdhbmlyLA0KPiANCj4gT24gU3VuLCBNYXIgMTEsIDIwMTIgYXQgOTo1
NCBBTSwgR2FuaXIsIENoZW4gPGNoZW4uZ2FuaXJAdGkuY29tPiB3cm90ZToN
Cj4gPiBIaS4NCj4gPg0KPiA+IEkgaGF2ZSBzdGFydGVkIHRoZSBkZXZlbG9w
bWVudCBvZiB0aGUgSE9HUCAoSElEIE92ZXIgR0FUVCBQcm90b2NvbCkNCj4g
Zm9yIHRoZSBCbHVlWiBTdGFjay4gVGhlIG1haW4gaWRlYSBvZiB0aGlzIGFk
b3B0ZWQgcHJvZmlsZSBpcyB0byBhbGxvdw0KPiBISUQgZGV2aWNlcyB0byBv
cGVyYXRlIG92ZXIgdGhlIGxvdyBlbmVyZ3kgdGVjaG5vbG9neS4NCj4gPg0K
PiA+IFRoZSBISUQgT3ZlciBHQVRUIFByb2ZpbGUgaW5jbHVkZXMgdGhlIGZv
bGxvd2luZyBzZXJ2aWNlcyA6DQo+ID4gMS4gQmF0dGVyeSBTZXJ2aWNlIC0g
YWxsb3dzIHRoZSBob3N0IHRvIGdhdGhlciBhbmQgZGlzcGxheQ0KPiBpbmZv
cm1hdGlvbiByZWdhcmRpbmcgdGhlIHBlZXIgZGV2aWNlIGJhdHRlcnkvYmF0
dGVyaWVzIHN0YXRlLg0KPiA+IDIuIERldmljZSBJbmZvcm1hdGlvbiBTZXJ2
aWNlIC0gVGhpcyBzZXJ2aWNlIGNvbnRhaW5zIG1pc2MNCj4gaWRlbnRpZmlj
YXRpb24gZGF0YSBvZiBhIGRldmljZS4gVGhlIEhPR1Agd2lsbCB1c2UgdGhl
IFBOUCBJRCBmaWVsZC4NCj4gDQo+IENvdWxkIHlvdSBwbGVhc2UgZXhwbGFp
biBob3cgYXJlIHlvdSBwbGFubmluZyB0byBzaGFyZSBiYXR0ZXJ5IGxldmVs
DQo+IGFuZCBQTlAgSUQgdG8gSG9HIHNlcnZpY2U/DQo+IA0KPiBkZXZpY2Uu
YyBjYW4gaGF2ZSBmdW5jdGlvbiB0byBnZXQvc2V0IEJhdHRlcnkgTGV2ZWwg
YW5kIFBOUCBJRC4gSU1PLA0KPiBvbmx5IEJhdHRlcnkgTGV2ZWwgY291bGQg
YmUgZXhwb3J0ZWQgaW4gdGhlIERldmljZSBpbnRlcmZhY2UoaW5zdGVhZA0K
PiBvZiBjcmVhdGluZyBhIG5ldyBpbnRlcmZhY2UgZm9yIEJhdHRlcnkpLg0K
Pg0KUE5QIElEIChvciBhbnkgb3RoZXIgRGV2aWNlSW5mb3JtYXRpb24gZGF0
YSkgYW5kIEJhdHRlcnkgbGV2ZWwgd2lsbCBiZSBwYXJ0IG9mIHRoZSBidGRf
ZGV2aWNlIChsYXRlciBwYXRjaCkuIERldmljZSB3aWxsIGhhdmUgZnVuY3Rp
b25hbGl0eSB0byBnZXQvc2V0IHRoZSBpbmZvcm1hdGlvbiAoZ2V0IHdpbGwg
YmUgZXhwb3NlZCBleHRlcm5hbGx5LCBzZXQgd2lsbCBiZSBmb3IgdXNlIGJ5
IHRoZSBwbHVnaW5zKS4gTm8gc3BlY2lmaWMgZGJ1cyBBUEkgd2lsbCBiZSBj
cmVhdGVkIGZvciBhbnkgb2YgdGhvc2UgcGx1Z2lucyAobm8gbmVlZCB0byBj
cmVhdGUgYW4gYWRkaXRpb25hbCBpbnRlcmZhY2UpLiBEZXZpY2UgSW5mb3Jt
YXRpb24gaXMgcmVhZCBvbmNlIG9uIGNvbm5lY3Rpb24sIGFuZCB3aGVuIGl0
IGlzIHJlYWQsIHRoZSBwbHVnaW4gdXBkYXRlcyB0aGUgYnRkX2RldmljZSB3
aXRoIHRoaXMgaW5mb3JtYXRpb24uIEFsbCBhdmFpbGFibGUgaW5mb3JtYXRp
b24gd2lsbCBiZSByZWFkLiBUaGVyZSBpcyBubyBuZWVkIHRvIHJlLXJlYWQg
dGhpcyBkdXJpbmcgYW4gb25nb2luZyBjb25uZWN0aW9uLiBJZiB3ZSBkbyBz
ZWUgYSByZWFzb24gdG8gZG8gdGhhdCwgd2UgY2FuIGFkZCBhIGRidXMgaW50
ZXJmYWNlIGZvciBpdCBsYXRlci4NCg0KUE5QIElEIGlzIGEgY29tcGxleCBk
YXRhIHR5cGUuIEl0IGNvbnRhaW5zIDQgZGlmZmVyZW50IGVsZW1lbnRzLCB3
aGljaCB3aWxsIGJlIGV4cG9zZWQgdXNpbmcgYSB1bmlxdWUgc3RydWN0dXJl
IGNvbnRhaW5pbmcgYWxsIHRob3NlIHZhbHVlcy4NCg0KQmF0dGVyeSBpbmZv
cm1hdGlvbiB3aWxsIGJlIHJlYWQgb25jZSwgYW5kIGNvbmZpZ3VyZWQgZm9y
IG5vdGlmaWNhdGlvbnMgaWYgcG9zc2libGUgKGFsbCBkb25lIGF1dG9tYXRp
Y2FsbHkgdXBvbiBjb25uZWN0aW9uKS4gQmF0dGVyeSBsZXZlbCBjaGFuZ2Vz
IHdpbGwgYmUgZXhwb3NlZCB1c2luZyBELUJVUyBldmVudCAoUHJvcGVydHlD
aGFuZ2VkIDogQmF0dGVyeUxldmVsKS4NCg0KQmF0dGVyeSBsZXZlbCBpcyBh
biBpbnRlZ2VyIG51bWJlciwgaW4gdGhlIHJhbmdlIG9mIDAtMTAwLiBUaGUg
YmF0dGVyeSBsZXZlbCBhbHNvIGhhcyBhIGZvcm1hdCBjaGFyYWN0ZXJpc3Rp
YyBkZXNjcmlwdG9yLCB3aGljaCBjb250YWlucyBhIHVuaXF1ZSBuYW1lc3Bh
Y2UvZGVzY3JpcHRpb24gdmFsdWUgd2hpY2ggd2lsbCBiZSB1c2VkIHRvIGlk
ZW50aWZ5IGEgc3BlY2lmaWMgYmF0dGVyeSwgd2hlbiB0aGVyZSBpcyBtb3Jl
IHRoYW4gb25lIHNlcnZpY2UgYXZhaWxhYmxlLiBUaGlzIHZhbHVlIHdpbGwg
YmUgcGFydCBvZiB0aGUgYmF0dGVyeSBsZXZlbCBzdHJ1Y3R1cmUgbGlzdCBv
biB0aGUgZGV2aWNlLCBhbmQgSSBzdGlsbCBuZWVkIHRvIGZpZ3VyZSBvdXQg
aG93IHRvIGFkZCBpdCB0byB0aGUgYmF0dGVyeWxldmVsIGRidXMgcHJvcGVy
dHkgKG1heWJlIGFwcGVuZCBpdCB0byB0aGUgcHJvcGVydHkgbmFtZSwgc3Vj
aCBhcyBCYXR0ZXJ5TGV2ZWwoMSkgb3Igc29tZXRoaW5nIGxpa2UgdGhpcyA/
DQrCoA0KPiBCUiwNCj4gQ2xhdWRpbw0KDQpDaGVuIEdhbmlyLA0KVGV4YXMg
SW5zdHJ1bWVudHMuDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fDQrvv717Lm7vv70r77+977+977+977+977+977+977+9KyXv
v73vv71sendt77+977+9Yu+/veunsu+/ve+/vXLvv73vv716WO+/ve+/ve+/
ve+/vWjvv73vv71i77+977+9Xm7vv71y77+977+977+9eu+/ve+/ve+/vWjv
v73vv73vv73vv70m77+977+9Hu+/vUfvv73vv73vv71o77+9IA0KX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KKO+/vemaju+/
vd2iaiLvv73vv73vv71t77+977+977+977+977+9eu+/vd6W77+977+977+9
Zu+/ve+/ve+/vWjvv73vv73vv71+77+9be+/vQ0KDQrCoFRvIHJlcG9ydCB0
aGlzIGVtYWlsIGFzIHNwYW0gY2xpY2sgaHR0cHM6Ly93d3cubWFpbGNvbnRy
b2wuY29tL3NyL3dRdzB6bWpQb0hkSlRaR3lPQ3JyaGc9PSAuDQoKCk1lbWJl
ciBvZiB0aGUgQ1NSIHBsYyBncm91cCBvZiBjb21wYW5pZXMuIENTUiBwbGMg
cmVnaXN0ZXJlZCBpbiBFbmdsYW5kIGFuZCBXYWxlcywgcmVnaXN0ZXJlZCBu
dW1iZXIgNDE4NzM0NiwgcmVnaXN0ZXJlZCBvZmZpY2UgQ2h1cmNoaWxsIEhv
dXNlLCBDYW1icmlkZ2UgQnVzaW5lc3MgUGFyaywgQ293bGV5IFJvYWQsIENh
bWJyaWRnZSwgQ0I0IDBXWiwgVW5pdGVkIEtpbmdkb20KTW9yZSBpbmZvcm1h
dGlvbiBjYW4gYmUgZm91bmQgYXQgd3d3LmNzci5jb20uIEZvbGxvdyBDU1Ig
b24gVHdpdHRlciBhdCBodHRwOi8vdHdpdHRlci5jb20vQ1NSX1BMQyBhbmQg
cmVhZCBvdXIgYmxvZyBhdCB3d3cuY3NyLmNvbS9ibG9nCg==


2012-03-16 14:03:23

by Joao Paulo Rechi Vita

[permalink] [raw]
Subject: Re: HID Over GATT implementation

Hello Vijaykumar,

On Fri, Mar 16, 2012 at 3:44 AM, Vijaykumar Dadmode
<[email protected]> wrote:
> Hi,
>
>>>>> <[email protected]> wrote:
>>> > Hi Andre,
>>> >
>>> >>> Hi Vijay,
>>
>>>> Is this implementation public anywhere?
>>>
>>> No its not!
>>>
>
>>> Are you planning to make it public, or is it just an internal
>>> prototype or something like this?
>
> It was a internal prototype, yes I can submit the code if the design is approved.
>

If I understood correctly your design explanation, you are re-using
the HIDP module to pass the HID reports from the userspace to the
kernel. This is not the architecture we were discussing initially
(where we = indt and ti guys, with the bluetooth and input community),
because HIDP expect to deal with 2 dedicated L2CAP sockets, one for
control and the other for interruptions.

Could you explain better how do you extract HoG traffic from the LE
L2CAP socket and make it available to the HIDP module (supposing I've
understood your architecture correctly)?


--
João Paulo Rechi Vita
Openbossa Labs - INdT

2012-03-16 13:56:47

by Claudio Takahasi

[permalink] [raw]
Subject: Re: HID Over GATT implementation

Hi Vijay,

On Fri, Mar 16, 2012 at 3:44 AM, Vijaykumar Dadmode
<[email protected]> wrote:
> Hi,
>
>>>>> <[email protected]> wrote:
>>> > Hi Andre,
>>> >
>>> >>> Hi Vijay,
>>
>>>> Is this implementation public anywhere?
>>>
>>> No its not!
>>>
>
>>> Are you planning to make it public, or is it just an internal
>>> prototype or something like this?
>
> It was a internal prototype, yes I can submit the code if the design is approved.

There is a thread in the linux-input ML discussing how to provide HID
low level driver from the userspace. Subject is "User space raw hid
support".
The architecture that you are proposing is not aligned with it.

It is possible to continue the userspace development using gadget hid
(with some hacks) while the HoG/HID kernel is being defined.
We did experiments using real BLE keyboards. Let me know if you need
instructions to test it.

BR,
Claudio.

2012-03-16 06:44:19

by Vijaykumar Dadmode

[permalink] [raw]
Subject: RE: HID Over GATT implementation

SGksDQoNCj4+Pj4gPFZpamF5a3VtYXIuRGFkbW9kZUBjc3IuY29tPiB3cm90
ZToNCj4+ID4gSGkgQW5kcmUsDQo+PiA+DQo+PiA+Pj4gSGkgVmlqYXksDQo+
DQo+Pj4gSXMgdGhpcyBpbXBsZW1lbnRhdGlvbiBwdWJsaWMgYW55d2hlcmU/
DQo+Pg0KPj4gTm8gaXRzIG5vdCENCj4+DQoNCj4+IEFyZSB5b3UgcGxhbm5p
bmcgdG8gbWFrZSBpdCBwdWJsaWMsIG9yIGlzIGl0IGp1c3QgYW4gaW50ZXJu
YWwNCj4+IHByb3RvdHlwZSBvciBzb21ldGhpbmcgbGlrZSB0aGlzPw0KDQpJ
dCB3YXMgYSBpbnRlcm5hbCBwcm90b3R5cGUsIHllcyBJIGNhbiBzdWJtaXQg
dGhlIGNvZGUgaWYgdGhlIGRlc2lnbiBpcyBhcHByb3ZlZC4gDQoNCg0KVGhh
bmtzLA0KVmlqYXkNCgoKTWVtYmVyIG9mIHRoZSBDU1IgcGxjIGdyb3VwIG9m
IGNvbXBhbmllcy4gQ1NSIHBsYyByZWdpc3RlcmVkIGluIEVuZ2xhbmQgYW5k
IFdhbGVzLCByZWdpc3RlcmVkIG51bWJlciA0MTg3MzQ2LCByZWdpc3RlcmVk
IG9mZmljZSBDaHVyY2hpbGwgSG91c2UsIENhbWJyaWRnZSBCdXNpbmVzcyBQ
YXJrLCBDb3dsZXkgUm9hZCwgQ2FtYnJpZGdlLCBDQjQgMFdaLCBVbml0ZWQg
S2luZ2RvbQpNb3JlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBhdCB3d3cu
Y3NyLmNvbS4gRm9sbG93IENTUiBvbiBUd2l0dGVyIGF0IGh0dHA6Ly90d2l0
dGVyLmNvbS9DU1JfUExDIGFuZCByZWFkIG91ciBibG9nIGF0IHd3dy5jc3Iu
Y29tL2Jsb2cK

2012-03-15 14:08:57

by Joao Paulo Rechi Vita

[permalink] [raw]
Subject: Re: HID Over GATT implementation

On Thu, Mar 15, 2012 at 10:46 AM, Vijaykumar Dadmode
<[email protected]> wrote:
> Hi Andre,
>
>>> Hi Vijay,
>
>>> Is this implementation public anywhere?
>
> No its not!
>

Are you planning to make it public, or is it just an internal
prototype or something like this?

--
João Paulo Rechi Vita
Openbossa Labs - INdT

2012-03-15 13:46:08

by Vijaykumar Dadmode

[permalink] [raw]
Subject: RE: HID Over GATT implementation

SGkgQW5kcmUsDQoNCj4+IEhpIFZpamF5LA0KDQo+PiBJcyB0aGlzIGltcGxlbWVudGF0aW9uIHB1
YmxpYyBhbnl3aGVyZT8NCg0KTm8gaXRzIG5vdCENCg0KVGhhbmtzLA0KVmlqYXkNCi0tLS0tT3Jp
Z2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBBbmRyZSBHdWVkZXMgW21haWx0bzphbmRyZS5ndWVk
ZXNAb3BlbmJvc3NhLm9yZ10gDQpTZW50OiBUaHVyc2RheSwgTWFyY2ggMTUsIDIwMTIgNjo0NyBQ
TQ0KVG86IFZpamF5a3VtYXIgRGFkbW9kZQ0KQ2M6IGxpbnV4LWJsdWV0b290aEB2Z2VyLmtlcm5l
bC5vcmc7IEdhbmlyLCBDaGVuOyBDbGF1ZGlvIFRha2FoYXNpDQpTdWJqZWN0OiBSZTogSElEIE92
ZXIgR0FUVCBpbXBsZW1lbnRhdGlvbg0KDQpIaSBWaWpheSwNCg0KSXMgdGhpcyBpbXBsZW1lbnRh
dGlvbiBwdWJsaWMgYW55d2hlcmU/DQoNCk9uIFRodSwgTWFyIDE1LCAyMDEyIGF0IDY6NDcgQU0s
IFZpamF5a3VtYXIgRGFkbW9kZQ0KPFZpamF5a3VtYXIuRGFkbW9kZUBjc3IuY29tPiB3cm90ZToN
Cj4NCj4gSGksDQo+DQo+Pj4gMy4gSElEIFNlcnZpY2UgLSBUaGlzIHNlcnZpY2UgY29udGFpbnMg
dGhlIG1haW4gbG9naWMgZm9yIHRoZSBIT0dQLCBhbmQgYWN0cyBhcyBhIHByb3h5IGJldHdlZW4g
dGhlIHJlbW90ZSBkZXZpY2UgYW5kIHRoZSA+PiBsb2NhbCBISUQgc3Vic3lzdGVtcy4NCj4NCj4g
SSBoYWQgdGhlIEhPRyBEZXZpY2UgaW1wbGVtZW50ZWQvdGVzdGVkIHdpdGggdGhlIGJlbG93IGRl
c2lnbi4gQ291bGQgeW91IHBsZWFzZSBsZXQgbWUga25vdyB5b3VyIG9waW5pb24gYWJvdXQgdGhl
IGRlc2lnbj8NCj4NCj4NCj4gZ25vbWUgQlQgbWdyDQo+IHwNCj4gfA0KPiB8DQo+IHYNCj4gREJV
UyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBEQlVTDQo+IHwgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgXg0KPiB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIHwNCj4gfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8KGdfZGJ1c19y
ZWdfaW50ZikNCj4gdiDCoCDCoCDCoCAoYXR0aW9fY2IpIMKgIMKgIMKgfA0KPiBkZXZpY2UgPC0t
LS0tLS0tLS0+IEhJRG92ZXJHQVRUcGx1Z2luDQo+IF4oc29jaykgwqAgwqAgwqAgwqAgwqAgwqAg
XiDCoF4gwqAgwqAgXiDCoCB8DQo+IHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoHwg
wqAgwqAgfCDCoCB8DQo+IHwgwqAgwqAgwqAobm90aWZ5X2J1ZmYpfCDCoHwgwqAgwqAgfCDCoCB8
DQo+IHwtLS0tLS0tLS0tLS0tLS0tPiBHQVRUUklCIMKgIHwgwqAgfA0KPiB8IMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfCDCoCB8KGlvY3RsKEhJRFBDT05OQURELCBI
SURQX1NDQU5LRVkpKQ0KPiB8IMKgIMKgIMKgIMKgIMKgIMKgKD8/b3V0cHV0cmVwb3J0IHwgwqAg
fA0KPiB8IMKgIMKgIMKgIMKgIMKgIMKgTm90aW1wbGVtZW50ZWQpIHwgwqAgfCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFVTDQo+IC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0NCj4gfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoHwgwqAgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoEtTDQo+IHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqB8IMKgIHwNCj4gfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwg
wqAgVg0KPiB2KHNvY2spIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIChzb2NrKQ0KPiBM
MkNBUCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoEhJRFA8LS0tLS0tLS0tLS0t
LS0tPklucHV0IFN1YnN5c3RlbQ0KPg0KPg0KPiBUaGFua3MsDQo+IFZpamF5DQo+DQo+IC0tLS0t
T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGxpbnV4LWJsdWV0b290aC1vd25lckB2Z2Vy
Lmtlcm5lbC5vcmcgW21haWx0bzpsaW51eC1ibHVldG9vdGgtb3duZXJAdmdlci5rZXJuZWwub3Jn
XSBPbiBCZWhhbGYgT2YgR2FuaXIsIENoZW4NCj4gU2VudDogTW9uZGF5LCBNYXJjaCAxMiwgMjAx
MiAxMTozMiBBTQ0KPiBUbzogQ2xhdWRpbyBUYWthaGFzaQ0KPiBDYzogbGludXgtYmx1ZXRvb3Ro
QHZnZXIua2VybmVsLm9yZw0KPiBTdWJqZWN0OiBSRTogSElEIE92ZXIgR0FUVCBpbXBsZW1lbnRh
dGlvbg0KPg0KPiBDbGF1ZGlvLA0KPg0KPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+
IEZyb206IENsYXVkaW8gVGFrYWhhc2kgW21haWx0bzpjbGF1ZGlvLnRha2FoYXNpQG9wZW5ib3Nz
YS5vcmddDQo+PiBTZW50OiBNb25kYXksIE1hcmNoIDEyLCAyMDEyIDI6MTIgQU0NCj4+IFRvOiBH
YW5pciwgQ2hlbg0KPj4gQ2M6IGxpbnV4LWJsdWV0b290aEB2Z2VyLmtlcm5lbC5vcmcNCj4+IFN1
YmplY3Q6IFJlOiBISUQgT3ZlciBHQVRUIGltcGxlbWVudGF0aW9uDQo+Pg0KPj4gSGkgQ2hlbiBH
YW5pciwNCj4+DQo+PiBPbiBTdW4sIE1hciAxMSwgMjAxMiBhdCA5OjU0IEFNLCBHYW5pciwgQ2hl
biA8Y2hlbi5nYW5pckB0aS5jb20+IHdyb3RlOg0KPj4gPiBIaS4NCj4+ID4NCj4+ID4gSSBoYXZl
IHN0YXJ0ZWQgdGhlIGRldmVsb3BtZW50IG9mIHRoZSBIT0dQIChISUQgT3ZlciBHQVRUIFByb3Rv
Y29sKQ0KPj4gZm9yIHRoZSBCbHVlWiBTdGFjay4gVGhlIG1haW4gaWRlYSBvZiB0aGlzIGFkb3B0
ZWQgcHJvZmlsZSBpcyB0byBhbGxvdw0KPj4gSElEIGRldmljZXMgdG8gb3BlcmF0ZSBvdmVyIHRo
ZSBsb3cgZW5lcmd5IHRlY2hub2xvZ3kuDQo+PiA+DQo+PiA+IFRoZSBISUQgT3ZlciBHQVRUIFBy
b2ZpbGUgaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBzZXJ2aWNlcyA6DQo+PiA+IDEuIEJhdHRlcnkg
U2VydmljZSAtIGFsbG93cyB0aGUgaG9zdCB0byBnYXRoZXIgYW5kIGRpc3BsYXkNCj4+IGluZm9y
bWF0aW9uIHJlZ2FyZGluZyB0aGUgcGVlciBkZXZpY2UgYmF0dGVyeS9iYXR0ZXJpZXMgc3RhdGUu
DQo+PiA+IDIuIERldmljZSBJbmZvcm1hdGlvbiBTZXJ2aWNlIC0gVGhpcyBzZXJ2aWNlIGNvbnRh
aW5zIG1pc2MNCj4+IGlkZW50aWZpY2F0aW9uIGRhdGEgb2YgYSBkZXZpY2UuIFRoZSBIT0dQIHdp
bGwgdXNlIHRoZSBQTlAgSUQgZmllbGQuDQo+Pg0KPj4gQ291bGQgeW91IHBsZWFzZSBleHBsYWlu
IGhvdyBhcmUgeW91IHBsYW5uaW5nIHRvIHNoYXJlIGJhdHRlcnkgbGV2ZWwNCj4+IGFuZCBQTlAg
SUQgdG8gSG9HIHNlcnZpY2U/DQo+Pg0KPj4gZGV2aWNlLmMgY2FuIGhhdmUgZnVuY3Rpb24gdG8g
Z2V0L3NldCBCYXR0ZXJ5IExldmVsIGFuZCBQTlAgSUQuIElNTywNCj4+IG9ubHkgQmF0dGVyeSBM
ZXZlbCBjb3VsZCBiZSBleHBvcnRlZCBpbiB0aGUgRGV2aWNlIGludGVyZmFjZShpbnN0ZWFkDQo+
PiBvZiBjcmVhdGluZyBhIG5ldyBpbnRlcmZhY2UgZm9yIEJhdHRlcnkpLg0KPj4NCj4gUE5QIElE
IChvciBhbnkgb3RoZXIgRGV2aWNlSW5mb3JtYXRpb24gZGF0YSkgYW5kIEJhdHRlcnkgbGV2ZWwg
d2lsbCBiZSBwYXJ0IG9mIHRoZSBidGRfZGV2aWNlIChsYXRlciBwYXRjaCkuIERldmljZSB3aWxs
IGhhdmUgZnVuY3Rpb25hbGl0eSB0byBnZXQvc2V0IHRoZSBpbmZvcm1hdGlvbiAoZ2V0IHdpbGwg
YmUgZXhwb3NlZCBleHRlcm5hbGx5LCBzZXQgd2lsbCBiZSBmb3IgdXNlIGJ5IHRoZSBwbHVnaW5z
KS4gTm8gc3BlY2lmaWMgZGJ1cyBBUEkgd2lsbCBiZSBjcmVhdGVkIGZvciBhbnkgb2YgdGhvc2Ug
cGx1Z2lucyAobm8gbmVlZCB0byBjcmVhdGUgYW4gYWRkaXRpb25hbCBpbnRlcmZhY2UpLiBEZXZp
Y2UgSW5mb3JtYXRpb24gaXMgcmVhZCBvbmNlIG9uIGNvbm5lY3Rpb24sIGFuZCB3aGVuIGl0IGlz
IHJlYWQsIHRoZSBwbHVnaW4gdXBkYXRlcyB0aGUgYnRkX2RldmljZSB3aXRoIHRoaXMgaW5mb3Jt
YXRpb24uIEFsbCBhdmFpbGFibGUgaW5mb3JtYXRpb24gd2lsbCBiZSByZWFkLiBUaGVyZSBpcyBu
byBuZWVkIHRvIHJlLXJlYWQgdGhpcyBkdXJpbmcgYW4gb25nb2luZyBjb25uZWN0aW9uLiBJZiB3
ZSBkbyBzZWUgYSByZWFzb24gdG8gZG8gdGhhdCwgd2UgY2FuIGFkZCBhIGRidXMgaW50ZXJmYWNl
IGZvciBpdCBsYXRlci4NCj4NCj4gUE5QIElEIGlzIGEgY29tcGxleCBkYXRhIHR5cGUuIEl0IGNv
bnRhaW5zIDQgZGlmZmVyZW50IGVsZW1lbnRzLCB3aGljaCB3aWxsIGJlIGV4cG9zZWQgdXNpbmcg
YSB1bmlxdWUgc3RydWN0dXJlIGNvbnRhaW5pbmcgYWxsIHRob3NlIHZhbHVlcy4NCj4NCj4gQmF0
dGVyeSBpbmZvcm1hdGlvbiB3aWxsIGJlIHJlYWQgb25jZSwgYW5kIGNvbmZpZ3VyZWQgZm9yIG5v
dGlmaWNhdGlvbnMgaWYgcG9zc2libGUgKGFsbCBkb25lIGF1dG9tYXRpY2FsbHkgdXBvbiBjb25u
ZWN0aW9uKS4gQmF0dGVyeSBsZXZlbCBjaGFuZ2VzIHdpbGwgYmUgZXhwb3NlZCB1c2luZyBELUJV
UyBldmVudCAoUHJvcGVydHlDaGFuZ2VkIDogQmF0dGVyeUxldmVsKS4NCj4NCj4gQmF0dGVyeSBs
ZXZlbCBpcyBhbiBpbnRlZ2VyIG51bWJlciwgaW4gdGhlIHJhbmdlIG9mIDAtMTAwLiBUaGUgYmF0
dGVyeSBsZXZlbCBhbHNvIGhhcyBhIGZvcm1hdCBjaGFyYWN0ZXJpc3RpYyBkZXNjcmlwdG9yLCB3
aGljaCBjb250YWlucyBhIHVuaXF1ZSBuYW1lc3BhY2UvZGVzY3JpcHRpb24gdmFsdWUgd2hpY2gg
d2lsbCBiZSB1c2VkIHRvIGlkZW50aWZ5IGEgc3BlY2lmaWMgYmF0dGVyeSwgd2hlbiB0aGVyZSBp
cyBtb3JlIHRoYW4gb25lIHNlcnZpY2UgYXZhaWxhYmxlLiBUaGlzIHZhbHVlIHdpbGwgYmUgcGFy
dCBvZiB0aGUgYmF0dGVyeSBsZXZlbCBzdHJ1Y3R1cmUgbGlzdCBvbiB0aGUgZGV2aWNlLCBhbmQg
SSBzdGlsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRvIGFkZCBpdCB0byB0aGUgYmF0dGVyeWxl
dmVsIGRidXMgcHJvcGVydHkgKG1heWJlIGFwcGVuZCBpdCB0byB0aGUgcHJvcGVydHkgbmFtZSwg
c3VjaCBhcyBCYXR0ZXJ5TGV2ZWwoMSkgb3Igc29tZXRoaW5nIGxpa2UgdGhpcyA/DQo+DQo+PiBC
UiwNCj4+IENsYXVkaW8NCj4NCj4gQ2hlbiBHYW5pciwNCj4gVGV4YXMgSW5zdHJ1bWVudHMuDQo+
IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4g77+9ey5u77+9K++/
ve+/ve+/ve+/ve+/ve+/ve+/vSsl77+977+9bHp3be+/ve+/vWLvv73rp7Lvv73vv71y77+977+9
eljvv73vv73vv73vv71o77+977+9Yu+/ve+/vV5u77+9cu+/ve+/ve+/vXrvv73vv73vv71o77+9
77+977+977+9Ju+/ve+/vSDvv71H77+977+977+9aO+/vQ0KPiBfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fDQo+ICjvv73pmo7vv73domoi77+977+977+9be+/ve+/ve+/
ve+/ve+/vXrvv73elu+/ve+/ve+/vWbvv73vv73vv71o77+977+977+9fu+/vW3vv70NCj4NCj4g
wqBUbyByZXBvcnQgdGhpcyBlbWFpbCBhcyBzcGFtIGNsaWNrIGh0dHBzOi8vd3d3Lm1haWxjb250
cm9sLmNvbS9zci93UXcwem1qUG9IZEpUWkd5T0NycmhnPT0gLg0KPg0KPg0KPiBNZW1iZXIgb2Yg
dGhlIENTUiBwbGMgZ3JvdXAgb2YgY29tcGFuaWVzLiBDU1IgcGxjIHJlZ2lzdGVyZWQgaW4gRW5n
bGFuZCBhbmQgV2FsZXMsIHJlZ2lzdGVyZWQgbnVtYmVyIDQxODczNDYsIHJlZ2lzdGVyZWQgb2Zm
aWNlIENodXJjaGlsbCBIb3VzZSwgQ2FtYnJpZGdlIEJ1c2luZXNzIFBhcmssIENvd2xleSBSb2Fk
LCBDYW1icmlkZ2UsIENCNCAwV1osIFVuaXRlZCBLaW5nZG9tDQo+IE1vcmUgaW5mb3JtYXRpb24g
Y2FuIGJlIGZvdW5kIGF0IHd3dy5jc3IuY29tLiBGb2xsb3cgQ1NSIG9uIFR3aXR0ZXIgYXQgaHR0
cDovL3R3aXR0ZXIuY29tL0NTUl9QTEMgYW5kIHJlYWQgb3VyIGJsb2cgYXQgd3d3LmNzci5jb20v
YmxvZw0K

2012-03-15 13:16:31

by Andre Guedes

[permalink] [raw]
Subject: Re: HID Over GATT implementation

Hi Vijay,

Is this implementation public anywhere?

On Thu, Mar 15, 2012 at 6:47 AM, Vijaykumar Dadmode
<[email protected]> wrote:
>
> Hi,
>
>>> 3. HID Service - This service contains the main logic for the HOGP, and acts as a proxy between the remote device and the >> local HID subsystems.
>
> I had the HOG Device implemented/tested with the below design. Could you please let me know your opinion about the design?
>
>
> gnome BT mgr
> |
> |
> |
> v
> DBUS                         DBUS
> |                       ^
> |                       |
> |                       |(g_dbus_reg_intf)
> v       (attio_cb)      |
> device <----------> HIDoverGATTplugin
> ^(sock)             ^  ^     ^   |
> |                   |  |     |   |
> |      (notify_buff)|  |     |   |
> |----------------> GATTRIB   |   |
> |                            |   |(ioctl(HIDPCONNADD, HIDP_SCANKEY))
> |            (??outputreport |   |
> |            Notimplemented) |   |                                      US
> ----------------------------------------------------------------------------
> |                            |   |                                      KS
> |                            |   |
> |                            |   V
> v(sock)                     (sock)
> L2CAP                        HIDP<--------------->Input Subsystem
>
>
> Thanks,
> Vijay
>
> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On Behalf Of Ganir, Chen
> Sent: Monday, March 12, 2012 11:32 AM
> To: Claudio Takahasi
> Cc: [email protected]
> Subject: RE: HID Over GATT implementation
>
> Claudio,
>
>> -----Original Message-----
>> From: Claudio Takahasi [mailto:[email protected]]
>> Sent: Monday, March 12, 2012 2:12 AM
>> To: Ganir, Chen
>> Cc: [email protected]
>> Subject: Re: HID Over GATT implementation
>>
>> Hi Chen Ganir,
>>
>> On Sun, Mar 11, 2012 at 9:54 AM, Ganir, Chen <[email protected]> wrote:
>> > Hi.
>> >
>> > I have started the development of the HOGP (HID Over GATT Protocol)
>> for the BlueZ Stack. The main idea of this adopted profile is to allow
>> HID devices to operate over the low energy technology.
>> >
>> > The HID Over GATT Profile includes the following services :
>> > 1. Battery Service - allows the host to gather and display
>> information regarding the peer device battery/batteries state.
>> > 2. Device Information Service - This service contains misc
>> identification data of a device. The HOGP will use the PNP ID field.
>>
>> Could you please explain how are you planning to share battery level
>> and PNP ID to HoG service?
>>
>> device.c can have function to get/set Battery Level and PNP ID. IMO,
>> only Battery Level could be exported in the Device interface(instead
>> of creating a new interface for Battery).
>>
> PNP ID (or any other DeviceInformation data) and Battery level will be part of the btd_device (later patch). Device will have functionality to get/set the information (get will be exposed externally, set will be for use by the plugins). No specific dbus API will be created for any of those plugins (no need to create an additional interface). Device Information is read once on connection, and when it is read, the plugin updates the btd_device with this information. All available information will be read. There is no need to re-read this during an ongoing connection. If we do see a reason to do that, we can add a dbus interface for it later.
>
> PNP ID is a complex data type. It contains 4 different elements, which will be exposed using a unique structure containing all those values.
>
> Battery information will be read once, and configured for notifications if possible (all done automatically upon connection). Battery level changes will be exposed using D-BUS event (PropertyChanged : BatteryLevel).
>
> Battery level is an integer number, in the range of 0-100. The battery level also has a format characteristic descriptor, which contains a unique namespace/description value which will be used to identify a specific battery, when there is more than one service available. This value will be part of the battery level structure list on the device, and I still need to figure out how to add it to the batterylevel dbus property (maybe append it to the property name, such as BatteryLevel(1) or something like this ?
>
>> BR,
>> Claudio
>
> Chen Ganir,
> Texas Instruments.
> ________________________________________
> �{.n�+�������+%��lzwm��b�맲��r��zX����h��b��^n�r���z���h����&�� �G���h�
> ________________________________________
> (�階�ݢj"���m�����z�ޖ���f���h���~�m�
>
>  To report this email as spam click https://www.mailcontrol.com/sr/wQw0zmjPoHdJTZGyOCrrhg== .
>
>
> Member of the CSR plc group of companies. CSR plc registered in England and Wales, registered number 4187346, registered office Churchill House, Cambridge Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom
> More information can be found at http://www.csr.com. Follow CSR on Twitter at http://twitter.com/CSR_PLC and read our blog at http://www.csr.com/blog