#include <SafePWM.h>
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 Error & | GetError () |
Retrieve the current error. Get the current error information associated with this sensor. | |
virtual const Error & | GetError () 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 Error & | GetGlobalError () |
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) |
ITable * | GetTable () |
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 |
ITable * | m_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 |
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.
|
explicit |
Constructor for a SafePWM object taking a channel number
channel | The 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.
moduleNumber | The digital module (1 or 2). |
channel | The PWM channel number on the module (1..10). |
Definition at line 34 of file SafePWM.cpp.
|
virtual |
Return the expiration time for the PWM object.
Implements MotorSafety.
Definition at line 57 of file SafePWM.cpp.
|
virtual |
Check if the PWM object is currently alive or stopped due to a timeout.
Implements MotorSafety.
Definition at line 67 of file SafePWM.cpp.
|
virtual |
Check if motor safety is enabled for this object
Implements MotorSafety.
Definition at line 96 of file SafePWM.cpp.
|
virtual |
Enable/disable motor safety for this device Turn on and off the motor safety option for this PWM object.
enabled | True if motor safety is enforced for this object |
Implements MotorSafety.
Definition at line 87 of file SafePWM.cpp.
|
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.
speed | Value to pass to the PWM class |
Reimplemented from PWM.
Definition at line 112 of file SafePWM.cpp.
|
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.