12 #include <HAL/Types.h> 13 #include <llvm/raw_ostream.h> 15 #include "ErrorBase.h" 16 #include "MotorSafety.h" 17 #include "SmartDashboard/SendableBase.h" 37 enum Value { kOff, kOn, kForward, kReverse };
38 enum Direction { kBothDirections, kForwardOnly, kReverseOnly };
40 explicit Relay(
int channel, Direction direction = kBothDirections);
43 void Set(Value value);
45 int GetChannel()
const;
59 Direction m_direction;
61 HAL_RelayHandle m_forwardHandle = HAL_kInvalidHandle;
62 HAL_RelayHandle m_reverseHandle = HAL_kInvalidHandle;
64 std::unique_ptr<MotorSafetyHelper> m_safetyHelper;
Value Get() const
Get the Relay State.
Definition: Relay.cpp:183
Definition: RobotController.cpp:14
void Set(Value value)
Set the relay state.
Definition: Relay.cpp:122
Class for Spike style relay outputs.
Definition: Relay.h:35
void SetExpiration(double timeout) override
Set the expiration time for the Relay object.
Definition: Relay.cpp:224
void InitSendable(SendableBuilder &builder) override
Initializes this Sendable object.
Definition: Relay.cpp:275
Definition: MotorSafety.h:16
Definition: MotorSafetyHelper.h:20
void SetSafetyEnabled(bool enabled) override
Enable/disable motor safety for this device.
Definition: Relay.cpp:258
Relay(int channel, Direction direction=kBothDirections)
Relay constructor given a channel.
Definition: Relay.cpp:31
double GetExpiration() const override
Return the expiration time for the relay object.
Definition: Relay.cpp:233
void StopMotor() override
Stop the motor associated with this PWM object.
Definition: Relay.cpp:249
Base class for most objects.
Definition: ErrorBase.h:74
Definition: SendableBase.h:19
bool IsSafetyEnabled() const override
Check if motor safety is enabled for this object.
Definition: Relay.cpp:267
Definition: SendableBuilder.h:23
bool IsAlive() const override
Check if the relay object is currently alive or stopped due to a timeout.
Definition: Relay.cpp:241
This class implements an extremely fast bulk output stream that can only output to a stream...
Definition: raw_ostream.h:33
~Relay() override
Free the resource associated with a relay.
Definition: Relay.cpp:98