WPILibC++ 2023.4.3
|
A class that's a wrapper around a watchdog timer. More...
#include <frc/Watchdog.h>
Public Member Functions | |
Watchdog (units::second_t timeout, std::function< void()> callback) | |
Watchdog constructor. More... | |
template<typename Callable , typename Arg , typename... Args> | |
Watchdog (units::second_t timeout, Callable &&f, Arg &&arg, Args &&... args) | |
~Watchdog () | |
Watchdog (Watchdog &&rhs) | |
Watchdog & | operator= (Watchdog &&rhs) |
units::second_t | GetTime () const |
Returns the time since the watchdog was last fed. More... | |
void | SetTimeout (units::second_t timeout) |
Sets the watchdog's timeout. More... | |
units::second_t | GetTimeout () const |
Returns the watchdog's timeout. More... | |
bool | IsExpired () const |
Returns true if the watchdog timer has expired. More... | |
void | AddEpoch (std::string_view epochName) |
Adds time since last epoch to the list printed by PrintEpochs(). More... | |
void | PrintEpochs () |
Prints list of epochs added so far and their times. More... | |
void | Reset () |
Resets the watchdog timer. More... | |
void | Enable () |
Enables the watchdog timer. More... | |
void | Disable () |
Disables the watchdog timer. More... | |
void | SuppressTimeoutMessage (bool suppress) |
Enable or disable suppression of the generic timeout message. More... | |
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.
frc::Watchdog::Watchdog | ( | units::second_t | timeout, |
std::function< void()> | callback | ||
) |
Watchdog constructor.
timeout | The watchdog's timeout in seconds with microsecond resolution. |
callback | This function is called when the timeout expires. |
|
inline |
frc::Watchdog::~Watchdog | ( | ) |
frc::Watchdog::Watchdog | ( | Watchdog && | rhs | ) |
void frc::Watchdog::AddEpoch | ( | std::string_view | epochName | ) |
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. |
void frc::Watchdog::Disable | ( | ) |
Disables the watchdog timer.
void frc::Watchdog::Enable | ( | ) |
Enables the watchdog timer.
units::second_t frc::Watchdog::GetTime | ( | ) | const |
Returns the time since the watchdog was last fed.
units::second_t frc::Watchdog::GetTimeout | ( | ) | const |
Returns the watchdog's timeout.
bool frc::Watchdog::IsExpired | ( | ) | const |
Returns true if the watchdog timer has expired.
void frc::Watchdog::PrintEpochs | ( | ) |
Prints list of epochs added so far and their times.
void frc::Watchdog::Reset | ( | ) |
Resets the watchdog timer.
This also enables the timer if it was previously disabled.
void frc::Watchdog::SetTimeout | ( | units::second_t | timeout | ) |
Sets the watchdog's timeout.
timeout | The watchdog's timeout in seconds with microsecond resolution. |
void frc::Watchdog::SuppressTimeoutMessage | ( | bool | suppress | ) |
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. |