src.bluetooth_sig.device.dependency_resolver¶
Dependency resolution for characteristic reads.
Resolves required and optional dependencies before reading a characteristic,
building a CharacteristicContext will all resolved dependency values.
Attributes¶
Name | Description |
|---|---|
Classes¶
Name | Description |
|---|---|
Mode for automatic dependency resolution during characteristic reads. |
|
Resolves characteristic dependencies by reading them from the device. |
Module Contents¶
- class src.bluetooth_sig.device.dependency_resolver.DependencyResolutionMode(*args, **kwds)¶
Bases:
enum.EnumMode for automatic dependency resolution during characteristic reads.
- NORMAL¶
Auto-resolve dependencies, use cache when available
- SKIP_DEPENDENCIES¶
Skip dependency resolution and validation
- FORCE_REFRESH¶
Re-read dependencies from device, ignoring cache
- FORCE_REFRESH = 'force_refresh'¶
- NORMAL = 'normal'¶
- SKIP_DEPENDENCIES = 'skip_dependencies'¶
- class src.bluetooth_sig.device.dependency_resolver.DependencyResolver(connection_manager: src.bluetooth_sig.device.client.ClientManagerProtocol, connected: src.bluetooth_sig.device.connected.DeviceConnected)¶
Resolves characteristic dependencies by reading them from the device.
Encapsulates the logic for: - Discovering which dependencies a characteristic declares - Reading dependency values from the device (with caching) - Building a
CharacteristicContextfor the target characteristicUses
DeviceConnectedfor characteristic instance caching andClientManagerProtocolfor BLE reads.- async resolve(char_class: type[src.bluetooth_sig.gatt.characteristics.base.BaseCharacteristic[Any]], resolution_mode: DependencyResolutionMode, device_info: src.bluetooth_sig.gatt.context.DeviceInfo) src.bluetooth_sig.gatt.context.CharacteristicContext¶
Ensure all dependencies for a characteristic are resolved.
Automatically reads feature characteristics needed for validation of measurement characteristics. Feature characteristics are cached after first read.
- Parameters:
char_class – The characteristic class to resolve dependencies for
resolution_mode – How to handle dependency resolution
device_info – Current device info for context construction
- Returns:
CharacteristicContext with resolved dependencies
- Raises:
RuntimeError – If no connection manager is attached
- src.bluetooth_sig.device.dependency_resolver.logger¶