|
ESPHome 2025.10.3
|
#include <esp32_ble_tracker.h>
Public Member Functions | |
| void | set_scan_duration (uint32_t scan_duration) |
| void | set_scan_interval (uint32_t scan_interval) |
| void | set_scan_window (uint32_t scan_window) |
| void | set_scan_active (bool scan_active) |
| bool | get_scan_active () const |
| void | set_scan_continuous (bool scan_continuous) |
| void | setup () override |
| Setup the FreeRTOS task and the Bluetooth stack. | |
| void | dump_config () override |
| float | get_setup_priority () const override |
| void | loop () override |
| void | register_listener (ESPBTDeviceListener *listener) |
| void | register_client (ESPBTClient *client) |
| void | recalculate_advertisement_parser_types () |
| void | print_bt_device_info (const ESPBTDevice &device) |
| void | start_scan () |
| void | stop_scan () |
| void | gattc_event_handler (esp_gattc_cb_event_t event, esp_gatt_if_t gattc_if, esp_ble_gattc_cb_param_t *param) override |
| void | gap_event_handler (esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t *param) override |
| void | gap_scan_event_handler (const BLEScanResult &scan_result) override |
| void | ble_before_disabled_event_handler () override |
| void | add_scanner_state_callback (std::function< void(ScannerState)> &&callback) |
| ScannerState | get_scanner_state () const |
Public Member Functions inherited from esphome::Component | |
| float | get_actual_setup_priority () const |
| void | set_setup_priority (float priority) |
| virtual float | get_loop_priority () const |
| priority of loop(). | |
| void | call () |
| virtual void | on_shutdown () |
| virtual void | on_safe_shutdown () |
| virtual bool | teardown () |
| Called during teardown to allow component to gracefully finish operations. | |
| virtual void | on_powerdown () |
| Called after teardown is complete to power down hardware. | |
| uint8_t | get_component_state () const |
| void | reset_to_construction_state () |
| Reset this component back to the construction state to allow setup to run again. | |
| bool | is_in_loop_state () const |
| Check if this component has completed setup and is in the loop state. | |
| virtual void | mark_failed () |
| Mark this component as failed. | |
| void | mark_failed (const char *message) |
| void | disable_loop () |
| Disable this component's loop. | |
| void | enable_loop () |
| Enable this component's loop. | |
| void | enable_loop_soon_any_context () |
| Thread and ISR-safe version of enable_loop() that can be called from any context. | |
| bool | is_failed () const |
| bool | is_ready () const |
| virtual bool | can_proceed () |
| bool | status_has_warning () const |
| bool | status_has_error () const |
| void | status_set_warning (const char *message=nullptr) |
| void | status_set_warning (const LogString *message) |
| void | status_set_error (const char *message=nullptr) |
| void | status_clear_warning () |
| void | status_clear_error () |
| void | status_momentary_warning (const std::string &name, uint32_t length=5000) |
| void | status_momentary_error (const std::string &name, uint32_t length=5000) |
| bool | has_overridden_loop () const |
| void | set_component_source (const LogString *source) |
| Set where this component was loaded from for some debug messages. | |
| const LogString * | get_component_log_str () const |
| Get the integration where this component was declared as a LogString for logging. | |
| bool | should_warn_of_blocking (uint32_t blocking_time) |
Public Member Functions inherited from esphome::esp32_ble::GAPEventHandler | |
Public Member Functions inherited from esphome::esp32_ble::GAPScanEventHandler | |
Public Member Functions inherited from esphome::esp32_ble::GATTcEventHandler | |
Public Member Functions inherited from esphome::esp32_ble::BLEStatusEventHandler | |
Public Member Functions inherited from esphome::Parented< ESP32BLE > | |
| Parented () | |
| Parented (ESP32BLE *parent) | |
| ESP32BLE * | get_parent () const |
| Get the parent of this object. | |
| void | set_parent (ESP32BLE *parent) |
| Set the parent of this object. | |
Protected Types | |
| enum class | ScanTimeoutState : uint8_t { INACTIVE , MONITORING , EXCEEDED_WAIT } |
Protected Member Functions | |
| void | stop_scan_ () |
| void | start_scan_ (bool first) |
| Start a single scan by setting up the parameters and doing some esp-idf calls. | |
| void | gap_scan_result_ (const esp_ble_gap_cb_param_t::ble_scan_result_evt_param ¶m) |
Called when a ESP_GAP_BLE_SCAN_RESULT_EVT event is received. | |
| void | gap_scan_set_param_complete_ (const esp_ble_gap_cb_param_t::ble_scan_param_cmpl_evt_param ¶m) |
Called when a ESP_GAP_BLE_SCAN_PARAM_SET_COMPLETE_EVT event is received. | |
| void | gap_scan_start_complete_ (const esp_ble_gap_cb_param_t::ble_scan_start_cmpl_evt_param ¶m) |
Called when a ESP_GAP_BLE_SCAN_START_COMPLETE_EVT event is received. | |
| void | gap_scan_stop_complete_ (const esp_ble_gap_cb_param_t::ble_scan_stop_cmpl_evt_param ¶m) |
Called when a ESP_GAP_BLE_SCAN_STOP_COMPLETE_EVT event is received. | |
| void | set_scanner_state_ (ScannerState state) |
| Called to set the scanner state. Will also call callbacks to let listeners know when state is changed. | |
| void | cleanup_scan_state_ (bool is_stop_complete) |
| Common cleanup logic when transitioning scanner to IDLE state. | |
| void | process_scan_result_ (const BLEScanResult &scan_result) |
| Process a single scan result immediately. | |
| void | handle_scanner_failure_ () |
| Handle scanner failure states. | |
| void | try_promote_discovered_clients_ () |
| Try to promote discovered clients to ready to connect. | |
| const char * | scanner_state_to_string_ (ScannerState state) const |
| Convert scanner state enum to string for logging. | |
| void | log_unexpected_state_ (const char *operation, ScannerState expected_state) const |
| Log an unexpected scanner state. | |
| void | update_coex_preference_ (bool force_ble) |
| Update BLE coexistence preference. | |
| ClientStateCounts | count_client_states_ () const |
| Count clients in each state. | |
Protected Member Functions inherited from esphome::Component | |
| virtual void | call_loop () |
| virtual void | call_setup () |
| virtual void | call_dump_config () |
| void | set_component_state_ (uint8_t state) |
| Helper to set component state (clears state bits and sets new state) | |
| void | set_interval (const std::string &name, uint32_t interval, std::function< void()> &&f) |
| Set an interval function with a unique name. | |
| void | set_interval (const char *name, uint32_t interval, std::function< void()> &&f) |
| Set an interval function with a const char* name. | |
| void | set_interval (uint32_t interval, std::function< void()> &&f) |
| bool | cancel_interval (const std::string &name) |
| Cancel an interval function. | |
| bool | cancel_interval (const char *name) |
| void | set_retry (const std::string &name, uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f) |
| Set an retry function with a unique name. | |
| void | set_retry (uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f) |
| bool | cancel_retry (const std::string &name) |
| Cancel a retry function. | |
| void | set_timeout (const std::string &name, uint32_t timeout, std::function< void()> &&f) |
| Set a timeout function with a unique name. | |
| void | set_timeout (const char *name, uint32_t timeout, std::function< void()> &&f) |
| Set a timeout function with a const char* name. | |
| void | set_timeout (uint32_t timeout, std::function< void()> &&f) |
| bool | cancel_timeout (const std::string &name) |
| Cancel a timeout function. | |
| bool | cancel_timeout (const char *name) |
| void | defer (const std::string &name, std::function< void()> &&f) |
| Defer a callback to the next loop() call. | |
| void | defer (const char *name, std::function< void()> &&f) |
| Defer a callback to the next loop() call with a const char* name. | |
| void | defer (std::function< void()> &&f) |
| Defer a callback to the next loop() call. | |
| bool | cancel_defer (const std::string &name) |
| Cancel a defer callback using the specified name, name must not be empty. | |
Protected Attributes | |
| std::vector< ESPBTDeviceListener * > | listeners_ |
| std::vector< ESPBTClient * > | clients_ |
| CallbackManager< void(ScannerState)> | scanner_state_callbacks_ |
| std::vector< uint64_t > | already_discovered_ |
| Vector of addresses that have already been printed in print_bt_device_info. | |
| esp_ble_scan_params_t | scan_params_ |
| A structure holding the ESP BLE scan parameters. | |
| ClientStateCounts | client_state_counts_ |
| uint32_t | scan_duration_ |
| The interval in seconds to perform scans. | |
| uint32_t | scan_interval_ |
| uint32_t | scan_window_ |
| esp_bt_status_t | scan_start_failed_ {ESP_BT_STATUS_SUCCESS} |
| esp_bt_status_t | scan_set_param_failed_ {ESP_BT_STATUS_SUCCESS} |
| uint8_t | app_id_ {0} |
| uint8_t | scan_start_fail_count_ {0} |
| ScannerState | scanner_state_ {ScannerState::IDLE} |
| bool | scan_continuous_ |
| bool | scan_active_ |
| bool | ble_was_disabled_ {true} |
| bool | raw_advertisements_ {false} |
| bool | parse_advertisements_ {false} |
| bool | coex_prefer_ble_ {false} |
| uint32_t | scan_start_time_ {0} |
| ScanTimeoutState | scan_timeout_state_ {ScanTimeoutState::INACTIVE} |
Protected Attributes inherited from esphome::Component | |
| const LogString * | component_source_ {nullptr} |
| uint16_t | warn_if_blocking_over_ {WARN_IF_BLOCKING_OVER_MS} |
| Warn if blocked for this many ms (max 65.5s) | |
| uint8_t | component_state_ {0x00} |
| State of this component - each bit has a purpose: Bits 0-2: Component state (0x00=CONSTRUCTION, 0x01=SETUP, 0x02=LOOP, 0x03=FAILED, 0x04=LOOP_DONE) Bit 3: STATUS_LED_WARNING Bit 4: STATUS_LED_ERROR Bits 5-7: Unused - reserved for future expansion. | |
| volatile bool | pending_enable_loop_ {false} |
| ISR-safe flag for enable_loop_soon_any_context. | |
Protected Attributes inherited from esphome::Parented< ESP32BLE > | |
| ESP32BLE * | parent_ |
Definition at line 229 of file esp32_ble_tracker.h.
|
strongprotected |
| Enumerator | |
|---|---|
| INACTIVE | |
| MONITORING | |
| EXCEEDED_WAIT | |
Definition at line 358 of file esp32_ble_tracker.h.
|
inline |
Definition at line 267 of file esp32_ble_tracker.h.
|
overridevirtual |
Implements esphome::esp32_ble::BLEStatusEventHandler.
Definition at line 180 of file esp32_ble_tracker.cpp.
|
protected |
Common cleanup logic when transitioning scanner to IDLE state.
Definition at line 740 of file esp32_ble_tracker.cpp.
|
inlineprotected |
Count clients in each state.
Definition at line 303 of file esp32_ble_tracker.h.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 612 of file esp32_ble_tracker.cpp.
|
overridevirtual |
Implements esphome::esp32_ble::GAPEventHandler.
Definition at line 269 of file esp32_ble_tracker.cpp.
|
overridevirtual |
Implements esphome::esp32_ble::GAPScanEventHandler.
Definition at line 291 of file esp32_ble_tracker.cpp.
|
protected |
Called when a ESP_GAP_BLE_SCAN_RESULT_EVT event is received.
|
protected |
Called when a ESP_GAP_BLE_SCAN_PARAM_SET_COMPLETE_EVT event is received.
Definition at line 309 of file esp32_ble_tracker.cpp.
|
protected |
Called when a ESP_GAP_BLE_SCAN_START_COMPLETE_EVT event is received.
Definition at line 319 of file esp32_ble_tracker.cpp.
|
protected |
Called when a ESP_GAP_BLE_SCAN_STOP_COMPLETE_EVT event is received.
Definition at line 337 of file esp32_ble_tracker.cpp.
|
overridevirtual |
Implements esphome::esp32_ble::GATTcEventHandler.
Definition at line 349 of file esp32_ble_tracker.cpp.
|
inline |
Definition at line 240 of file esp32_ble_tracker.h.
|
inline |
Definition at line 270 of file esp32_ble_tracker.h.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 61 of file esp32_ble_tracker.cpp.
|
protected |
Handle scanner failure states.
Definition at line 754 of file esp32_ble_tracker.cpp.
|
protected |
Log an unexpected scanner state.
Definition at line 813 of file esp32_ble_tracker.cpp.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 85 of file esp32_ble_tracker.cpp.
| void esphome::esp32_ble_tracker::ESP32BLETracker::print_bt_device_info | ( | const ESPBTDevice & | device | ) |
Definition at line 631 of file esp32_ble_tracker.cpp.
|
protected |
Process a single scan result immediately.
Definition at line 704 of file esp32_ble_tracker.cpp.
| void esphome::esp32_ble_tracker::ESP32BLETracker::recalculate_advertisement_parser_types | ( | ) |
Definition at line 250 of file esp32_ble_tracker.cpp.
| void esphome::esp32_ble_tracker::ESP32BLETracker::register_client | ( | ESPBTClient * | client | ) |
Definition at line 238 of file esp32_ble_tracker.cpp.
| void esphome::esp32_ble_tracker::ESP32BLETracker::register_listener | ( | ESPBTDeviceListener * | listener | ) |
Definition at line 244 of file esp32_ble_tracker.cpp.
|
protected |
Convert scanner state enum to string for logging.
Definition at line 796 of file esp32_ble_tracker.cpp.
|
inline |
Definition at line 239 of file esp32_ble_tracker.h.
|
inline |
Definition at line 241 of file esp32_ble_tracker.h.
|
inline |
Definition at line 236 of file esp32_ble_tracker.h.
|
inline |
Definition at line 237 of file esp32_ble_tracker.h.
|
inline |
Definition at line 238 of file esp32_ble_tracker.h.
|
protected |
Called to set the scanner state. Will also call callbacks to let listeners know when state is changed.
Definition at line 356 of file esp32_ble_tracker.cpp.
|
overridevirtual |
Setup the FreeRTOS task and the Bluetooth stack.
Reimplemented from esphome::Component.
Definition at line 63 of file esp32_ble_tracker.cpp.
| void esphome::esp32_ble_tracker::ESP32BLETracker::start_scan | ( | ) |
Definition at line 172 of file esp32_ble_tracker.cpp.
|
protected |
Start a single scan by setting up the parameters and doing some esp-idf calls.
Definition at line 197 of file esp32_ble_tracker.cpp.
| void esphome::esp32_ble_tracker::ESP32BLETracker::stop_scan | ( | ) |
Definition at line 174 of file esp32_ble_tracker.cpp.
|
protected |
Definition at line 182 of file esp32_ble_tracker.cpp.
|
protected |
Try to promote discovered clients to ready to connect.
Definition at line 771 of file esp32_ble_tracker.cpp.
|
protected |
Update BLE coexistence preference.
Definition at line 819 of file esp32_ble_tracker.cpp.
|
protected |
Vector of addresses that have already been printed in print_bt_device_info.
Definition at line 329 of file esp32_ble_tracker.h.
|
protected |
Definition at line 346 of file esp32_ble_tracker.h.
|
protected |
Definition at line 351 of file esp32_ble_tracker.h.
|
protected |
Definition at line 335 of file esp32_ble_tracker.h.
|
protected |
Definition at line 325 of file esp32_ble_tracker.h.
|
protected |
Definition at line 355 of file esp32_ble_tracker.h.
|
protected |
Definition at line 324 of file esp32_ble_tracker.h.
|
protected |
Definition at line 353 of file esp32_ble_tracker.h.
|
protected |
Definition at line 352 of file esp32_ble_tracker.h.
|
protected |
Definition at line 350 of file esp32_ble_tracker.h.
|
protected |
Definition at line 349 of file esp32_ble_tracker.h.
|
protected |
The interval in seconds to perform scans.
Definition at line 339 of file esp32_ble_tracker.h.
|
protected |
Definition at line 340 of file esp32_ble_tracker.h.
|
protected |
A structure holding the ESP BLE scan parameters.
Definition at line 334 of file esp32_ble_tracker.h.
|
protected |
Definition at line 343 of file esp32_ble_tracker.h.
|
protected |
Definition at line 347 of file esp32_ble_tracker.h.
|
protected |
Definition at line 342 of file esp32_ble_tracker.h.
|
protected |
Definition at line 363 of file esp32_ble_tracker.h.
|
protected |
Definition at line 364 of file esp32_ble_tracker.h.
|
protected |
Definition at line 341 of file esp32_ble_tracker.h.
|
protected |
Definition at line 348 of file esp32_ble_tracker.h.
|
protected |
Definition at line 326 of file esp32_ble_tracker.h.