mirror of
https://github.com/esphome/esphome.git
synced 2025-09-02 11:22:24 +01:00
[esp32_ble_client] Add log helper functions to reduce flash usage by 120 bytes (#10243)
This commit is contained in:
@@ -159,8 +159,7 @@ void BLEClientBase::disconnect() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (this->state_ == espbt::ClientState::CONNECTING || this->conn_id_ == UNSET_CONN_ID) {
|
if (this->state_ == espbt::ClientState::CONNECTING || this->conn_id_ == UNSET_CONN_ID) {
|
||||||
ESP_LOGW(TAG, "[%d] [%s] Disconnecting before connected, disconnect scheduled.", this->connection_index_,
|
this->log_warning_("Disconnect before connected, disconnect scheduled.");
|
||||||
this->address_str_.c_str());
|
|
||||||
this->want_disconnect_ = true;
|
this->want_disconnect_ = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -172,13 +171,11 @@ void BLEClientBase::unconditional_disconnect() {
|
|||||||
ESP_LOGI(TAG, "[%d] [%s] Disconnecting (conn_id: %d).", this->connection_index_, this->address_str_.c_str(),
|
ESP_LOGI(TAG, "[%d] [%s] Disconnecting (conn_id: %d).", this->connection_index_, this->address_str_.c_str(),
|
||||||
this->conn_id_);
|
this->conn_id_);
|
||||||
if (this->state_ == espbt::ClientState::DISCONNECTING) {
|
if (this->state_ == espbt::ClientState::DISCONNECTING) {
|
||||||
ESP_LOGE(TAG, "[%d] [%s] Tried to disconnect while already disconnecting.", this->connection_index_,
|
this->log_error_("Already disconnecting");
|
||||||
this->address_str_.c_str());
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (this->conn_id_ == UNSET_CONN_ID) {
|
if (this->conn_id_ == UNSET_CONN_ID) {
|
||||||
ESP_LOGE(TAG, "[%d] [%s] No connection ID set, cannot disconnect.", this->connection_index_,
|
this->log_error_("conn id unset, cannot disconnect");
|
||||||
this->address_str_.c_str());
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
auto err = esp_ble_gattc_close(this->gattc_if_, this->conn_id_);
|
auto err = esp_ble_gattc_close(this->gattc_if_, this->conn_id_);
|
||||||
@@ -234,6 +231,18 @@ void BLEClientBase::log_connection_params_(const char *param_type) {
|
|||||||
ESP_LOGD(TAG, "[%d] [%s] %s conn params", this->connection_index_, this->address_str_.c_str(), param_type);
|
ESP_LOGD(TAG, "[%d] [%s] %s conn params", this->connection_index_, this->address_str_.c_str(), param_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BLEClientBase::log_error_(const char *message) {
|
||||||
|
ESP_LOGE(TAG, "[%d] [%s] %s", this->connection_index_, this->address_str_.c_str(), message);
|
||||||
|
}
|
||||||
|
|
||||||
|
void BLEClientBase::log_error_(const char *message, int code) {
|
||||||
|
ESP_LOGE(TAG, "[%d] [%s] %s=%d", this->connection_index_, this->address_str_.c_str(), message, code);
|
||||||
|
}
|
||||||
|
|
||||||
|
void BLEClientBase::log_warning_(const char *message) {
|
||||||
|
ESP_LOGW(TAG, "[%d] [%s] %s", this->connection_index_, this->address_str_.c_str(), message);
|
||||||
|
}
|
||||||
|
|
||||||
void BLEClientBase::restore_medium_conn_params_() {
|
void BLEClientBase::restore_medium_conn_params_() {
|
||||||
// Restore to medium connection parameters after initial connection phase
|
// Restore to medium connection parameters after initial connection phase
|
||||||
// This balances performance with bandwidth usage for normal operation
|
// This balances performance with bandwidth usage for normal operation
|
||||||
@@ -264,8 +273,7 @@ bool BLEClientBase::gattc_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_
|
|||||||
this->app_id);
|
this->app_id);
|
||||||
this->gattc_if_ = esp_gattc_if;
|
this->gattc_if_ = esp_gattc_if;
|
||||||
} else {
|
} else {
|
||||||
ESP_LOGE(TAG, "[%d] [%s] gattc app registration failed id=%d code=%d", this->connection_index_,
|
this->log_error_("gattc app registration failed status", param->reg.status);
|
||||||
this->address_str_.c_str(), param->reg.app_id, param->reg.status);
|
|
||||||
this->status_ = param->reg.status;
|
this->status_ = param->reg.status;
|
||||||
this->mark_failed();
|
this->mark_failed();
|
||||||
}
|
}
|
||||||
@@ -281,8 +289,7 @@ bool BLEClientBase::gattc_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_
|
|||||||
// This should not happen but lets log it in case it does
|
// This should not happen but lets log it in case it does
|
||||||
// because it means we have a bad assumption about how the
|
// because it means we have a bad assumption about how the
|
||||||
// ESP BT stack works.
|
// ESP BT stack works.
|
||||||
ESP_LOGE(TAG, "[%d] [%s] Got ESP_GATTC_OPEN_EVT while in %s state, status=%d", this->connection_index_,
|
this->log_error_("ESP_GATTC_OPEN_EVT wrong state status", param->open.status);
|
||||||
this->address_str_.c_str(), espbt::client_state_to_string(this->state_), param->open.status);
|
|
||||||
}
|
}
|
||||||
if (param->open.status != ESP_GATT_OK && param->open.status != ESP_GATT_ALREADY_OPEN) {
|
if (param->open.status != ESP_GATT_OK && param->open.status != ESP_GATT_ALREADY_OPEN) {
|
||||||
this->log_gattc_warning_("Connection open", param->open.status);
|
this->log_gattc_warning_("Connection open", param->open.status);
|
||||||
@@ -307,7 +314,7 @@ bool BLEClientBase::gattc_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_
|
|||||||
this->state_ = espbt::ClientState::ESTABLISHED;
|
this->state_ = espbt::ClientState::ESTABLISHED;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
ESP_LOGD(TAG, "[%d] [%s] Searching for services", this->connection_index_, this->address_str_.c_str());
|
this->log_event_("Searching for services");
|
||||||
esp_ble_gattc_search_service(esp_gattc_if, param->cfg_mtu.conn_id, nullptr);
|
esp_ble_gattc_search_service(esp_gattc_if, param->cfg_mtu.conn_id, nullptr);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -332,8 +339,7 @@ bool BLEClientBase::gattc_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_
|
|||||||
// Check if we were disconnected while waiting for service discovery
|
// Check if we were disconnected while waiting for service discovery
|
||||||
if (param->disconnect.reason == ESP_GATT_CONN_TERMINATE_PEER_USER &&
|
if (param->disconnect.reason == ESP_GATT_CONN_TERMINATE_PEER_USER &&
|
||||||
this->state_ == espbt::ClientState::CONNECTED) {
|
this->state_ == espbt::ClientState::CONNECTED) {
|
||||||
ESP_LOGW(TAG, "[%d] [%s] Disconnected by remote during service discovery", this->connection_index_,
|
this->log_warning_("Remote closed during discovery");
|
||||||
this->address_str_.c_str());
|
|
||||||
} else {
|
} else {
|
||||||
ESP_LOGD(TAG, "[%d] [%s] ESP_GATTC_DISCONNECT_EVT, reason 0x%02x", this->connection_index_,
|
ESP_LOGD(TAG, "[%d] [%s] ESP_GATTC_DISCONNECT_EVT, reason 0x%02x", this->connection_index_,
|
||||||
this->address_str_.c_str(), param->disconnect.reason);
|
this->address_str_.c_str(), param->disconnect.reason);
|
||||||
@@ -506,16 +512,14 @@ void BLEClientBase::gap_event_handler(esp_gap_ble_cb_event_t event, esp_ble_gap_
|
|||||||
return;
|
return;
|
||||||
esp_bd_addr_t bd_addr;
|
esp_bd_addr_t bd_addr;
|
||||||
memcpy(bd_addr, param->ble_security.auth_cmpl.bd_addr, sizeof(esp_bd_addr_t));
|
memcpy(bd_addr, param->ble_security.auth_cmpl.bd_addr, sizeof(esp_bd_addr_t));
|
||||||
ESP_LOGI(TAG, "[%d] [%s] auth complete. remote BD_ADDR: %s", this->connection_index_, this->address_str_.c_str(),
|
ESP_LOGI(TAG, "[%d] [%s] auth complete addr: %s", this->connection_index_, this->address_str_.c_str(),
|
||||||
format_hex(bd_addr, 6).c_str());
|
format_hex(bd_addr, 6).c_str());
|
||||||
if (!param->ble_security.auth_cmpl.success) {
|
if (!param->ble_security.auth_cmpl.success) {
|
||||||
ESP_LOGE(TAG, "[%d] [%s] auth fail reason = 0x%x", this->connection_index_, this->address_str_.c_str(),
|
this->log_error_("auth fail reason", param->ble_security.auth_cmpl.fail_reason);
|
||||||
param->ble_security.auth_cmpl.fail_reason);
|
|
||||||
} else {
|
} else {
|
||||||
this->paired_ = true;
|
this->paired_ = true;
|
||||||
ESP_LOGD(TAG, "[%d] [%s] auth success. address type = %d auth mode = %d", this->connection_index_,
|
ESP_LOGD(TAG, "[%d] [%s] auth success type = %d mode = %d", this->connection_index_, this->address_str_.c_str(),
|
||||||
this->address_str_.c_str(), param->ble_security.auth_cmpl.addr_type,
|
param->ble_security.auth_cmpl.addr_type, param->ble_security.auth_cmpl.auth_mode);
|
||||||
param->ble_security.auth_cmpl.auth_mode);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@@ -137,6 +137,10 @@ class BLEClientBase : public espbt::ESPBTClient, public Component {
|
|||||||
void log_gattc_warning_(const char *operation, esp_gatt_status_t status);
|
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_gattc_warning_(const char *operation, esp_err_t err);
|
||||||
void log_connection_params_(const char *param_type);
|
void log_connection_params_(const char *param_type);
|
||||||
|
// Compact error logging helpers to reduce flash usage
|
||||||
|
void log_error_(const char *message);
|
||||||
|
void log_error_(const char *message, int code);
|
||||||
|
void log_warning_(const char *message);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace esphome::esp32_ble_client
|
} // namespace esphome::esp32_ble_client
|
||||||
|
Reference in New Issue
Block a user