[WIP] Testing out models for storing discovered devices

This commit is contained in:
jpk 2023-05-16 23:04:03 +02:00
parent dd92c21ab1
commit 20c26c193d
2 changed files with 29 additions and 3 deletions

View File

@ -0,0 +1,22 @@
from dataclasses import dataclass, field
from bleak.backends.device import BLEDevice
from bleak.backends.scanner import AdvertisementData
@dataclass
class DiscoveredDevice:
device: BLEDevice
services: AdvertisementData = field(repr=False)
@dataclass
class DiscoveredDevices:
devices: list[DiscoveredDevice] = field(default_factory=list)
def add(self, device: DiscoveredDevice):
if not device in self.devices:
self.devices.append(device)
def count(self):
return len(self.devices)

View File

@ -5,11 +5,15 @@ from bleak import BleakScanner
from bleak.backends.device import BLEDevice
from bleak.backends.scanner import AdvertisementData
from .models import DiscoveredDevice
def discover_callback(device: BLEDevice, advertising_data: AdvertisementData):
print(
f"[{advertising_data.rssi:-4d}] {device.address} - {device.name} with {len(advertising_data.service_uuids)} services"
)
if len(advertising_data.service_uuids) > 0:
discovered = DiscoveredDevice(device, advertising_data)
print(
f"[{advertising_data.rssi:-4d}] {device.address} - {device.name} [{discovered}]"
)
async def discover_devices():