mirror of
https://github.com/esphome/esphome.git
synced 2026-09-03 03:26:02 +00:00
[core] Keep scheduler dump cancelled marker string in flash on ESP8266 (#18906)
This commit is contained in:
@@ -193,7 +193,7 @@ void HOT Scheduler::set_timer_common_(Component *component, SchedulerItem::Type
|
||||
}
|
||||
|
||||
#ifdef ESPHOME_DEBUG_SCHEDULER
|
||||
this->debug_log_timer_(item, name_type, static_name, hash_or_id, type, delay, now_64);
|
||||
this->debug_log_timer_(item, name_type, static_name, hash_or_id, delay, now_64);
|
||||
#endif /* ESPHOME_DEBUG_SCHEDULER */
|
||||
}
|
||||
|
||||
@@ -438,9 +438,10 @@ uint32_t HOT Scheduler::call(uint32_t now) {
|
||||
SchedulerNameLog name_log;
|
||||
bool is_cancelled = is_item_removed_(item);
|
||||
ESP_LOGD(TAG, " %s '%s/%s' interval=%" PRIu32 " next_execution in %" PRIu64 "ms at %" PRIu64 "%s",
|
||||
item->get_type_str(), LOG_STR_ARG(item->get_source()),
|
||||
LOG_STR_ARG(item->get_type_str()), LOG_STR_ARG(item->get_source()),
|
||||
name_log.format(item->get_name_type(), item->get_name(), item->get_name_hash_or_id()), item->interval,
|
||||
item->get_next_execution() - now_64, item->get_next_execution(), is_cancelled ? " [CANCELLED]" : "");
|
||||
item->get_next_execution() - now_64, item->get_next_execution(),
|
||||
is_cancelled ? LOG_STR_LITERAL(" [CANCELLED]") : LOG_STR_LITERAL(""));
|
||||
|
||||
old_items.push_back(item);
|
||||
}
|
||||
@@ -512,7 +513,7 @@ uint32_t HOT Scheduler::call(uint32_t now) {
|
||||
{
|
||||
SchedulerNameLog name_log;
|
||||
ESP_LOGV(TAG, "Running %s '%s/%s' with interval=%" PRIu32 " next_execution=%" PRIu64 " (now=%" PRIu64 ")",
|
||||
item->get_type_str(), LOG_STR_ARG(item->get_source()),
|
||||
LOG_STR_ARG(item->get_type_str()), LOG_STR_ARG(item->get_source()),
|
||||
name_log.format(item->get_name_type(), item->get_name(), item->get_name_hash_or_id()), item->interval,
|
||||
item->get_next_execution(), now_64);
|
||||
}
|
||||
@@ -794,7 +795,7 @@ void Scheduler::trim_freelist() {
|
||||
|
||||
#ifdef ESPHOME_DEBUG_SCHEDULER
|
||||
void Scheduler::debug_log_timer_(const SchedulerItem *item, NameType name_type, const char *static_name,
|
||||
uint32_t hash_or_id, SchedulerItem::Type type, uint32_t delay, uint64_t now) {
|
||||
uint32_t hash_or_id, uint32_t delay, uint64_t now) {
|
||||
// Validate static strings in debug mode
|
||||
if (name_type == NameType::STATIC_STRING && static_name != nullptr) {
|
||||
validate_static_string(static_name);
|
||||
@@ -802,8 +803,8 @@ void Scheduler::debug_log_timer_(const SchedulerItem *item, NameType name_type,
|
||||
|
||||
// Debug logging
|
||||
SchedulerNameLog name_log;
|
||||
const char *type_str = (type == SchedulerItem::TIMEOUT) ? "timeout" : "interval";
|
||||
if (type == SchedulerItem::TIMEOUT) {
|
||||
const char *type_str = LOG_STR_ARG(item->get_type_str());
|
||||
if (item->type == SchedulerItem::TIMEOUT) {
|
||||
ESP_LOGD(TAG, "set_%s(name='%s/%s', %s=%" PRIu32 ")", type_str, LOG_STR_ARG(item->get_source()),
|
||||
name_log.format(name_type, static_name, hash_or_id), type_str, delay);
|
||||
} else {
|
||||
|
||||
@@ -254,7 +254,7 @@ class Scheduler {
|
||||
// This is correct because millis_major_ that creates these values is also 16 bits.
|
||||
next_execution_high_ = static_cast<uint16_t>(value >> 32);
|
||||
}
|
||||
constexpr const char *get_type_str() const { return (type == TIMEOUT) ? "timeout" : "interval"; }
|
||||
const LogString *get_type_str() const { return (type == TIMEOUT) ? LOG_STR("timeout") : LOG_STR("interval"); }
|
||||
// The owning component, or nullptr for SELF_POINTER items (whose slot holds source_name instead).
|
||||
// All component access goes through this so SELF_POINTER items read as component-less.
|
||||
Component *get_component() const { return name_type_ == NameType::SELF_POINTER ? nullptr : component; }
|
||||
@@ -404,7 +404,7 @@ class Scheduler {
|
||||
#ifdef ESPHOME_DEBUG_SCHEDULER
|
||||
// Helper for debug logging in set_timer_common_ - extracted to reduce code size
|
||||
void debug_log_timer_(const SchedulerItem *item, NameType name_type, const char *static_name, uint32_t hash_or_id,
|
||||
SchedulerItem::Type type, uint32_t delay, uint64_t now);
|
||||
uint32_t delay, uint64_t now);
|
||||
#endif /* ESPHOME_DEBUG_SCHEDULER */
|
||||
|
||||
#ifndef ESPHOME_THREAD_SINGLE
|
||||
|
||||
Reference in New Issue
Block a user