21static const char *
const TAG =
"http_request.watchdog";
24 if (timeout_ms == 0) {
27 this->saved_timeout_ms_ = this->get_timeout_();
28 this->set_timeout_(timeout_ms);
32 if (this->timeout_ms_ == 0) {
35 this->set_timeout_(this->saved_timeout_ms_);
38void WatchdogManager::set_timeout_(uint32_t timeout_ms) {
39 ESP_LOGV(TAG,
"Adjusting WDT to %" PRIu32
"ms", timeout_ms);
41#if ESP_IDF_VERSION_MAJOR >= 5
42 esp_task_wdt_config_t wdt_config = {
43 .timeout_ms = timeout_ms,
44 .idle_core_mask = (1 << SOC_CPU_CORES_NUM) - 1,
45 .trigger_panic =
true,
47 esp_task_wdt_reconfigure(&wdt_config);
49 esp_task_wdt_init(timeout_ms / 1000,
true);
54 watchdog_enable(timeout_ms,
true);
58uint32_t WatchdogManager::get_timeout_() {
59 uint32_t timeout_ms = 0;
62 timeout_ms = (uint32_t) CONFIG_ESP_TASK_WDT_TIMEOUT_S * 1000;
66 timeout_ms = watchdog_get_count() / 1000;
69 ESP_LOGVV(TAG,
"get_timeout: %" PRIu32
"ms", timeout_ms);