10 #include <wpi/mutex.h>
11 #include <wpi/raw_ostream.h>
13 #include "frc/DriverStation.h"
14 #include "frc/ErrorBase.h"
15 #include "frc/Timer.h"
16 #include "frc/Watchdog.h"
80 virtual void StopMotor() = 0;
84 static constexpr
double kDefaultSafetyExpiration = 0.1;
86 Watchdog m_watchdog{kDefaultSafetyExpiration, [
this] { TimeoutFunc(); }};
89 bool m_enabled =
false;
91 mutable wpi::mutex m_thisMutex;
This class implements an extremely fast bulk output stream that can only output to a stream...
Definition: raw_ostream.h:45
bool IsAlive() const
Determine if the motor is still operating or has timed out.
WPILib FRC namespace.
Definition: SPIAccelerometerSim.h:18
bool IsSafetyEnabled() const
Return the state of the motor safety enabled flag.
This base class runs a watchdog timer and calls the subclass's StopMotor() function if the timeout ex...
Definition: MotorSafety.h:26
void SetExpiration(double expirationTime)
Set the expiration time for the corresponding motor safety object.
void Feed()
Feed the motor safety object.
A class that's a wrapper around a watchdog timer.
Definition: Watchdog.h:30
Base class for most objects.
Definition: ErrorBase.h:74
void SetSafetyEnabled(bool enabled)
Enable/disable motor safety for this device.
double GetExpiration() const
Retrieve the timeout value for the corresponding motor safety object.