3 releases
new 0.1.2 | Mar 22, 2025 |
---|---|
0.1.1 | Mar 22, 2025 |
0.1.0 | Mar 22, 2025 |
#350 in Embedded development
19KB
452 lines
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:
-
UDP
socket heartbeat/watchdog -
GPIO
heartbeat/watchdog (requiresgpio
feature)
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.
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)
TODO
nostd
support
Dependencies
~4–9MB
~99K SLoC