idasit/bleak/backends/p4android/descriptor.py

38 lines
1.4 KiB
Python
Raw Permalink Normal View History

2024-12-14 14:55:37 +01:00
from ..descriptor import BleakGATTDescriptor
class BleakGATTDescriptorP4Android(BleakGATTDescriptor):
"""GATT Descriptor implementation for python-for-android backend"""
def __init__(
self, java, characteristic_uuid: str, characteristic_handle: int, index: int
):
super(BleakGATTDescriptorP4Android, self).__init__(java)
self.__uuid = self.obj.getUuid().toString()
self.__characteristic_uuid = characteristic_uuid
self.__characteristic_handle = characteristic_handle
# many devices have sequential handles and this formula will mysteriously work for them
# it's possible this formula could make duplicate handles on other devices.
self.__fake_handle = self.__characteristic_handle + 1 + index
@property
def characteristic_handle(self) -> int:
"""handle for the characteristic that this descriptor belongs to"""
return self.__characteristic_handle
@property
def characteristic_uuid(self) -> str:
"""UUID for the characteristic that this descriptor belongs to"""
return self.__characteristic_uuid
@property
def uuid(self) -> str:
"""UUID for this descriptor"""
return self.__uuid
@property
def handle(self) -> int:
"""Integer handle for this descriptor"""
# 2021-01 The Android Bluetooth API does not appear to provide access to descriptor handles.
return self.__fake_handle