Expand description
Heartbeat watchdog
A versatile watchdog and heartbeat traits for various monitoring purposes in mission-critical systems (processes, single threads etc).
The crate is a part of the RoboPLC project and works on Linux only. No other platforms support is planned, except bare-metal.
§Communication
The crate provides out-of-the-box:
-
UDPsocket heartbeat/watchdog -
GPIOheartbeat/watchdog (requiresgpiofeature)
More communication methods can be added by implementing io::WatchdogIo and
Heart traits.
For high-level communication (e.g. TCP/IP) the edges are encoded as “+” for rising and “.” for falling to simplify sniffing/debugging purposes.
§Bare-metal
The crate has got integration with embassy for no_std
targets. Requires disabling defaults and enabling embassy feature.
§Error detection
The following heartbeat errors are detected:
-
Timeout- no heartbeat edge change has been detected within the specified time -
Window- heartbeat edge change has been detected out of the time window -
OutOfOrder- heartbeat edge change has been detected out of order (e.g. for TCP/IP communication)
Modules§
- io
- Watchdog I/O
Structs§
- Watchdog
- Watchdog
- Watchdog
Async - Watchdog
- Watchdog
Config - Watchdog configuration
Enums§
- Edge
- Edge
- Error
- Errors
- Fault
Kind - Fault state kind
- Range
- Heartbeat range
- State
- Watchdog state
- State
Event - State event
Traits§
- Heart
- Heartbeat client trait
- Heart
Async - Heartbeat async client trait
Type Aliases§
- Result
- Result type