From: "Urbani, Edmund" <edmund.urbani@lilandit.com>
To: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
Cc: "linux-bluetooth@vger.kernel.org" <linux-bluetooth@vger.kernel.org>
Subject: Re: Registering a GATT service via DBus
Date: Wed, 12 Aug 2015 13:32:45 +0200 [thread overview]
Message-ID: <55CB2EDD.3060200@LilandIT.com> (raw)
In-Reply-To: <CABBYNZ+ZaPSKQ6SmFW3hdpT33c3zwAK-z3TAGuyUdxQ7mzqfFQ@mail.gmail.com>
On 08/12/2015 01:24 PM, Luiz Augusto von Dentz wrote:
> Hi Edmund,
>
> On Wed, Aug 12, 2015 at 12:16 PM, Urbani, Edmund
> <edmund.urbani@lilandit.com> wrote:
>> On 08/12/2015 10:02 AM, Anupam Roy 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?
>>>
>>>> Kind regards,
>>>> Edmund
>>>>
>>>> PS: I'm using BlueZ 5.32
>>>
>> I think I need to clarify that I have exported two objects. The
>> ObjectManager (path "/" with interface org.freedesktop.DBus.ObjectManager),
>> and the GattService (path "/com/lilandit/iventcloud/skg/service" with
>> interface org.bluez.GattService1). Is this OK, or should I have one object
>> that implements both interfaces?
> We expect ObjectManager to be in the path where the GattService is in in '/'.
>
>> Note that GetManagedObjects is never called (nor are any other methods I
>> implemented, each of which has a log statement right there in the first
>> line).
> Because ObjectManager interface is in a different path which
> bluetoothd has no idea of.
>
>
I am now making some progress with one class implementing both interfaces. At
last, I am receiving method calls.
Thanks!
Kind regards,
Edmund
next prev parent reply other threads:[~2015-08-12 11:32 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-12 8:02 Registering a GATT service via DBus Anupam Roy
2015-08-12 8:18 ` Luiz Augusto von Dentz
2015-08-12 9:16 ` Urbani, Edmund
2015-08-12 11:24 ` Luiz Augusto von Dentz
2015-08-12 11:32 ` Urbani, Edmund [this message]
-- strict thread matches above, loose matches on Subject: below --
2015-08-12 6:12 Urbani, Edmund
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55CB2EDD.3060200@LilandIT.com \
--to=edmund.urbani@lilandit.com \
--cc=linux-bluetooth@vger.kernel.org \
--cc=luiz.dentz@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).