Hello Luiz & Travis, I've been taking a look at this also On 8 May 2017 at 09:01, Luiz Augusto von Dentz <luiz.dentz@xxxxxxxxx> wrote: > On Sat, May 6, 2017 at 1:28 AM, Travis Griggs <travisgriggs@xxxxxxxxx> wrote: >> $ sudo busctl get-property :1.5 /nic/twigpilot org.bluez.LEAdvertisement1 Type >> s “peripheral" >> >> So I *am* able to get the Type using busctl. Why is that bluetoothd cannot? Using busctl introspect, I see that the pydbus variant automagically makes a lot more available than the dubs-python variant did. >> >> Any hints? Pointers? Help? > > Does pydbus have ObjectManager support? Looking at the following entry in the libraries issue list it seems like it does. https://github.com/LEW21/pydbus/issues/28 Is there anything in particular we should be testing for? > What about GetAll properties? Yes it does. It creates these standard interfaces automatically based on the XML in the Python class doc string. So for example Get and GetAll give the following: $ busctl call ukBaz.bluezero /ukBaz/bluezero org.freedesktop.DBus.Properties Get ss org.bluez.LEAdvertisement1 Type v s "peripheral" $ busctl call ukBaz.bluezero /ukBaz/bluezero org.freedesktop.DBus.Properties GetAll s org.bluez.LEAdvertisement1 a{sv} 3 "Type" s "peripheral" "SolicitUUIDs" as 1 "180F" "IncludeTxPower" b false > You could perhaps try to sniff the message with eavesdrop option: > > https://wiki.ubuntu.com/DebuggingDBus Good suggestion. I'll try that later. > >> TIA >> >> —— >> >> #!/usr/bin/env python3 >> >> import pydbus >> from gi.repository import GLib >> >> class Advertisement(object): >> """ >> <node> >> <interface name="org.bluez.LEAdvertisement1"> >> <method name="Release"> >> <annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/> >> </method> >> <annotation name="org.freedesktop.DBus.Properties.PropertiesChanged" value="const"/> >> <property name="Type" type="s" access="read"/> >> <property name="ServiceUUIDs" type="as" access="read"/> >> <property name="ManufacturerData" type="a{sv}" access="read"/> >> <property name="SolicitUUIDs" type="as" access="read"/> >> <property name="ServiceData" type="a{sv}" access="read"/> >> <property name="IncludeTxPower" type="b" access="read"/> >> </interface> >> </node> >> """ >> >> def __init__(self, bus): >> self.Type = 'peripheral' >> self.ServiceUUIDs = [] >> self.ManufacturerData = {} >> self.SolicitUUIDs = [] >> self.ServiceData = {} >> self.IncludeTxPower = False >> bus.register_object('/nic/twigpilot', self, None) >> >> def Release(self): >> print('{}: Advertisement Released!'.format(self)) >> >> >> def main(): >> bus = pydbus.SystemBus() >> adaptor = bus.get('org.bluez', '/org/bluez/hci0') >> adaptor.Powered = True >> adaptor.Alias = 'SeeMe' >> >> advertisement = Advertisement(bus) >> advertisement.IncludeTxPower = True >> >> #adaptor.RegisterAdvertisement('/nic/twigpilot', {}) >> >> loop = GLib.MainLoop() >> try: >> loop.run() >> except KeyboardInterrupt: >> loop.quit() >> >> if __name__ == '__main__': >> main()-- >> 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 > > > > -- > 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 -- 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