From: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
To: Barry Byford <31baz66@gmail.com>
Cc: Bluez mailing list <linux-bluetooth@vger.kernel.org>
Subject: Re: DBus LEAdvertisement and Python
Date: Thu, 18 Jul 2019 11:25:58 +0300 [thread overview]
Message-ID: <CABBYNZ+W8dG7qgAe-2QYnSkyVG_1eA4KtMKHyXws0LWwB346Ow@mail.gmail.com> (raw)
In-Reply-To: <CAAu3APas5syS3gYXN-BBqB=OcDZJjpPwND6qzOO1wSmbMq2U1Q@mail.gmail.com>
Hi Barry,
On Thu, Jul 18, 2019 at 10:03 AM Barry Byford <31baz66@gmail.com> wrote:
>
> Hello,
>
> The Python examples provided in the test directory of the BlueZ
> repository use the python-dbus library. Looking at the documentation
> of that library it does start by raising concerns and offering
> alternatives. I have been looking at some of the alternatives and am
> having difficultly getting them to work with BlueZ. I have been
> focusing on the org.bluez.LEAdvertisement1 interface.
>
> Looking at the documentation, it says the service, interface and
> object details are:
> Service org.bluez
> Interface org.bluez.LEAdvertisement1
> Object path freely definable
>
> I am not being successful at publishing to the org.bluez service. It
> is also not where the current examples publish to.
> Looking at the GattProfile1 documentation, it has service and object
> as application dependant.
> Service <application dependent>
> Interface org.bluez.GattProfile1
> Object path <application dependent>
> Should the documentation of Service on LEAdvertisement1 be freely
> definable also?
Yep, the bus name is up to the application which usually don't
register a friendly name if you try to register with 'org.bluez' it
would probably conflict with the daemon itself so you wouldn't be able
to register that name anyway.
> I have created the LEAdvertisement1 interface so that it has an
> ObjectManager and is introspectable. When I pass the object to
> RegisterAdvertisement on the org.bluez.LEAdvertisingManager1 interface
> it accepts it (does not give an error) but does not register the data
> and I see no advertisement appear. Is there somewhere I can find a
> more detailed description of what needs to be on the
> org.bluez.LEAdvertisement1 interface that will work with
> RegisterAdvertisement?
Do you have the bluetoothd output when you register, I get the
following when using bluetoothctl:
bluetooth]# power on
Changing power on succeeded
[bluetooth]# advertise on
[CHG] Controller B8:8A:60:D8:17:D7 SupportedInstances: 0x04
[CHG] Controller B8:8A:60:D8:17:D7 ActiveInstances: 0x01
Advertising object registered
Tx Power: off
Name: off
Apperance: off
Discoverable: off
[bluetooth]#
bluetoothd[6103]: src/advertising.c:client_create() Adding proxy for
/org/bluez/advertising
bluetoothd[6103]: src/advertising.c:register_advertisement()
Registered advertisement at path /org/bluez/advertising
bluetoothd[6103]: src/advertising.c:refresh_adv() Refreshing
advertisement: /org/bluez/advertising
bluetoothd[6103]: src/advertising.c:add_adv_callback() Advertisement
registered: /org/bluez/advertising
> For reference, I have put below what I am currently putting on the
> org.bluez.LEAdvertisement1 interface.
>
> Thanks,
> Barry
>
>
> $ busctl call ukBaz.bluezero /ukBaz/bluezero/advertisement1
> org.freedesktop.DBus.ObjectManager GetManagedObjects
> a{oa{sa{sv}}} 1 "/ukBaz/bluezero/advertisement1" 5
> "org.freedesktop.DBus.Properties" 0
> "org.freedesktop.DBus.Introspectable" 0 "org.freedesktop.DBus.Peer" 0
> "org.freedesktop.DBus.ObjectManager" 0 "org.bluez.LEAdvertisement1" 6
> "Type" s "broadcast" "ServiceUUIDs" as 0 "ManufacturerData" a{sv} 0
> "SolicitUUIDs" as 0 "ServiceData" a{sv} 1 "FEAA" ay 18 16 8 3 117 107
> 66 97 122 46 103 105 116 104 117 98 46 105 111 "IncludeTxPower" b
> false
Not sure if that is the problem but usually ObjectManager is suppose
to be on the '/' (root) path.
> $ busctl call ukBaz.bluezero /ukBaz/bluezero/advertisement1
> org.freedesktop.DBus.Properties GetAll s org.bluez.LEAdvertisement1
> a{sv} 6 "Type" s "broadcast" "ServiceUUIDs" as 0 "ManufacturerData"
> a{sv} 0 "SolicitUUIDs" as 0 "ServiceData" a{sv} 1 "FEAA" ay 18 16 8 3
> 117 107 66 97 122 46 103 105 116 104 117 98 46 105 111
> "IncludeTxPower" b false
>
> $ busctl call ukBaz.bluezero /ukBaz/bluezero/advertisement1
> org.freedesktop.DBus.Introspectable Introspect
> s "<!DOCTYPE node PUBLIC \"-//freedesktop//DTD D-BUS Object
> Introspection 1.0//EN\"\n
> \"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd\">\n<!--
> GDBus 2.60.4 -->\n<node>\n <interface
> name=\"org.freedesktop.DBus.Properties\">\n <method name=\"Get\">\n
> <arg type=\"s\" name=\"interface_name\" direction=\"in\"/>\n
> <arg type=\"s\" name=\"property_name\" direction=\"in\"/>\n <arg
> type=\"v\" name=\"value\" direction=\"out\"/>\n </method>\n
> <method name=\"GetAll\">\n <arg type=\"s\"
> name=\"interface_name\" direction=\"in\"/>\n <arg type=\"a{sv}\"
> name=\"properties\" direction=\"out\"/>\n </method>\n <method
> name=\"Set\">\n <arg type=\"s\" name=\"interface_name\"
> direction=\"in\"/>\n <arg type=\"s\" name=\"property_name\"
> direction=\"in\"/>\n <arg type=\"v\" name=\"value\"
> direction=\"in\"/>\n </method>\n <signal
> name=\"PropertiesChanged\">\n <arg type=\"s\"
> name=\"interface_name\"/>\n <arg type=\"a{sv}\"
> name=\"changed_properties\"/>\n <arg type=\"as\"
> name=\"invalidated_properties\"/>\n </signal>\n </interface>\n
> <interface name=\"org.freedesktop.DBus.Introspectable\">\n <method
> name=\"Introspect\">\n <arg type=\"s\" name=\"xml_data\"
> direction=\"out\"/>\n </method>\n </interface>\n <interface
> name=\"org.freedesktop.DBus.Peer\">\n <method name=\"Ping\"/>\n
> <method name=\"GetMachineId\">\n <arg type=\"s\"
> name=\"machine_uuid\" direction=\"out\"/>\n </method>\n
> </interface>\n <interface
> name=\"org.freedesktop.DBus.ObjectManager\">\n <method
> name=\"GetManagedObjects\">\n <arg type=\"a{oa{sa{sv}}}\"
> name=\"object_paths_interfaces_and_properties\" direction=\"out\">\n
> </arg>\n </method>\n <signal name=\"InterfacesAdded\">\n
> <arg type=\"o\" name=\"object_path\">\n </arg>\n <arg
> type=\"a{sa{sv}}\" name=\"interfaces_and_properties\">\n </arg>\n
> </signal>\n <signal name=\"InterfacesRemoved\">\n <arg
> type=\"o\" name=\"object_path\">\n </arg>\n <arg type=\"as\"
> name=\"interfaces\">\n </arg>\n </signal>\n </interface>\n
> <interface name=\"org.bluez.LEAdvertisement1\">\n <annotation
> name=\"org.freedesktop.DBus.Properties.PropertiesChanged\"
> value=\"const\">\n </annotation>\n <method name=\"Release\">\n
> <annotation name=\"org.freedesktop.DBus.Method.NoReply\"
> value=\"true\">\n </annotation>\n </method>\n <property
> type=\"s\" name=\"Type\" access=\"read\">\n </property>\n
> <property type=\"as\" name=\"ServiceUUIDs\" access=\"read\">\n
> </property>\n <property type=\"a{sv}\" name=\"ManufacturerData\"
> access=\"read\">\n </property>\n <property type=\"as\"
> name=\"SolicitUUIDs\" access=\"read\">\n </property>\n <property
> type=\"a{sv}\" name=\"ServiceData\" access=\"read\">\n
> </property>\n <property type=\"b\" name=\"IncludeTxPower\"
> access=\"read\">\n </property>\n </interface>\n</node>\n"
--
Luiz Augusto von Dentz
next prev parent reply other threads:[~2019-07-18 8:26 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-18 7:00 DBus LEAdvertisement and Python Barry Byford
2019-07-18 8:25 ` Luiz Augusto von Dentz [this message]
2019-07-18 21:04 ` Barry Byford
2019-07-20 16:44 ` Barry Byford
2019-07-24 9:37 ` Barry Byford
2019-07-24 10:44 ` Luiz Augusto von Dentz
2019-07-24 13:28 ` Barry Byford
2019-07-24 20:59 ` Barry Byford
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=CABBYNZ+W8dG7qgAe-2QYnSkyVG_1eA4KtMKHyXws0LWwB346Ow@mail.gmail.com \
--to=luiz.dentz@gmail.com \
--cc=31baz66@gmail.com \
--cc=linux-bluetooth@vger.kernel.org \
/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).