2023-05-16 23:04:03 +02:00
|
|
|
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):
|
2023-05-18 19:23:56 +02:00
|
|
|
if device not in self.devices:
|
2023-05-16 23:04:03 +02:00
|
|
|
self.devices.append(device)
|
|
|
|
|
|
|
|
def count(self):
|
|
|
|
return len(self.devices)
|