Skip to content
Snippets Groups Projects
Verified Commit 2db55924 authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Fix button actions for connect

parent ca60846b
No related branches found
No related tags found
No related merge requests found
......@@ -13,20 +13,30 @@ class DeviceListWidget(Widget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self._devices_buttons_map = {}
self._previous_addresses = {}
@mainthread
def update_device_buttons(self, buttons_map):
Logger.debug("Updating device buttons")
Logger.info("Updating device buttons")
self.device_buttons.clear_widgets()
for address, info in buttons_map.items():
if address in self._previous_addresses:
Logger.info("Button for %s already there, skipping" % address)
continue
label, cb_connect = info
Logger.debug("Adding button for %s (%s)" % (address, label))
Logger.info("Adding button for %s (%s)" % (address, label))
btn = Button(text=label, on_press=cb_connect)
self.device_buttons.add_widget(btn)
self._previous_addresses[address] = btn
for address in self._previous_addresses:
if address not in self._previous_addresses:
Logger.info("%s no longer in device list, removing button" % address)
self.remove_widget(self._previous_addresses[address])
del self._previous_addresses[address]
class MynitCompanionApp(App):
......@@ -36,7 +46,7 @@ class MynitCompanionApp(App):
self._bluetooth = MynitBluetooth(self)
def update_device_list(self, devices):
Logger.debug("Updating device buttons")
Logger.info("Updating device buttons")
buttons_map = {}
for device in devices:
......
......@@ -34,7 +34,7 @@ class MynitBluetooth(BluetoothDispatcher):
def connect_by_device_address(self, address):
Logger.info("Connecting to %s" % address)
self.stop_scan()
self.close_gatt()
return super().connect_by_device_address(address)
def on_connection_state_change(self, status, state):
......@@ -42,14 +42,14 @@ class MynitBluetooth(BluetoothDispatcher):
if status == GATT_SUCCESS and state:
Logger.info("Connection successful, discovering services")
self._current_device = device
self.stop_scan()
self.discover_services()
else:
Logger.warning("Connection failed, disconnecting and resetting")
self.close_gatt()
self._current_device = None
self._characteristics = None, None
self.start_scan()
def on_services(self, status, services):
Logger.debug("Services discovered: %s" % services)
self._characteristics = (services.search(_UART_SERVICE_TX_UUID), services.search(_UART_SERVICE_RX_UUID))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment