class wpilib.Watchdog(timeout: wpimath.units.seconds, callback: Callable[[], None])

Bases: pybind11_object

A class that’s a wrapper around a watchdog timer.

When the timer expires, a message is printed to the console and an optional user-provided callback is invoked.

The watchdog is initialized disabled, so the user needs to call Enable() before use.

Watchdog constructor.

  • timeout – The watchdog’s timeout in seconds with microsecond resolution.

  • callback – This function is called when the timeout expires.

addEpoch(epochName: str) None

Adds time since last epoch to the list printed by PrintEpochs().

Epochs are a way to partition the time elapsed so that when overruns occur, one can determine which parts of an operation consumed the most time.


epochName – The name to associate with the epoch.

disable() None

Disables the watchdog timer.

enable() None

Enables the watchdog timer.

getTime() wpimath.units.seconds

Returns the time since the watchdog was last fed.

getTimeout() wpimath.units.seconds

Returns the watchdog’s timeout.

isExpired() bool

Returns true if the watchdog timer has expired.

printEpochs() None

Prints list of epochs added so far and their times.

reset() None

Resets the watchdog timer.

This also enables the timer if it was previously disabled.

setTimeout(timeout: wpimath.units.seconds) None

Sets the watchdog’s timeout.


timeout – The watchdog’s timeout in seconds with microsecond resolution.

suppressTimeoutMessage(suppress: bool) None

Enable or disable suppression of the generic timeout message.

This may be desirable if the user-provided callback already prints a more specific message.


suppress – Whether to suppress generic timeout message.