mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 07:03:55 +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