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

Implement scanning for ESP devices with UART service

parent 6e3f40d7
No related branches found
No related tags found
No related merge requests found
Pipeline #76465 passed
from time import sleep
from able import BluetoothDispatcher
from able import BluetoothDispatcher, GATT_SUCCESS
from able.filters import ServiceUUIDFilter
from kivy.logger import Logger
_UART_SERVICE_UUID = "6e400001-b5a3-f393-e0a9-e50e24dcca9e"
class MynitBluetooth(BluetoothDispatcher):
def __init__(self, app, *args, **kwargs):
......@@ -10,9 +14,10 @@ class MynitBluetooth(BluetoothDispatcher):
self._app = app
self._available_devices = set()
self._current_device = None
Logger.info("Starting BLE scanning")
self.start_scan()
self.start_scan(filters=[ServiceUUIDFilter(_UART_SERVICE_UUID)])
def on_device(self, device, rssi, advertisement):
Logger.debug("BLE device discovered: %s" % device.getAddress())
......@@ -22,3 +27,18 @@ class MynitBluetooth(BluetoothDispatcher):
self._available_devices.add(device)
self._app.update_device_list(self._available_devices)
def on_connection_state_change(self, status, state):
Logger.debug("Connection state changed")
if status == GATT_SUCCESS and state:
Logger.info("Connection successful, discovering services")
self._current_device = device
self.discover_services()
else:
Logger.warning("Connection failed, disconnecting and resetting")
self.close_gatt()
self._current_device = None
def on_services(self, status, services):
pass
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