Crate heartbeat_watchdog

Crate heartbeat_watchdog 

Source
Expand description

Heartbeat watchdog crates.io page docs.rs page

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 (requires gpio 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.

§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
WatchdogAsync
Watchdog
WatchdogConfig
Watchdog configuration

Enums§

Edge
Edge
Error
Errors
FaultKind
Fault state kind
Range
Heartbeat range
State
Watchdog state
StateEvent
State event

Traits§

Heart
Heartbeat client trait
HeartAsync
Heartbeat async client trait

Type Aliases§

Result
Result type