ESPHome 2026.8.0b4
Loading...
Searching...
No Matches
esphome::ble_device_base::AdvDispatcher Class Reference

The delivery half of a split-report tracker, shared so the dispatch contract (raw-callback ordering, raw_only gate, discovered-log policy) lives in one place. More...

#include <scan_response_merger.h>

Public Member Functions

void register_listener (ESPBTDeviceListener *listener)
 
void set_raw_advertisement_callback (RawAdvertisementCallback callback)
 
void dispatch (const uint8_t *mac, int8_t rssi, uint8_t addr_type, const uint8_t *data, uint8_t data_len, bool raw_only, const char *log_unclaimed_tag)
 Dispatch one (possibly merged) advertisement: the raw callback, and — unless raw_only — parsing for listeners/triggers.
 
void on_scan_end ()
 Fire listeners' on_scan_end and reset the per-scan discovered-log dedup.
 

Protected Attributes

RawAdvertisementCallback raw_callback_ {}
 
StaticVector< ESPBTDeviceListener *, ESPHOME_BLE_DEVICE_BASE_LISTENER_COUNT > listeners_
 
DiscoveredDeviceLog discovered_log_ {}
 

Detailed Description

The delivery half of a split-report tracker, shared so the dispatch contract (raw-callback ordering, raw_only gate, discovered-log policy) lives in one place.

Owns the members every tracker otherwise duplicates; the tracker's BLEHub methods delegate here.

Definition at line 42 of file scan_response_merger.h.

Member Function Documentation

◆ dispatch()

void esphome::ble_device_base::AdvDispatcher::dispatch ( const uint8_t * mac,
int8_t rssi,
uint8_t addr_type,
const uint8_t * data,
uint8_t data_len,
bool raw_only,
const char * log_unclaimed_tag )

Dispatch one (possibly merged) advertisement: the raw callback, and — unless raw_only — parsing for listeners/triggers.

raw_only marks unmatched scan-response frames: forwarded on the raw callback only, never parsed for local sensors/triggers (Home Assistant merges per address). log_unclaimed_tag: when non-null, a device no listener claimed is logged under this tag (esp32_ble_tracker parity: pass the tracker TAG on one-shot scans, nullptr on continuous scans, which would spam).

Definition at line 110 of file scan_response_merger.cpp.

◆ on_scan_end()

void esphome::ble_device_base::AdvDispatcher::on_scan_end ( )

Fire listeners' on_scan_end and reset the per-scan discovered-log dedup.

Definition at line 143 of file scan_response_merger.cpp.

◆ register_listener()

void esphome::ble_device_base::AdvDispatcher::register_listener ( ESPBTDeviceListener * listener)
inline

Definition at line 44 of file scan_response_merger.h.

◆ set_raw_advertisement_callback()

void esphome::ble_device_base::AdvDispatcher::set_raw_advertisement_callback ( RawAdvertisementCallback callback)
inline

Definition at line 49 of file scan_response_merger.h.

Field Documentation

◆ discovered_log_

DiscoveredDeviceLog esphome::ble_device_base::AdvDispatcher::discovered_log_ {}
protected

Definition at line 70 of file scan_response_merger.h.

◆ listeners_

StaticVector<ESPBTDeviceListener *, ESPHOME_BLE_DEVICE_BASE_LISTENER_COUNT> esphome::ble_device_base::AdvDispatcher::listeners_
protected

Definition at line 67 of file scan_response_merger.h.

◆ raw_callback_

RawAdvertisementCallback esphome::ble_device_base::AdvDispatcher::raw_callback_ {}
protected

Definition at line 63 of file scan_response_merger.h.


The documentation for this class was generated from the following files: