from typing import List
from ..service import BleakGATTService
from .characteristic import BleakGATTCharacteristicBlueZDBus
from .utils import extract_service_handle_from_path
[docs]class BleakGATTServiceBlueZDBus(BleakGATTService):
"""GATT Service implementation for the BlueZ DBus backend"""
def __init__(self, obj, path):
super().__init__(obj)
self.__characteristics = []
self.__path = path
self.__handle = extract_service_handle_from_path(path)
@property
def uuid(self) -> str:
"""The UUID to this service"""
return self.obj["UUID"]
@property
def handle(self) -> int:
"""The integer handle of this service"""
return self.__handle
@property
def characteristics(self) -> List[BleakGATTCharacteristicBlueZDBus]:
"""List of characteristics for this service"""
return self.__characteristics
[docs] def add_characteristic(self, characteristic: BleakGATTCharacteristicBlueZDBus):
"""Add a :py:class:`~BleakGATTCharacteristicBlueZDBus` to the service.
Should not be used by end user, but rather by `bleak` itself.
"""
self.__characteristics.append(characteristic)
@property
def path(self):
"""The DBus path. Mostly needed by `bleak`, not by end user"""
return self.__path