Now you can download a copy of these docs so you can use them offline! Download now
SafePWM Class Reference

#include <SafePWM.h>

Inheritance diagram for SafePWM:
Collaboration diagram for SafePWM:

Public Member Functions

 SafePWM (uint32_t channel)
 
 SafePWM (uint8_t moduleNumber, uint32_t channel)
 
void SetExpiration (float timeout)
 
float GetExpiration ()
 
bool IsAlive ()
 
void StopMotor ()
 
bool IsSafetyEnabled ()
 
void SetSafetyEnabled (bool enabled)
 
void GetDescription (char *desc)
 
virtual void SetSpeed (float speed)
 
- Public Member Functions inherited from PWM
 PWM (uint32_t channel)
 
 PWM (uint8_t moduleNumber, uint32_t channel)
 
virtual ~PWM ()
 
virtual void SetRaw (uint8_t value)
 
virtual uint8_t GetRaw ()
 
void SetPeriodMultiplier (PeriodMultiplier mult)
 
void EnableDeadbandElimination (bool eliminateDeadband)
 
void SetBounds (int32_t max, int32_t deadbandMax, int32_t center, int32_t deadbandMin, int32_t min)
 
void SetBounds (double max, double deadbandMax, double center, double deadbandMin, double min)
 
uint32_t GetChannel ()
 
uint32_t GetModuleNumber ()
 
- Public Member Functions inherited from SensorBase
 SensorBase ()
 
virtual ~SensorBase ()
 
- Public Member Functions inherited from ErrorBase
virtual ErrorGetError ()
 Retrieve the current error. Get the current error information associated with this sensor.
 
virtual const ErrorGetError () const
 
virtual void SetErrnoError (const char *contextMessage, const char *filename, const char *function, uint32_t lineNumber) const
 Set error information associated with a C library call that set an error to the "errno" global variable. More...
 
virtual void SetImaqError (int success, const char *contextMessage, const char *filename, const char *function, uint32_t lineNumber) const
 Set the current error information associated from the nivision Imaq API. More...
 
virtual void SetError (Error::Code code, const char *contextMessage, const char *filename, const char *function, uint32_t lineNumber) const
 Set the current error information associated with this sensor. More...
 
virtual void SetWPIError (const char *errorMessage, const char *contextMessage, const char *filename, const char *function, uint32_t lineNumber) const
 Set the current error information associated with this sensor. More...
 
virtual void CloneError (ErrorBase *rhs) const
 
virtual void ClearError () const
 Clear the current error information associated with this sensor.
 
virtual bool StatusIsFatal () const
 Check if the current error code represents a fatal error. More...
 

Additional Inherited Members

- Public Types inherited from PWM
enum  PeriodMultiplier { kPeriodMultiplier_1X = 1, kPeriodMultiplier_2X = 2, kPeriodMultiplier_4X = 4 }
 
- Static Public Member Functions inherited from SensorBase
static void DeleteSingletons ()
 
static uint32_t GetDefaultAnalogModule ()
 
static uint32_t GetDefaultDigitalModule ()
 
static uint32_t GetDefaultSolenoidModule ()
 
static bool CheckAnalogModule (uint8_t moduleNumber)
 
static bool CheckDigitalModule (uint8_t moduleNumber)
 
static bool CheckPWMModule (uint8_t moduleNumber)
 
static bool CheckRelayModule (uint8_t moduleNumber)
 
static bool CheckSolenoidModule (uint8_t moduleNumber)
 
static bool CheckDigitalChannel (uint32_t channel)
 
static bool CheckRelayChannel (uint32_t channel)
 
static bool CheckPWMChannel (uint32_t channel)
 
static bool CheckAnalogChannel (uint32_t channel)
 
static bool CheckSolenoidChannel (uint32_t channel)
 
- Static Public Member Functions inherited from ErrorBase
static void SetGlobalError (Error::Code code, const char *contextMessage, const char *filename, const char *function, uint32_t lineNumber)
 
static void SetGlobalWPIError (const char *errorMessage, const char *contextMessage, const char *filename, const char *function, uint32_t lineNumber)
 
static ErrorGetGlobalError ()
 
- Static Public Attributes inherited from SensorBase
static const uint32_t kSystemClockTicksPerMicrosecond = 40
 
static const uint32_t kDigitalChannels = 14
 
static const uint32_t kAnalogChannels = 8
 
static const uint32_t kAnalogModules = 2
 
static const uint32_t kDigitalModules = 2
 
static const uint32_t kSolenoidChannels = 8
 
static const uint32_t kSolenoidModules = 2
 
static const uint32_t kPwmChannels = 10
 
static const uint32_t kRelayChannels = 8
 
static const uint32_t kChassisSlots = 8
 
- Protected Member Functions inherited from PWM
virtual void SetPosition (float pos)
 
virtual float GetPosition ()
 
virtual float GetSpeed ()
 
void ValueChanged (ITable *source, const std::string &key, EntryValue value, bool isNew)
 
void UpdateTable ()
 
void StartLiveWindowMode ()
 
void StopLiveWindowMode ()
 
std::string GetSmartDashboardType ()
 
void InitTable (ITable *subTable)
 
ITableGetTable ()
 
- Protected Member Functions inherited from SensorBase
void AddToSingletonList ()
 
- Protected Member Functions inherited from ErrorBase
 ErrorBase ()
 Initialize the instance status to 0 for now.
 
- Protected Attributes inherited from PWM
bool m_eliminateDeadband
 
int32_t m_maxPwm
 
int32_t m_deadbandMaxPwm
 
int32_t m_centerPwm
 
int32_t m_deadbandMinPwm
 
int32_t m_minPwm
 
ITablem_table
 
- Protected Attributes inherited from ErrorBase
Error m_error
 
- Static Protected Attributes inherited from PWM
static constexpr float kDefaultPwmPeriod = 5.05
 
static constexpr float kDefaultPwmCenter = 1.5
 
static const int32_t kDefaultPwmStepsDown = 128
 
static const int32_t kPwmDisabled = 0
 
- Static Protected Attributes inherited from ErrorBase
static SEM_ID _globalErrorMutex = semMCreate(SEM_Q_PRIORITY | SEM_DELETE_SAFE | SEM_INVERSION_SAFE)
 
static Error _globalError
 

Detailed Description

A safe version of the PWM class. It is safe because it implements the MotorSafety interface that provides timeouts in the event that the motor value is not updated before the expiration time. This delegates the actual work to a MotorSafetyHelper object that is used for all objects that implement MotorSafety.

Definition at line 22 of file SafePWM.h.

Constructor & Destructor Documentation

SafePWM::SafePWM ( uint32_t  channel)
explicit

Constructor for a SafePWM object taking a channel number

Parameters
channelThe channel number to be used for the underlying PWM object

Definition at line 24 of file SafePWM.cpp.

SafePWM::SafePWM ( uint8_t  moduleNumber,
uint32_t  channel 
)

Constructor for a SafePWM object taking channel and slot numbers.

Parameters
moduleNumberThe digital module (1 or 2).
channelThe PWM channel number on the module (1..10).

Definition at line 34 of file SafePWM.cpp.

Member Function Documentation

float SafePWM::GetExpiration ( )
virtual

Return the expiration time for the PWM object.

Returns
The expiration time value.

Implements MotorSafety.

Definition at line 57 of file SafePWM.cpp.

bool SafePWM::IsAlive ( )
virtual

Check if the PWM object is currently alive or stopped due to a timeout.

Returns
a bool value that is true if the motor has NOT timed out and should still be running.

Implements MotorSafety.

Definition at line 67 of file SafePWM.cpp.

bool SafePWM::IsSafetyEnabled ( )
virtual

Check if motor safety is enabled for this object

Returns
True if motor safety is enforced for this object

Implements MotorSafety.

Definition at line 96 of file SafePWM.cpp.

void SafePWM::SetSafetyEnabled ( bool  enabled)
virtual

Enable/disable motor safety for this device Turn on and off the motor safety option for this PWM object.

Parameters
enabledTrue if motor safety is enforced for this object

Implements MotorSafety.

Definition at line 87 of file SafePWM.cpp.

void SafePWM::SetSpeed ( float  speed)
virtual

Feed the MotorSafety timer when setting the speed. This method is called by the subclass motor whenever it updates its speed, thereby reseting the timeout value.

Parameters
speedValue to pass to the PWM class

Reimplemented from PWM.

Definition at line 112 of file SafePWM.cpp.

void SafePWM::StopMotor ( )
virtual

Stop the motor associated with this PWM object. This is called by the MotorSafetyHelper object when it has a timeout for this PWM and needs to stop it from running.

Implements MotorSafety.

Definition at line 77 of file SafePWM.cpp.


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

Generated on Sat Apr 26 2014 12:26:46 for WPILibC++ by doxygen 1.8.6