mirror of
https://github.com/esphome/esphome.git
synced 2025-10-30 14:43:51 +00:00
warnings strings flash
This commit is contained in:
@@ -148,7 +148,7 @@ void WiFiComponent::loop() {
|
|||||||
|
|
||||||
switch (this->state_) {
|
switch (this->state_) {
|
||||||
case WIFI_COMPONENT_STATE_COOLDOWN: {
|
case WIFI_COMPONENT_STATE_COOLDOWN: {
|
||||||
this->status_set_warning("waiting to reconnect");
|
this->status_set_warning(LOG_STR("waiting to reconnect"));
|
||||||
if (millis() - this->action_started_ > 5000) {
|
if (millis() - this->action_started_ > 5000) {
|
||||||
if (this->fast_connect_ || this->retry_hidden_) {
|
if (this->fast_connect_ || this->retry_hidden_) {
|
||||||
if (!this->selected_ap_.get_bssid().has_value())
|
if (!this->selected_ap_.get_bssid().has_value())
|
||||||
@@ -161,13 +161,13 @@ void WiFiComponent::loop() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case WIFI_COMPONENT_STATE_STA_SCANNING: {
|
case WIFI_COMPONENT_STATE_STA_SCANNING: {
|
||||||
this->status_set_warning("scanning for networks");
|
this->status_set_warning(LOG_STR("scanning for networks"));
|
||||||
this->check_scanning_finished();
|
this->check_scanning_finished();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case WIFI_COMPONENT_STATE_STA_CONNECTING:
|
case WIFI_COMPONENT_STATE_STA_CONNECTING:
|
||||||
case WIFI_COMPONENT_STATE_STA_CONNECTING_2: {
|
case WIFI_COMPONENT_STATE_STA_CONNECTING_2: {
|
||||||
this->status_set_warning("associating to network");
|
this->status_set_warning(LOG_STR("associating to network"));
|
||||||
this->check_connecting_finished();
|
this->check_connecting_finished();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
namespace esphome {
|
namespace esphome {
|
||||||
|
|
||||||
static const char *const TAG = "component";
|
static const char *const TAG = "component";
|
||||||
static const char *const UNSPECIFIED_MESSAGE = "unspecified";
|
static const auto *const UNSPECIFIED_MESSAGE = LOG_STR("unspecified");
|
||||||
|
|
||||||
// Global vectors for component data that doesn't belong in every instance.
|
// Global vectors for component data that doesn't belong in every instance.
|
||||||
// Using vector instead of unordered_map for both because:
|
// Using vector instead of unordered_map for both because:
|
||||||
@@ -143,7 +143,7 @@ void Component::call_dump_config() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
ESP_LOGE(TAG, " %s is marked FAILED: %s", this->get_component_source(),
|
ESP_LOGE(TAG, " %s is marked FAILED: %s", this->get_component_source(),
|
||||||
error_msg ? error_msg : UNSPECIFIED_MESSAGE);
|
error_msg ? error_msg : LOG_STR_ARG(UNSPECIFIED_MESSAGE));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -280,20 +280,36 @@ bool Component::is_ready() const {
|
|||||||
bool Component::can_proceed() { return true; }
|
bool Component::can_proceed() { return true; }
|
||||||
bool Component::status_has_warning() const { return this->component_state_ & STATUS_LED_WARNING; }
|
bool Component::status_has_warning() const { return this->component_state_ & STATUS_LED_WARNING; }
|
||||||
bool Component::status_has_error() const { return this->component_state_ & STATUS_LED_ERROR; }
|
bool Component::status_has_error() const { return this->component_state_ & STATUS_LED_ERROR; }
|
||||||
void Component::status_set_warning(const char *message) {
|
|
||||||
|
void Component::status_set_warning_flag_() {
|
||||||
// Don't spam the log. This risks missing different warning messages though.
|
// Don't spam the log. This risks missing different warning messages though.
|
||||||
if ((this->component_state_ & STATUS_LED_WARNING) != 0)
|
if ((this->component_state_ & STATUS_LED_WARNING) != 0)
|
||||||
return;
|
return;
|
||||||
this->component_state_ |= STATUS_LED_WARNING;
|
this->component_state_ |= STATUS_LED_WARNING;
|
||||||
App.app_state_ |= STATUS_LED_WARNING;
|
App.app_state_ |= STATUS_LED_WARNING;
|
||||||
ESP_LOGW(TAG, "%s set Warning flag: %s", this->get_component_source(), message ? message : UNSPECIFIED_MESSAGE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Component::status_set_warning(const char *message) {
|
||||||
|
this->status_set_warning_flag_();
|
||||||
|
if ((this->component_state_ & STATUS_LED_WARNING) != 0)
|
||||||
|
ESP_LOGW(TAG, "%s set Warning flag: %s", this->get_component_source(),
|
||||||
|
message ? message : LOG_STR_ARG(UNSPECIFIED_MESSAGE));
|
||||||
|
}
|
||||||
|
#ifdef USE_STORE_LOG_STR_IN_FLASH
|
||||||
|
void Component::status_set_warning(const LogString *message) {
|
||||||
|
this->status_set_warning_flag_();
|
||||||
|
if ((this->component_state_ & STATUS_LED_WARNING) != 0)
|
||||||
|
ESP_LOGW(TAG, "%s set Warning flag: %s", this->get_component_source(),
|
||||||
|
message ? LOG_STR_ARG(message) : LOG_STR_ARG(UNSPECIFIED_MESSAGE));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
void Component::status_set_error(const char *message) {
|
void Component::status_set_error(const char *message) {
|
||||||
if ((this->component_state_ & STATUS_LED_ERROR) != 0)
|
if ((this->component_state_ & STATUS_LED_ERROR) != 0)
|
||||||
return;
|
return;
|
||||||
this->component_state_ |= STATUS_LED_ERROR;
|
this->component_state_ |= STATUS_LED_ERROR;
|
||||||
App.app_state_ |= STATUS_LED_ERROR;
|
App.app_state_ |= STATUS_LED_ERROR;
|
||||||
ESP_LOGE(TAG, "%s set Error flag: %s", this->get_component_source(), message ? message : UNSPECIFIED_MESSAGE);
|
ESP_LOGE(TAG, "%s set Error flag: %s", this->get_component_source(),
|
||||||
|
message ? message : LOG_STR_ARG(UNSPECIFIED_MESSAGE));
|
||||||
if (message != nullptr) {
|
if (message != nullptr) {
|
||||||
// Lazy allocate the error messages vector if needed
|
// Lazy allocate the error messages vector if needed
|
||||||
if (!component_error_messages) {
|
if (!component_error_messages) {
|
||||||
|
|||||||
@@ -203,6 +203,9 @@ class Component {
|
|||||||
bool status_has_error() const;
|
bool status_has_error() const;
|
||||||
|
|
||||||
void status_set_warning(const char *message = nullptr);
|
void status_set_warning(const char *message = nullptr);
|
||||||
|
#ifdef USE_STORE_LOG_STR_IN_FLASH
|
||||||
|
void status_set_warning(const LogString *message);
|
||||||
|
#endif
|
||||||
|
|
||||||
void status_set_error(const char *message = nullptr);
|
void status_set_error(const char *message = nullptr);
|
||||||
|
|
||||||
@@ -239,6 +242,9 @@ class Component {
|
|||||||
/// Helper to set component state (clears state bits and sets new state)
|
/// Helper to set component state (clears state bits and sets new state)
|
||||||
void set_component_state_(uint8_t state);
|
void set_component_state_(uint8_t state);
|
||||||
|
|
||||||
|
/// Helper to set warning flag without duplicating logic
|
||||||
|
void status_set_warning_flag_();
|
||||||
|
|
||||||
/** Set an interval function with a unique name. Empty name means no cancelling possible.
|
/** Set an interval function with a unique name. Empty name means no cancelling possible.
|
||||||
*
|
*
|
||||||
* This will call f every interval ms. Can be cancelled via CancelInterval().
|
* This will call f every interval ms. Can be cancelled via CancelInterval().
|
||||||
|
|||||||
Reference in New Issue
Block a user