Skip to content

Commit

Permalink
gattlib-py/adapter: Catch error on opening/closing BLE adapter
Browse files Browse the repository at this point in the history
  • Loading branch information
oliviermartin committed Apr 4, 2024
1 parent 53e6c2c commit 67ff1de
Showing 1 changed file with 21 additions and 17 deletions.
38 changes: 21 additions & 17 deletions gattlib-py/gattlib/adapter.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,26 +64,30 @@ def open(self):
self._lock.acquire()
if self._is_opened:
self._lock.release()
return 0

self._adapter = c_void_p(None)
ret = gattlib_adapter_open(self._name, byref(self._adapter))
if ret == 0:
self._is_opened = True
if self._name is None:
self._name = gattlib_adapter_get_name(self._adapter)
self._lock.release()
return ret
return

try:
self._adapter = c_void_p(None)
ret = gattlib_adapter_open(self._name, byref(self._adapter))
if ret == 0:
self._is_opened = True
if self._name is None:
self._name = gattlib_adapter_get_name(self._adapter)
else:
handle_return(ret)
finally:
self._lock.release()

def close(self):
self._lock.acquire()
ret = 0
if self._adapter:
ret = gattlib.gattlib_adapter_close(self._adapter)
self._is_opened = False
self._adapter = None
self._lock.release()
return ret
try:
if self._adapter:
ret = gattlib.gattlib_adapter_close(self._adapter)
handle_return(ret)
self._is_opened = False
self._adapter = None
finally:
self._lock.release()

# Use a closure to return a method that can be called by the C-library (see: https://stackoverflow.com/a/7261524/6267288)
def get_on_discovered_device_callback(self):
Expand Down

0 comments on commit 67ff1de

Please sign in to comment.