linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

  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).