[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.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():
|
||||
|
|
Loading…
Reference in New Issue