src.bluetooth_sig.gatt.characteristics.descriptor_mixin¶
Descriptor support mixin for GATT characteristics.
Provides all descriptor-related methods (add, get, CCCD, context lookups)
as a mixin that BaseCharacteristic inherits from.
Classes¶
Name | Description |
|---|---|
Mixin providing descriptor management and context lookup helpers. |
Module Contents¶
- class src.bluetooth_sig.gatt.characteristics.descriptor_mixin.DescriptorMixin¶
Mixin providing descriptor management and context lookup helpers.
Expects the consuming class to initialise
_descriptorsas an emptydict[str, BaseDescriptor]in__init__.- add_descriptor(descriptor: src.bluetooth_sig.gatt.descriptors.BaseDescriptor) None¶
Add a descriptor to this characteristic.
- Parameters:
descriptor – The descriptor instance to add.
- can_notify() bool¶
Check if this characteristic supports notifications.
- Returns:
Trueif the characteristic has a CCCD descriptor.
- enhance_error_message_with_descriptors(base_message: str, ctx: src.bluetooth_sig.gatt.context.CharacteristicContext | None = None) str¶
Enhance error message with descriptor information for better debugging.
- Parameters:
base_message – Original error message.
ctx – Characteristic context containing descriptors.
- Returns:
Enhanced error message with descriptor context.
- get_cccd() src.bluetooth_sig.gatt.descriptors.BaseDescriptor | None¶
Get the Client Characteristic Configuration Descriptor (CCCD).
- Returns:
CCCD descriptor instance if present,
Noneotherwise.
- get_descriptor(uuid: str | src.bluetooth_sig.types.uuid.BluetoothUUID) src.bluetooth_sig.gatt.descriptors.BaseDescriptor | None¶
Get a descriptor by UUID.
- Parameters:
uuid – Descriptor UUID (string or BluetoothUUID).
- Returns:
Descriptor instance if found,
Noneotherwise.
- get_descriptor_from_context(ctx: src.bluetooth_sig.gatt.context.CharacteristicContext | None, descriptor_class: type[src.bluetooth_sig.gatt.descriptors.BaseDescriptor]) src.bluetooth_sig.types.registry.descriptor_types.DescriptorData | None¶
Get a descriptor of the specified type from the context.
- Parameters:
ctx – Characteristic context containing descriptors.
descriptor_class – The descriptor class to look for.
- Returns:
DescriptorData if found,
Noneotherwise.
- get_descriptors() dict[str, src.bluetooth_sig.gatt.descriptors.BaseDescriptor]¶
Get all descriptors for this characteristic.
- Returns:
Dict mapping descriptor UUID strings to descriptor instances.
- get_presentation_format_from_context(ctx: src.bluetooth_sig.gatt.context.CharacteristicContext | None = None) src.bluetooth_sig.gatt.descriptors.characteristic_presentation_format.CharacteristicPresentationFormatData | None¶
Get presentation format from descriptor context if available.
- Parameters:
ctx – Characteristic context containing descriptors.
- Returns:
CharacteristicPresentationFormatData if present,
Noneotherwise.
- get_user_description_from_context(ctx: src.bluetooth_sig.gatt.context.CharacteristicContext | None = None) str | None¶
Get user description from descriptor context if available.
- Parameters:
ctx – Characteristic context containing descriptors.
- Returns:
User description string if present,
Noneotherwise.
- get_valid_range_from_context(ctx: src.bluetooth_sig.gatt.context.CharacteristicContext | None = None) tuple[int | float, int | float] | None¶
Get valid range from descriptor context if available.
- Parameters:
ctx – Characteristic context containing descriptors.
- Returns:
Tuple of (min, max) values if Valid Range descriptor present,
Noneotherwise.
- validate_value_against_descriptor_range(value: float, ctx: src.bluetooth_sig.gatt.context.CharacteristicContext | None = None) bool¶
Validate a value against descriptor-defined valid range.
- Parameters:
value – Value to validate.
ctx – Characteristic context containing descriptors.
- Returns:
Trueif value is within valid range or no range defined.