2015-08-12 06:12:35

by Urbani, Edmund

[permalink] [raw]
Subject: Registering a GATT service via DBus

Hello,

my attempts to register a GATT service via DBus from Java have so far
been unsuccessful. The GattManager1.RegisterService method does not
return any reply, instead I simply get this timeout exception:
Exception in thread "main" org.freedesktop.DBus$Error$
NoReply: No reply within specified time

Also, all I see in the logs is the registration attempt, but no error:
Aug 11 14:42:02 raspberrypi bluetoothd[5466]:
src/gatt-database.c:manager_register_service() Registering service -
path: /com/lilandit/iventcloud/skg/service

Introspection of the service (with mdbus2 tool) shows this info (which
matches the specs as far as a DBus noob like I can tell):
[METHOD] org.bluez.GattService1.GetPrimary() -> (b:arg_0)
[METHOD] org.bluez.GattService1.GetDevice() -> (o:arg_0)
[METHOD] org.bluez.GattService1.GetUUID() -> (s:arg_0)
[METHOD] org.bluez.GattService1.GetCharacteristics() -> (ao:arg_0)
[METHOD] org.bluez.GattService1.GetIncludes() -> (ao:arg_0)
[METHOD] org.freedesktop.DBus.Introspectable.Introspect() -> (s:arg_0)
[METHOD] org.freedesktop.DBus.Peer.Ping() -> ()

The implementation of the service is incomplete (same applies to the
ObjectManager registered at "/"), however I was expecting to at least
get some feedback on registration and possibly see some of the service
methods being called at this point. Instead I get nothing.

Any ideas what may be wrong or where I should be looking for the cause?

Kind regards,
Edmund

PS: I'm using BlueZ 5.32