idasit/bleak/backends/winrt/service.py

43 lines
1.3 KiB
Python
Raw Normal View History

2024-12-14 14:55:37 +01:00
import sys
from typing import List
if sys.version_info >= (3, 12):
from winrt.windows.devices.bluetooth.genericattributeprofile import (
GattDeviceService,
)
else:
from bleak_winrt.windows.devices.bluetooth.genericattributeprofile import (
GattDeviceService,
)
from ..service import BleakGATTService
from ..winrt.characteristic import BleakGATTCharacteristicWinRT
class BleakGATTServiceWinRT(BleakGATTService):
"""GATT Characteristic implementation for the .NET backend, implemented with WinRT"""
def __init__(self, obj: GattDeviceService):
super().__init__(obj)
self.__characteristics = []
@property
def uuid(self) -> str:
return str(self.obj.uuid)
@property
def handle(self) -> int:
return self.obj.attribute_handle
@property
def characteristics(self) -> List[BleakGATTCharacteristicWinRT]:
"""List of characteristics for this service"""
return self.__characteristics
def add_characteristic(self, characteristic: BleakGATTCharacteristicWinRT):
"""Add a :py:class:`~BleakGATTCharacteristicWinRT` to the service.
Should not be used by end user, but rather by `bleak` itself.
"""
self.__characteristics.append(characteristic)