WPILibC++  unspecified
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Pages
SafePWM.h
1 /*----------------------------------------------------------------------------*/
2 /* Copyright (c) FIRST 2008-2017. All Rights Reserved. */
3 /* Open Source Software - may be modified and shared by FRC teams. The code */
4 /* must be accompanied by the FIRST BSD license file in the root directory of */
5 /* the project. */
6 /*----------------------------------------------------------------------------*/
7 
8 #pragma once
9 
10 #include <memory>
11 
12 #include "MotorSafety.h"
13 #include "MotorSafetyHelper.h"
14 #include "PWM.h"
15 #include "llvm/raw_ostream.h"
16 
17 namespace frc {
18 
26 class SafePWM : public PWM, public MotorSafety {
27  public:
28  explicit SafePWM(int channel);
29  virtual ~SafePWM() = default;
30 
31  void SetExpiration(double timeout);
32  double GetExpiration() const;
33  bool IsAlive() const;
34  void StopMotor();
35  bool IsSafetyEnabled() const;
36  void SetSafetyEnabled(bool enabled);
37  void GetDescription(llvm::raw_ostream& desc) const;
38 
39  virtual void SetSpeed(double speed);
40 
41  private:
42  std::unique_ptr<MotorSafetyHelper> m_safetyHelper;
43 };
44 
45 } // namespace frc
virtual void SetSpeed(double speed)
Feed the MotorSafety timer when setting the speed.
Definition: SafePWM.cpp:89
double GetExpiration() const
Return the expiration time for the PWM object.
Definition: SafePWM.cpp:37
void SetExpiration(double timeout)
Set the expiration time for the PWM object.
Definition: SafePWM.cpp:28
void StopMotor()
Stop the motor associated with this PWM object.
Definition: SafePWM.cpp:55
Definition: MotorSafety.h:16
SafePWM(int channel)
Constructor for a SafePWM object taking a channel number.
Definition: SafePWM.cpp:18
void SetSafetyEnabled(bool enabled)
Enable/disable motor safety for this device.
Definition: SafePWM.cpp:64
bool IsSafetyEnabled() const
Check if motor safety is enabled for this object.
Definition: SafePWM.cpp:73
A safe version of the PWM class.
Definition: SafePWM.h:26
bool IsAlive() const
Check if the PWM object is currently alive or stopped due to a timeout.
Definition: SafePWM.cpp:47
Class implements the PWM generation in the FPGA.
Definition: PWM.h:39