#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 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