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

Factor device list out into file

parent 85e83412
No related branches found
No related tags found
No related merge requests found
Pipeline #84213 failed
import asyncio
from kivy.app import App from kivy.app import App
from kivy.logger import Logger
from kivy.uix.button import Button
from kivy.uix.widget import Widget
from bleak import BleakScanner
UART_SERVICE_UUID = "6e400001-b5a3-f393-e0a9-e50e24dcca9e"
UART_SERVICE_TX_UUID = "6e400002-b5a3-f393-e0a9-e50e24dcca9e"
UART_SERVICE_RX_UUID = "6e400003-b5a3-f393-e0a9-e50e24dcca9e"
class DeviceListWidget(Widget):
device_buttons = None
_scan_task = None
def do_scan(self):
self.device_buttons.clear_widgets()
if not self._scan_task:
Logger.info("Starting device scan")
task = asyncio.create_task(BleakScanner.discover(detection_callback=self._new_device))
self._scan_task = task
task.add_done_callback(self._scan_finished)
else:
Logger.warn("Scan already running")
def _scan_finished(self, task):
self._scan_task = None
Logger.info("Scna finished")
def do_connect(self, address):
Logger.info(f"Connecting to device: {address}")
def _new_device(self, device, advertisement): from device_list import DeviceListWidget
Logger.info(f"New device discovered: {device}")
# FIXME Remove this filter
if device.name != "FroSCon-Wetter":
return
widget = self
btn = Button(text=device.name, on_press=lambda self: widget.do_connect(device.address))
self.device_buttons.add_widget(btn)
class MynitCompanionApp(App): class MynitCompanionApp(App):
......
import asyncio
from kivy.logger import Logger
from kivy.uix.button import Button
from kivy.uix.widget import Widget
from bleak import BleakScanner
UART_SERVICE_UUID = "6e400001-b5a3-f393-e0a9-e50e24dcca9e"
UART_SERVICE_TX_UUID = "6e400002-b5a3-f393-e0a9-e50e24dcca9e"
UART_SERVICE_RX_UUID = "6e400003-b5a3-f393-e0a9-e50e24dcca9e"
class DeviceListWidget(Widget):
device_buttons = None
_scan_task = None
def do_scan(self):
self.device_buttons.clear_widgets()
if not self._scan_task:
Logger.info("Starting device scan")
task = asyncio.create_task(BleakScanner.discover(detection_callback=self._new_device))
self._scan_task = task
task.add_done_callback(self._scan_finished)
else:
Logger.warn("Scan already running")
def _scan_finished(self, task):
self._scan_task = None
Logger.info("Scna finished")
def do_connect(self, address):
Logger.info(f"Connecting to device: {address}")
def _new_device(self, device, advertisement):
Logger.info(f"New device discovered: {device}")
# FIXME Remove this filter
if device.name != "FroSCon-Wetter":
return
widget = self
btn = Button(text=device.name, on_press=lambda self: widget.do_connect(device.address))
self.device_buttons.add_widget(btn)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment