src.bluetooth_sig.advertising¶
BLE Advertising data parsing and interpretation framework.
Two-layer architecture: - AdvertisingPDUParser: Low-level BLE PDU parsing (raw bytes → AD structures) - PayloadInterpreter[T]: Base class for payload interpretation (service data + manufacturer data) - AdvertisingServiceResolver: Map service UUIDs → GATT service classes - SIGCharacteristicInterpreter: Built-in interpreter for SIG characteristic service data - EAD: Encrypted advertising data support (Core Spec 1.23)
- State Management:
Interpreters do NOT manage state. The caller (connection manager, device tracker) owns the DeviceAdvertisingState and passes it to interpreters. Interpreters update state directly and raise exceptions for errors.
- Error Handling:
Interpreters raise exceptions (EncryptionRequiredError, DecryptionFailedError, etc.) instead of returning status codes. This is consistent with GATT characteristic parsing.
Submodules¶
- src.bluetooth_sig.advertising.base
- src.bluetooth_sig.advertising.ead_decryptor
- src.bluetooth_sig.advertising.encryption
- src.bluetooth_sig.advertising.exceptions
- src.bluetooth_sig.advertising.pdu_parser
- src.bluetooth_sig.advertising.registry
- src.bluetooth_sig.advertising.service_data_parser
- src.bluetooth_sig.advertising.service_resolver
- src.bluetooth_sig.advertising.sig_characteristic_interpreter
- src.bluetooth_sig.advertising.state