[WIP] Testing out models for storing discovered devices
This commit is contained in:
parent
dd92c21ab1
commit
20c26c193d
|
@ -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)
|
|
@ -5,11 +5,15 @@ from bleak import BleakScanner
|
||||||
from bleak.backends.device import BLEDevice
|
from bleak.backends.device import BLEDevice
|
||||||
from bleak.backends.scanner import AdvertisementData
|
from bleak.backends.scanner import AdvertisementData
|
||||||
|
|
||||||
|
from .models import DiscoveredDevice
|
||||||
|
|
||||||
|
|
||||||
def discover_callback(device: BLEDevice, advertising_data: AdvertisementData):
|
def discover_callback(device: BLEDevice, advertising_data: AdvertisementData):
|
||||||
print(
|
if len(advertising_data.service_uuids) > 0:
|
||||||
f"[{advertising_data.rssi:-4d}] {device.address} - {device.name} with {len(advertising_data.service_uuids)} services"
|
discovered = DiscoveredDevice(device, advertising_data)
|
||||||
)
|
print(
|
||||||
|
f"[{advertising_data.rssi:-4d}] {device.address} - {device.name} [{discovered}]"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
async def discover_devices():
|
async def discover_devices():
|
||||||
|
|
Loading…
Reference in New Issue