ESPHome 2025.9.0-dev
Loading...
Searching...
No Matches
esphome::esp32_ble_client::BLEClientBase Class Reference

#include <ble_client_base.h>

Inheritance diagram for esphome::esp32_ble_client::BLEClientBase:
esphome::esp32_ble_tracker::ESPBTClient esphome::Component esphome::esp32_ble_tracker::ESPBTDeviceListener esphome::ble_client::BLEClient esphome::bluetooth_proxy::BluetoothConnection

Public Member Functions

void setup () override
 
void loop () override
 
float get_setup_priority () const override
 
void dump_config () override
 
void run_later (std::function< void()> &&f)
 
bool parse_device (const espbt::ESPBTDevice &device) override
 
void on_scan_end () override
 
bool 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 connect () override
 
esp_err_t pair ()
 
void disconnect () override
 
void unconditional_disconnect ()
 
void release_services ()
 
bool connected ()
 
void set_auto_connect (bool auto_connect)
 
virtual void set_address (uint64_t address)
 
const std::string & address_str () const
 
BLEServiceget_service (espbt::ESPBTUUID uuid)
 
BLEServiceget_service (uint16_t uuid)
 
BLECharacteristicget_characteristic (espbt::ESPBTUUID service, espbt::ESPBTUUID chr)
 
BLECharacteristicget_characteristic (uint16_t service, uint16_t chr)
 
BLECharacteristicget_characteristic (uint16_t handle)
 
BLEDescriptorget_descriptor (espbt::ESPBTUUID service, espbt::ESPBTUUID chr, espbt::ESPBTUUID descr)
 
BLEDescriptorget_descriptor (uint16_t service, uint16_t chr, uint16_t descr)
 
BLEDescriptorget_descriptor (uint16_t handle)
 
BLEDescriptorget_config_descriptor (uint16_t handle)
 
float parse_char_value (uint8_t *value, uint16_t length)
 
int get_gattc_if () const
 
uint8_t * get_remote_bda ()
 
esp_ble_addr_type_t get_remote_addr_type () const
 
void set_remote_addr_type (esp_ble_addr_type_t address_type)
 
uint16_t get_conn_id () const
 
uint64_t get_address () const
 
bool is_paired () const
 
uint8_t get_connection_index () const
 
virtual void set_connection_type (espbt::ConnectionType ct)
 
bool check_addr (esp_bd_addr_t &addr)
 
void set_state (espbt::ClientState st) override
 
- Public Member Functions inherited from esphome::esp32_ble_tracker::ESPBTClient
bool disconnect_pending () const
 
void cancel_pending_disconnect ()
 
ClientState state () const
 
- Public Member Functions inherited from esphome::esp32_ble_tracker::ESPBTDeviceListener
virtual bool parse_devices (const BLEScanResult *scan_results, size_t count)
 
virtual AdvertisementParserType get_advertisement_parser_type ()
 
void set_parent (ESP32BLETracker *parent)
 
- 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_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 char *source)
 Set where this component was loaded from for some debug messages.
 
const char * get_component_source () const
 Get the integration where this component was declared as a string.
 
bool should_warn_of_blocking (uint32_t blocking_time)
 

Protected Member Functions

void log_event_ (const char *name)
 
void log_gattc_event_ (const char *name)
 
void restore_medium_conn_params_ ()
 
void log_gattc_warning_ (const char *operation, esp_gatt_status_t status)
 
void log_gattc_warning_ (const char *operation, esp_err_t err)
 
void log_connection_params_ (const char *param_type)
 
- 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

uint64_t address_ {0}
 
std::string address_str_ {}
 
std::vector< BLEService * > services_
 
int gattc_if_
 
esp_gatt_status_t status_ {ESP_GATT_OK}
 
esp_bd_addr_t remote_bda_
 
uint16_t conn_id_ {UNSET_CONN_ID}
 
uint16_t mtu_ {23}
 
esp_ble_addr_type_t remote_addr_type_ {BLE_ADDR_TYPE_PUBLIC}
 
espbt::ConnectionType connection_type_ {espbt::ConnectionType::V1}
 
uint8_t connection_index_
 
uint8_t service_count_ {0}
 
bool auto_connect_ {false}
 
bool paired_ {false}
 
- Protected Attributes inherited from esphome::esp32_ble_tracker::ESPBTClient
ClientState state_ {ClientState::INIT}
 
bool want_disconnect_ {false}
 
- Protected Attributes inherited from esphome::esp32_ble_tracker::ESPBTDeviceListener
ESP32BLETrackerparent_ {nullptr}
 
- Protected Attributes inherited from esphome::Component
const char * 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.
 

Additional Inherited Members

- Data Fields inherited from esphome::esp32_ble_tracker::ESPBTClient
uint8_t app_id
 

Detailed Description

Definition at line 27 of file ble_client_base.h.

Member Function Documentation

◆ address_str()

const std::string & esphome::esp32_ble_client::BLEClientBase::address_str ( ) const
inline

Definition at line 70 of file ble_client_base.h.

◆ check_addr()

bool esphome::esp32_ble_client::BLEClientBase::check_addr ( esp_bd_addr_t & addr)
inline

Definition at line 99 of file ble_client_base.h.

◆ connect()

void esphome::esp32_ble_client::BLEClientBase::connect ( )
overridevirtual

Implements esphome::esp32_ble_tracker::ESPBTClient.

Definition at line 109 of file ble_client_base.cpp.

◆ connected()

bool esphome::esp32_ble_client::BLEClientBase::connected ( )
inline

Definition at line 48 of file ble_client_base.h.

◆ disconnect()

void esphome::esp32_ble_client::BLEClientBase::disconnect ( )
overridevirtual

Implements esphome::esp32_ble_tracker::ESPBTClient.

Definition at line 155 of file ble_client_base.cpp.

◆ dump_config()

void esphome::esp32_ble_client::BLEClientBase::dump_config ( )
overridevirtual

Reimplemented from esphome::Component.

Reimplemented in esphome::bluetooth_proxy::BluetoothConnection.

Definition at line 76 of file ble_client_base.cpp.

◆ gap_event_handler()

void esphome::esp32_ble_client::BLEClientBase::gap_event_handler ( esp_gap_ble_cb_event_t event,
esp_ble_gap_cb_param_t * param )
overridevirtual

◆ gattc_event_handler()

bool esphome::esp32_ble_client::BLEClientBase::gattc_event_handler ( esp_gattc_cb_event_t event,
esp_gatt_if_t gattc_if,
esp_ble_gattc_cb_param_t * param )
overridevirtual

◆ get_address()

uint64_t esphome::esp32_ble_client::BLEClientBase::get_address ( ) const
inline

Definition at line 92 of file ble_client_base.h.

◆ get_characteristic() [1/3]

BLECharacteristic * esphome::esp32_ble_client::BLEClientBase::get_characteristic ( espbt::ESPBTUUID service,
espbt::ESPBTUUID chr )

Definition at line 595 of file ble_client_base.cpp.

◆ get_characteristic() [2/3]

BLECharacteristic * esphome::esp32_ble_client::BLEClientBase::get_characteristic ( uint16_t handle)

Definition at line 606 of file ble_client_base.cpp.

◆ get_characteristic() [3/3]

BLECharacteristic * esphome::esp32_ble_client::BLEClientBase::get_characteristic ( uint16_t service,
uint16_t chr )

Definition at line 602 of file ble_client_base.cpp.

◆ get_config_descriptor()

BLEDescriptor * esphome::esp32_ble_client::BLEClientBase::get_config_descriptor ( uint16_t handle)

Definition at line 618 of file ble_client_base.cpp.

◆ get_conn_id()

uint16_t esphome::esp32_ble_client::BLEClientBase::get_conn_id ( ) const
inline

Definition at line 91 of file ble_client_base.h.

◆ get_connection_index()

uint8_t esphome::esp32_ble_client::BLEClientBase::get_connection_index ( ) const
inline

Definition at line 95 of file ble_client_base.h.

◆ get_descriptor() [1/3]

BLEDescriptor * esphome::esp32_ble_client::BLEClientBase::get_descriptor ( espbt::ESPBTUUID service,
espbt::ESPBTUUID chr,
espbt::ESPBTUUID descr )

Definition at line 631 of file ble_client_base.cpp.

◆ get_descriptor() [2/3]

BLEDescriptor * esphome::esp32_ble_client::BLEClientBase::get_descriptor ( uint16_t handle)

Definition at line 646 of file ble_client_base.cpp.

◆ get_descriptor() [3/3]

BLEDescriptor * esphome::esp32_ble_client::BLEClientBase::get_descriptor ( uint16_t service,
uint16_t chr,
uint16_t descr )

Definition at line 641 of file ble_client_base.cpp.

◆ get_gattc_if()

int esphome::esp32_ble_client::BLEClientBase::get_gattc_if ( ) const
inline

Definition at line 87 of file ble_client_base.h.

◆ get_remote_addr_type()

esp_ble_addr_type_t esphome::esp32_ble_client::BLEClientBase::get_remote_addr_type ( ) const
inline

Definition at line 89 of file ble_client_base.h.

◆ get_remote_bda()

uint8_t * esphome::esp32_ble_client::BLEClientBase::get_remote_bda ( )
inline

Definition at line 88 of file ble_client_base.h.

◆ get_service() [1/2]

BLEService * esphome::esp32_ble_client::BLEClientBase::get_service ( espbt::ESPBTUUID uuid)

Definition at line 585 of file ble_client_base.cpp.

◆ get_service() [2/2]

BLEService * esphome::esp32_ble_client::BLEClientBase::get_service ( uint16_t uuid)

Definition at line 593 of file ble_client_base.cpp.

◆ get_setup_priority()

float esphome::esp32_ble_client::BLEClientBase::get_setup_priority ( ) const
overridevirtual

Reimplemented from esphome::Component.

Definition at line 74 of file ble_client_base.cpp.

◆ is_paired()

bool esphome::esp32_ble_client::BLEClientBase::is_paired ( ) const
inline

Definition at line 93 of file ble_client_base.h.

◆ log_connection_params_()

void esphome::esp32_ble_client::BLEClientBase::log_connection_params_ ( const char * param_type)
protected

Definition at line 233 of file ble_client_base.cpp.

◆ log_event_()

void esphome::esp32_ble_client::BLEClientBase::log_event_ ( const char * name)
protected

Definition at line 216 of file ble_client_base.cpp.

◆ log_gattc_event_()

void esphome::esp32_ble_client::BLEClientBase::log_gattc_event_ ( const char * name)
protected

Definition at line 220 of file ble_client_base.cpp.

◆ log_gattc_warning_() [1/2]

void esphome::esp32_ble_client::BLEClientBase::log_gattc_warning_ ( const char * operation,
esp_err_t err )
protected

Definition at line 229 of file ble_client_base.cpp.

◆ log_gattc_warning_() [2/2]

void esphome::esp32_ble_client::BLEClientBase::log_gattc_warning_ ( const char * operation,
esp_gatt_status_t status )
protected

Definition at line 224 of file ble_client_base.cpp.

◆ loop()

void esphome::esp32_ble_client::BLEClientBase::loop ( )
overridevirtual

Reimplemented from esphome::Component.

Reimplemented in esphome::bluetooth_proxy::BluetoothConnection.

Definition at line 54 of file ble_client_base.cpp.

◆ on_scan_end()

void esphome::esp32_ble_client::BLEClientBase::on_scan_end ( )
inlineoverridevirtual

Reimplemented from esphome::esp32_ble_tracker::ESPBTDeviceListener.

Definition at line 38 of file ble_client_base.h.

◆ pair()

esp_err_t esphome::esp32_ble_client::BLEClientBase::pair ( )

Definition at line 153 of file ble_client_base.cpp.

◆ parse_char_value()

float esphome::esp32_ble_client::BLEClientBase::parse_char_value ( uint8_t * value,
uint16_t length )

Definition at line 531 of file ble_client_base.cpp.

◆ parse_device()

bool esphome::esp32_ble_client::BLEClientBase::parse_device ( const espbt::ESPBTDevice & device)
overridevirtual

◆ release_services()

void esphome::esp32_ble_client::BLEClientBase::release_services ( )

Definition at line 205 of file ble_client_base.cpp.

◆ restore_medium_conn_params_()

void esphome::esp32_ble_client::BLEClientBase::restore_medium_conn_params_ ( )
protected

Definition at line 237 of file ble_client_base.cpp.

◆ run_later()

void esphome::esp32_ble_client::BLEClientBase::run_later ( std::function< void()> && f)

Definition at line 490 of file ble_client_base.cpp.

◆ set_address()

virtual void esphome::esp32_ble_client::BLEClientBase::set_address ( uint64_t address)
inlinevirtual

Reimplemented in esphome::bluetooth_proxy::BluetoothConnection.

Definition at line 52 of file ble_client_base.h.

◆ set_auto_connect()

void esphome::esp32_ble_client::BLEClientBase::set_auto_connect ( bool auto_connect)
inline

Definition at line 50 of file ble_client_base.h.

◆ set_connection_type()

virtual void esphome::esp32_ble_client::BLEClientBase::set_connection_type ( espbt::ConnectionType ct)
inlinevirtual

Definition at line 97 of file ble_client_base.h.

◆ set_remote_addr_type()

void esphome::esp32_ble_client::BLEClientBase::set_remote_addr_type ( esp_ble_addr_type_t address_type)
inline

Definition at line 90 of file ble_client_base.h.

◆ set_state()

void esphome::esp32_ble_client::BLEClientBase::set_state ( espbt::ClientState st)
overridevirtual

Reimplemented from esphome::esp32_ble_tracker::ESPBTClient.

Definition at line 42 of file ble_client_base.cpp.

◆ setup()

void esphome::esp32_ble_client::BLEClientBase::setup ( )
overridevirtual

Reimplemented from esphome::Component.

Definition at line 37 of file ble_client_base.cpp.

◆ unconditional_disconnect()

void esphome::esp32_ble_client::BLEClientBase::unconditional_disconnect ( )

Definition at line 170 of file ble_client_base.cpp.

Field Documentation

◆ address_

uint64_t esphome::esp32_ble_client::BLEClientBase::address_ {0}
protected

Definition at line 106 of file ble_client_base.h.

◆ address_str_

std::string esphome::esp32_ble_client::BLEClientBase::address_str_ {}
protected

Definition at line 109 of file ble_client_base.h.

◆ auto_connect_

bool esphome::esp32_ble_client::BLEClientBase::auto_connect_ {false}
protected

Definition at line 130 of file ble_client_base.h.

◆ conn_id_

uint16_t esphome::esp32_ble_client::BLEClientBase::conn_id_ {UNSET_CONN_ID}
protected

Definition at line 122 of file ble_client_base.h.

◆ connection_index_

uint8_t esphome::esp32_ble_client::BLEClientBase::connection_index_
protected

Definition at line 128 of file ble_client_base.h.

◆ connection_type_

espbt::ConnectionType esphome::esp32_ble_client::BLEClientBase::connection_type_ {espbt::ConnectionType::V1}
protected

Definition at line 127 of file ble_client_base.h.

◆ gattc_if_

int esphome::esp32_ble_client::BLEClientBase::gattc_if_
protected

Definition at line 115 of file ble_client_base.h.

◆ mtu_

uint16_t esphome::esp32_ble_client::BLEClientBase::mtu_ {23}
protected

Definition at line 123 of file ble_client_base.h.

◆ paired_

bool esphome::esp32_ble_client::BLEClientBase::paired_ {false}
protected

Definition at line 131 of file ble_client_base.h.

◆ remote_addr_type_

esp_ble_addr_type_t esphome::esp32_ble_client::BLEClientBase::remote_addr_type_ {BLE_ADDR_TYPE_PUBLIC}
protected

Definition at line 126 of file ble_client_base.h.

◆ remote_bda_

esp_bd_addr_t esphome::esp32_ble_client::BLEClientBase::remote_bda_
protected

Definition at line 119 of file ble_client_base.h.

◆ service_count_

uint8_t esphome::esp32_ble_client::BLEClientBase::service_count_ {0}
protected

Definition at line 129 of file ble_client_base.h.

◆ services_

std::vector<BLEService *> esphome::esp32_ble_client::BLEClientBase::services_
protected

Definition at line 111 of file ble_client_base.h.

◆ status_

esp_gatt_status_t esphome::esp32_ble_client::BLEClientBase::status_ {ESP_GATT_OK}
protected

Definition at line 116 of file ble_client_base.h.


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