Dedicated safety supervisor monitoring subsystem heartbeats and controlling watchdog refresh. Compatible with hardware IWDG (STM32, ESP32, nRF), RTOS Task Watchdogs, and POSIX watchdogs. Zero dynamic heap allocations, zero threading overhead.
More...
#include <WatchdogSupervisor.hpp>
template<std::size_t MaxServices = 16, typename ClockPolicy = ChronoClockPolicy>
class corium::safety::WatchdogSupervisor< MaxServices, ClockPolicy >
Dedicated safety supervisor monitoring subsystem heartbeats and controlling watchdog refresh. Compatible with hardware IWDG (STM32, ESP32, nRF), RTOS Task Watchdogs, and POSIX watchdogs. Zero dynamic heap allocations, zero threading overhead.
- Template Parameters
-
| MaxServices | Maximum number of monitored services. |
| ClockPolicy | Time source policy (defaults to ChronoClockPolicy). |
◆ KickCallbackFn
template<std::size_t MaxServices = 16, typename ClockPolicy = ChronoClockPolicy>
◆ WatchdogSupervisor()
template<std::size_t MaxServices = 16, typename ClockPolicy = ChronoClockPolicy>
◆ beat()
template<std::size_t MaxServices = 16, typename ClockPolicy = ChronoClockPolicy>
Submit a heartbeat for a monitored service.
◆ heartbeatMonitor() [1/2]
template<std::size_t MaxServices = 16, typename ClockPolicy = ChronoClockPolicy>
◆ heartbeatMonitor() [2/2]
template<std::size_t MaxServices = 16, typename ClockPolicy = ChronoClockPolicy>
◆ registerService()
template<std::size_t MaxServices = 16, typename ClockPolicy = ChronoClockPolicy>
Register a service for supervision.
◆ setWatchdogKickCallback()
template<std::size_t MaxServices = 16, typename ClockPolicy = ChronoClockPolicy>
Configure the physical hardware/software watchdog kick callback.
- Parameters
-
| kickFn | Function called to refresh the watchdog timer. |
| userData | Pointer passed to the kick function. |
◆ supervise()
template<std::size_t MaxServices = 16, typename ClockPolicy = ChronoClockPolicy>
template<typename EventSinkType >
Perform a supervisor check iteration. Kicks the hardware watchdog if healthy; suppresses the kick and dispatches WatchdogTimeoutEvent if failed.
- Template Parameters
-
| EventSinkType | Event sink type to post failure events. |
- Parameters
-
| sink | Event sink handle to dispatch emergency events. |
- Returns
- true if all services were healthy and watchdog was kicked; false if watchdog was suppressed.
◆ totalKicks()
template<std::size_t MaxServices = 16, typename ClockPolicy = ChronoClockPolicy>
Get total number of successful watchdog kicks.
◆ totalSuppressions()
template<std::size_t MaxServices = 16, typename ClockPolicy = ChronoClockPolicy>
Get total number of watchdog kick suppressions due to health violations.
The documentation for this class was generated from the following file: