19static const char *
const TAG =
"http_request.watchdog";
22 if (timeout_ms == 0) {
25 this->saved_timeout_ms_ = this->get_timeout_();
26 this->set_timeout_(timeout_ms);
30 if (this->timeout_ms_ == 0) {
33 this->set_timeout_(this->saved_timeout_ms_);
36void WatchdogManager::set_timeout_(
uint32_t timeout_ms) {
37 ESP_LOGV(TAG,
"Adjusting WDT to %" PRIu32
"ms", timeout_ms);
39 esp_task_wdt_config_t wdt_config = {
40 .timeout_ms = timeout_ms,
42 .trigger_panic =
false,
44#if CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0
45 wdt_config.idle_core_mask |= (1U << 0U);
47#if CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1
48 wdt_config.idle_core_mask |= (1U << 1U);
50#if CONFIG_ESP_TASK_WDT_PANIC
51 wdt_config.trigger_panic =
true;
53 esp_task_wdt_reconfigure(&wdt_config);
57 watchdog_enable(timeout_ms,
true);
61uint32_t WatchdogManager::get_timeout_() {
65 timeout_ms = (
uint32_t) CONFIG_ESP_TASK_WDT_TIMEOUT_S * 1000;
69 timeout_ms = watchdog_get_count() / 1000;
72 ESP_LOGVV(TAG,
"get_timeout: %" PRIu32
"ms", timeout_ms);