WPILibC++  2019.3.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
frc::Watchdog Class Reference

A class that's a wrapper around a watchdog timer. More...

#include <Watchdog.h>

Public Member Functions

 Watchdog (double timeout, std::function< void()> callback)
 Watchdog constructor. More...
 
template<typename Callable , typename Arg , typename... Args>
 Watchdog (double timeout, Callable &&f, Arg &&arg, Args &&...args)
 
 Watchdog (Watchdog &&)=default
 
Watchdogoperator= (Watchdog &&)=default
 
double GetTime () const
 Returns the time in seconds since the watchdog was last fed.
 
void SetTimeout (double timeout)
 Sets the watchdog's timeout. More...
 
double GetTimeout () const
 Returns the watchdog's timeout in seconds.
 
bool IsExpired () const
 Returns true if the watchdog timer has expired.
 
void AddEpoch (wpi::StringRef 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.
 
void Reset ()
 Resets the watchdog timer. More...
 
void Enable ()
 Enables the watchdog timer.
 
void Disable ()
 Disables the watchdog timer.
 
void SuppressTimeoutMessage (bool suppress)
 Enable or disable suppression of the generic timeout message. More...
 

Detailed Description

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.

Constructor & Destructor Documentation

frc::Watchdog::Watchdog ( double  timeout,
std::function< void()>  callback 
)

Watchdog constructor.

Parameters
timeoutThe watchdog's timeout in seconds with microsecond resolution.
callbackThis function is called when the timeout expires.

Member Function Documentation

void frc::Watchdog::AddEpoch ( wpi::StringRef  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.

Parameters
epochNameThe name to associate with the epoch.
void frc::Watchdog::Reset ( )

Resets the watchdog timer.

This also enables the timer if it was previously disabled.

void frc::Watchdog::SetTimeout ( double  timeout)

Sets the watchdog's timeout.

Parameters
timeoutThe 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.

Parameters
suppressWhether to suppress generic timeout message.

The documentation for this class was generated from the following file: