forked from platypush/platypush
Fabio Manganiello
2411b961e8
- Merged together Bluetooth legacy and BLE plugins and scanners. - Introduced Theengs as a dependency to infer BLE device types and create sub-entities appropriately. - Using `BluetoothDevice` and `BluetoothService` entities as the bread and butter for all the Bluetooth plugin's components. - Using a shared cache of devices and services between the legacy and BLE integrations, with merging/coalescing logic included. - Extended list of discoverable services to include all those officially supported by the Bluetooth specs. - Instantiate a separate pool of workers to discover services. - Refactor of the Bluetooth events - all of them are now instantiated from a single `BluetoothDevice` object.
20 lines
477 B
Python
20 lines
477 B
Python
import asyncio
|
|
from dataclasses import dataclass
|
|
import threading
|
|
from typing import Optional
|
|
|
|
from bleak import BleakClient
|
|
from bleak.backends.device import BLEDevice
|
|
|
|
|
|
@dataclass
|
|
class BluetoothConnection:
|
|
"""
|
|
A class to store information and context about a Bluetooth connection.
|
|
"""
|
|
|
|
client: BleakClient
|
|
device: BLEDevice
|
|
loop: asyncio.AbstractEventLoop
|
|
close_event: Optional[asyncio.Event] = None
|
|
thread: Optional[threading.Thread] = None
|