From 8e5412a1a9fa4a83abb0b121622e05b07c9dadfe Mon Sep 17 00:00:00 2001 From: Olivier Martin Date: Mon, 19 Feb 2024 12:10:05 +0100 Subject: [PATCH] gattlib-py: Ensure BLE adapter is opened --- gattlib-py/gattlib/adapter.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gattlib-py/gattlib/adapter.py b/gattlib-py/gattlib/adapter.py index 8ace24b..0160f07 100644 --- a/gattlib-py/gattlib/adapter.py +++ b/gattlib-py/gattlib/adapter.py @@ -59,6 +59,7 @@ class Adapter: return [] def open(self): + self._adapter = c_void_p(None) ret = gattlib_adapter_open(self._name, byref(self._adapter)) if ret == 0: self._is_opened = True @@ -82,7 +83,7 @@ class Adapter: self.on_discovered_device_user_callback(device, user_data) except Exception as e: logger.exception(e) - return gattlib_discovered_device_type(on_discovered_device) + return on_discovered_device def scan_enable(self, on_discovered_device_callback, timeout, notify_change=False, uuids=None, rssi_threshold=None, user_data=None): """ @@ -106,8 +107,9 @@ class Adapter: # comment: https://stackoverflow.com/questions/7259794/how-can-i-get-methods-to-work-as-callbacks-with-python-ctypes#comment38658391_7261524 self.on_discovered_device_callback = self.get_on_discovered_device_callback() + # Ensure BLE adapter it opened if not self._is_opened: - raise AdapterNotOpened() + self.open() enabled_filters = 0 uuid_list = None @@ -183,8 +185,9 @@ class Adapter: user_data["callback"](device, advertisement_data, manufacturer_id, manufacturer_data, user_data["user_data"]) def scan_eddystone_enable(self, on_discovered_device_callback, eddystone_filters, timeout, rssi_threshold=None, user_data=None): + # Ensure BLE adapter it opened if not self._is_opened: - raise AdapterNotOpened() + self.open() rssi = 0