mirror of
https://github.com/esphome/esphome.git
synced 2026-09-02 02:56:01 +00:00
[core] Inline status_clear_warning/error fast path (#14571)
This commit is contained in:
@@ -422,15 +422,11 @@ void Component::status_set_error(const LogString *message) {
|
||||
store_component_error_message(this, LOG_STR_ARG(message), true);
|
||||
}
|
||||
}
|
||||
void Component::status_clear_warning() {
|
||||
if ((this->component_state_ & STATUS_LED_WARNING) == 0)
|
||||
return;
|
||||
void Component::status_clear_warning_slow_path_() {
|
||||
this->component_state_ &= ~STATUS_LED_WARNING;
|
||||
ESP_LOGW(TAG, "%s cleared Warning flag", LOG_STR_ARG(this->get_component_log_str()));
|
||||
}
|
||||
void Component::status_clear_error() {
|
||||
if ((this->component_state_ & STATUS_LED_ERROR) == 0)
|
||||
return;
|
||||
void Component::status_clear_error_slow_path_() {
|
||||
this->component_state_ &= ~STATUS_LED_ERROR;
|
||||
ESP_LOGE(TAG, "%s cleared Error flag", LOG_STR_ARG(this->get_component_log_str()));
|
||||
}
|
||||
|
||||
@@ -251,9 +251,17 @@ class Component {
|
||||
void status_set_error(const char *message);
|
||||
void status_set_error(const LogString *message);
|
||||
|
||||
void status_clear_warning();
|
||||
void status_clear_warning() {
|
||||
if ((this->component_state_ & STATUS_LED_WARNING) == 0)
|
||||
return;
|
||||
this->status_clear_warning_slow_path_();
|
||||
}
|
||||
|
||||
void status_clear_error();
|
||||
void status_clear_error() {
|
||||
if ((this->component_state_ & STATUS_LED_ERROR) == 0)
|
||||
return;
|
||||
this->status_clear_error_slow_path_();
|
||||
}
|
||||
|
||||
/** Set warning status flag and automatically clear it after a timeout.
|
||||
*
|
||||
@@ -505,6 +513,9 @@ class Component {
|
||||
bool cancel_defer(const char *name); // NOLINT
|
||||
bool cancel_defer(uint32_t id); // NOLINT
|
||||
|
||||
void status_clear_warning_slow_path_();
|
||||
void status_clear_error_slow_path_();
|
||||
|
||||
// Ordered for optimal packing on 32-bit systems
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user