gatt-python icon indicating copy to clipboard operation
gatt-python copied to clipboard

remove_all_devices raises a DBusException

Open ashesman opened this issue 6 years ago • 4 comments

A DBusException can be propagated out of remove_all_devices. I would expect that the user would never see DBus exceptions as are platform specific...

self._manager.remove_all_devices() File "/usr/local/lib/python3.6/dist-packages/gatt/gatt_linux.py", line 221, in remove_all_devices self._adapter.RemoveDevice(path) File "/usr/lib/python3/dist-packages/dbus/proxies.py", line 70, in call return self._proxy_method(*args, **keywords) File "/usr/lib/python3/dist-packages/dbus/proxies.py", line 145, in call **keywords) File "/usr/lib/python3/dist-packages/dbus/connection.py", line 651, in call_blocking message, timeout) dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method "RemoveDevice" with signature "s" on interface "org.bluez.Adapter1" doesn't exist

ashesman avatar Aug 16 '19 00:08 ashesman

This error can happen when your bluez library is too old. Which version are you using?

larsblumberg avatar Aug 16 '19 09:08 larsblumberg

I am using V5.48. My thoughts on this were that a DBusException should never propagate as far as user code. Should be caught inside the library.

ashesman avatar Aug 19 '19 01:08 ashesman

Exactly, user code should not receive such exceptions - with that thought in mind I wrote this library. I am surprised you're getting this error, that's why I was asking for your bluez version. I wrote this library when bluez 4.43 was the latest version but I can only hardly imagine that they removed the "RemoveDevice" from the bluez API in the version you're using.

larsblumberg avatar Aug 19 '19 05:08 larsblumberg

Over the past few weeks, I have received a heap of exceptions due to missing attributes. Mostly using the Adafruit BluefruitLE library. That was the reason I switched to this library, which has been 100 time more robust! RemoveDevice is there normally and works fine, just at that point in time it decided not to be!

ashesman avatar Aug 19 '19 20:08 ashesman