WPILibC++  trunk
SafePWM.cpp
1 /*----------------------------------------------------------------------------*/
2 /* Copyright (c) FIRST 2008. 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 $(WIND_BASE)/WPILib. */
5 /*----------------------------------------------------------------------------*/
6 
7 #include "SafePWM.h"
8 
9 #include "MotorSafetyHelper.h"
10 
14 void SafePWM::InitSafePWM()
15 {
16  m_safetyHelper = new MotorSafetyHelper(this);
17  m_safetyHelper->SetSafetyEnabled(false);
18 }
19 
24 SafePWM::SafePWM(uint32_t channel): PWM(channel)
25 {
26  InitSafePWM();
27 }
28 
34 SafePWM::SafePWM(uint8_t moduleNumber, uint32_t channel): PWM(moduleNumber, channel)
35 {
36  InitSafePWM();
37 }
38 
39 SafePWM::~SafePWM()
40 {
41  delete m_safetyHelper;
42 }
43 
44 /*
45  * Set the expiration time for the PWM object
46  * @param timeout The timeout (in seconds) for this motor object
47  */
48 void SafePWM::SetExpiration(float timeout)
49 {
50  m_safetyHelper->SetExpiration(timeout);
51 }
52 
58 {
59  return m_safetyHelper->GetExpiration();
60 }
61 
68 {
69  return m_safetyHelper->IsAlive();
70 }
71 
78 {
79  SetRaw(kPwmDisabled);
80 }
81 
87 void SafePWM::SetSafetyEnabled(bool enabled)
88 {
89  m_safetyHelper->SetSafetyEnabled(enabled);
90 }
91 
97 {
98  return m_safetyHelper->IsSafetyEnabled();
99 }
100 
101 void SafePWM::GetDescription(char *desc)
102 {
103  sprintf(desc, "PWM %ld on module %ld", GetChannel(), GetModuleNumber());
104 }
105 
112 void SafePWM::SetSpeed(float speed)
113 {
114  PWM::SetSpeed(speed);
115  m_safetyHelper->Feed();
116 }
117 
void SetSafetyEnabled(bool enabled)
Definition: SafePWM.cpp:87
bool IsSafetyEnabled()
Definition: SafePWM.cpp:96
Definition: PWM.h:32
virtual void SetSpeed(float speed)
Definition: SafePWM.cpp:112
void SetSafetyEnabled(bool enabled)
bool IsAlive()
Definition: SafePWM.cpp:67
float GetExpiration()
Definition: SafePWM.cpp:57
virtual void SetRaw(uint8_t value)
Definition: PWM.cpp:323
void StopMotor()
Definition: SafePWM.cpp:77
SafePWM(uint32_t channel)
Definition: SafePWM.cpp:24
virtual void SetSpeed(float speed)
Definition: PWM.cpp:236