forked from Akcelerometry_drgania_WMT/PI_mikrokontroler
39 lines
925 B
C++
39 lines
925 B
C++
#pragma once
|
|
/**
|
|
* Watchdog — prosty interfejs do inicjalizacji i karmienia WDT z dowolnego modułu.
|
|
*
|
|
* Obsługiwane środowiska:
|
|
* - ESP32 Arduino Core / ESP-IDF (esp_task_wdt)
|
|
* - Fallback: no-op na innych platformach
|
|
*
|
|
* Użycie:
|
|
* Watchdog::init(5, true);
|
|
* Watchdog::addThisTask();
|
|
* ...
|
|
* Watchdog::feed();
|
|
*/
|
|
|
|
#include <stdint.h>
|
|
|
|
namespace Watchdog {
|
|
|
|
/** Inicjalizacja Task Watchdog (idempotentna). */
|
|
bool init(int timeout_seconds = 5, bool panic_on_trigger = true);
|
|
|
|
/** Dodaje bieżący task (wątki FreeRTOS: wołaj w ciele tego taska). */
|
|
bool addThisTask();
|
|
|
|
/** Usuwa bieżący task z nadzoru WDT. */
|
|
bool removeThisTask();
|
|
|
|
/** Karmi watchdog (reset licznika). */
|
|
void feed();
|
|
|
|
/** Zmienia timeout (wykonuje re-init wewnętrznie, jeśli trzeba). */
|
|
bool setTimeout(int timeout_seconds);
|
|
|
|
/** Czy watchdog jest aktywny (zainicjalizowany)? */
|
|
bool isActive();
|
|
|
|
} // namespace Watchdog
|