Re: Registering a GATT service via DBus

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Edmund, Anupam,

On Wed, Aug 12, 2015 at 11:02 AM, Anupam Roy <anupam.r@xxxxxxxxxxx> wrote:
> Hi Edmund,
>
>>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
>>
> As I understand, RegisterService DBUS method in gatt-database replies back to
> client only when client is fully ready. It happens when service is successfully created
> by gatt-database and all managed objects are successfully retrieved from client
> service and parsed by gdbus/client.c.
>
>>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
>>
> This print only only suggests that external service is created by gatt-database
>
>>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?
>>
> According to GATT API doc, client service should export ObjectManager interface
> on its client root path. If this is not done, then I think
> GetManagedObjects call from gdbus/client will fail and client ready
> will not be invoked and possibly DBUS timeout occurs.
>
> Is your service exporting ObjectManager interface on service root path?

We are currently discussing if the service interface shall be exposed
in the root path give, ObjectManager documentation has been documented
saying that only child path interfaces shall be returned. That said
the problem here is that GetManagedObjects probably never returns,
thus the request times out.


-- 
Luiz Augusto von Dentz
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux