WPILibC++
unspecified
|
REV Robotics Speed Controller. More...
#include <Spark.h>
Public Member Functions | |
Spark (uint32_t channel) | |
Note that the Spark uses the following bounds for PWM values. More... | |
virtual void | Set (float value, uint8_t syncGroup=0) override |
Set the PWM value. More... | |
virtual float | Get () const override |
Get the recently set value of the PWM. More... | |
virtual void | Disable () override |
Common interface for disabling a motor. | |
virtual void | StopMotor () override |
Common interface to stop the motor until Set is called again. | |
virtual void | PIDWrite (float output) override |
Write out the PID value as seen in the PIDOutput base object. More... | |
virtual void | SetInverted (bool isInverted) override |
Common interface for inverting direction of a speed controller. More... | |
virtual bool | GetInverted () const override |
Common interface for the inverting direction of a speed controller. More... | |
![]() | |
SafePWM (uint32_t channel) | |
Constructor for a SafePWM object taking a channel number. More... | |
void | SetExpiration (float timeout) |
Set the expiration time for the PWM object. More... | |
float | GetExpiration () const |
Return the expiration time for the PWM object. More... | |
bool | IsAlive () const |
Check if the PWM object is currently alive or stopped due to a timeout. More... | |
bool | IsSafetyEnabled () const |
Check if motor safety is enabled for this object. More... | |
void | SetSafetyEnabled (bool enabled) |
Enable/disable motor safety for this device Turn on and off the motor safety option for this PWM object. More... | |
void | GetDescription (std::ostringstream &desc) const |
virtual void | SetSpeed (float speed) |
Feed the MotorSafety timer when setting the speed. More... | |
![]() | |
PWM (uint32_t channel) | |
Allocate a PWM given a channel number. More... | |
virtual | ~PWM () |
Free the PWM channel. More... | |
virtual void | SetRaw (unsigned short value) |
Set the PWM value directly to the hardware. More... | |
virtual unsigned short | GetRaw () const |
Get the PWM value directly from the hardware. More... | |
void | SetPeriodMultiplier (PeriodMultiplier mult) |
Slow down the PWM signal for old devices. More... | |
void | SetZeroLatch () |
void | EnableDeadbandElimination (bool eliminateDeadband) |
Optionally eliminate the deadband from a speed controller. More... | |
void | SetBounds (int32_t max, int32_t deadbandMax, int32_t center, int32_t deadbandMin, int32_t min) |
Set the bounds on the PWM values. More... | |
void | SetBounds (double max, double deadbandMax, double center, double deadbandMin, double min) |
Set the bounds on the PWM pulse widths. More... | |
uint32_t | GetChannel () const |
![]() | |
SensorBase () | |
Creates an instance of the sensor base and gets an FPGA handle. | |
SensorBase (const SensorBase &)=delete | |
SensorBase & | operator= (const SensorBase &)=delete |
![]() | |
ErrorBase (const ErrorBase &)=delete | |
ErrorBase & | operator= (const ErrorBase &)=delete |
virtual Error & | GetError () |
Retrieve the current error. More... | |
virtual const Error & | GetError () const |
virtual void | SetErrnoError (llvm::StringRef contextMessage, llvm::StringRef filename, llvm::StringRef 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, llvm::StringRef contextMessage, llvm::StringRef filename, llvm::StringRef function, uint32_t lineNumber) const |
Set the current error information associated from the nivision Imaq API. More... | |
virtual void | SetError (Error::Code code, llvm::StringRef contextMessage, llvm::StringRef filename, llvm::StringRef function, uint32_t lineNumber) const |
Set the current error information associated with this sensor. More... | |
virtual void | SetWPIError (llvm::StringRef errorMessage, Error::Code code, llvm::StringRef contextMessage, llvm::StringRef filename, llvm::StringRef function, uint32_t lineNumber) const |
Set the current error information associated with this sensor. More... | |
virtual void | CloneError (const 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... | |
![]() | |
virtual void | ValueChangedEx (ITable *source, llvm::StringRef key, std::shared_ptr< nt::Value > value, unsigned int flags) |
Extended version of ValueChanged. More... | |
Additional Inherited Members | |
![]() | |
enum | PeriodMultiplier { kPeriodMultiplier_1X = 1, kPeriodMultiplier_2X = 2, kPeriodMultiplier_4X = 4 } |
![]() | |
static void | DeleteSingletons () |
Delete all the singleton classes on the list. More... | |
static uint32_t | GetDefaultSolenoidModule () |
static bool | CheckSolenoidModule (uint8_t moduleNumber) |
Check that the solenoid module number is valid. More... | |
static bool | CheckDigitalChannel (uint32_t channel) |
Check that the digital channel number is valid. More... | |
static bool | CheckRelayChannel (uint32_t channel) |
Check that the digital channel number is valid. More... | |
static bool | CheckPWMChannel (uint32_t channel) |
Check that the digital channel number is valid. More... | |
static bool | CheckAnalogInput (uint32_t channel) |
Check that the analog input number is value. More... | |
static bool | CheckAnalogOutput (uint32_t channel) |
Check that the analog output number is valid. More... | |
static bool | CheckSolenoidChannel (uint32_t channel) |
Verify that the solenoid channel number is within limits. More... | |
static bool | CheckPDPChannel (uint32_t channel) |
Verify that the power distribution channel number is within limits. More... | |
![]() | |
static void | SetGlobalError (Error::Code code, llvm::StringRef contextMessage, llvm::StringRef filename, llvm::StringRef function, uint32_t lineNumber) |
static void | SetGlobalWPIError (llvm::StringRef errorMessage, llvm::StringRef contextMessage, llvm::StringRef filename, llvm::StringRef function, uint32_t lineNumber) |
static Error & | GetGlobalError () |
Retrieve the current global error. | |
![]() | |
static const uint32_t | kDigitalChannels = 26 |
static const uint32_t | kAnalogInputs = 8 |
static const uint32_t | kAnalogOutputs = 2 |
static const uint32_t | kSolenoidChannels = 8 |
static const uint32_t | kSolenoidModules = 2 |
static const uint32_t | kPwmChannels = 20 |
static const uint32_t | kRelayChannels = 8 |
static const uint32_t | kPDPChannels = 16 |
static const uint32_t | kChassisSlots = 8 |
![]() | |
virtual void | SetPosition (float pos) |
Set the PWM value based on a position. More... | |
virtual float | GetPosition () const |
Get the PWM value in terms of a position. More... | |
virtual float | GetSpeed () const |
Get the PWM value in terms of speed. More... | |
void | ValueChanged (ITable *source, llvm::StringRef key, std::shared_ptr< nt::Value > value, bool isNew) override |
Called when a key-value pair is changed in a ITable. More... | |
void | UpdateTable () override |
Update the table for this sendable object with the latest values. | |
void | StartLiveWindowMode () override |
Start having this sendable object automatically respond to value changes reflect the value on the table. | |
void | StopLiveWindowMode () override |
Stop having this sendable object automatically respond to value changes. | |
std::string | GetSmartDashboardType () const override |
void | InitTable (std::shared_ptr< ITable > subTable) override |
Initializes a table for this sendable object. More... | |
std::shared_ptr< ITable > | GetTable () const override |
![]() | |
void | AddToSingletonList () |
Add sensor to the singleton list. More... | |
![]() | |
bool | m_eliminateDeadband |
int32_t | m_maxPwm |
int32_t | m_deadbandMaxPwm |
int32_t | m_centerPwm |
int32_t | m_deadbandMinPwm |
int32_t | m_minPwm |
std::shared_ptr< ITable > | m_table |
![]() | |
Error | m_error |
![]() | |
static constexpr float | kDefaultPwmPeriod = 5.05 |
kDefaultPwmPeriod is in ms More... | |
static constexpr float | kDefaultPwmCenter = 1.5 |
kDefaultPwmCenter is the PWM range center in ms | |
static const int32_t | kDefaultPwmStepsDown = 1000 |
kDefaultPWMStepsDown is the number of PWM steps below the centerpoint | |
static const int32_t | kPwmDisabled = 0 |
![]() | |
static void * | m_digital_ports [kDigitalChannels] |
static void * | m_relay_ports [kRelayChannels] |
static void * | m_pwm_ports [kPwmChannels] |
![]() | |
static priority_mutex | _globalErrorMutex |
static Error | _globalError |
REV Robotics Speed Controller.
|
explicit |
Note that the Spark uses the following bounds for PWM values.
These values should work reasonably well for most controllers, but if users experience issues such as asymmetric behavior around the deadband or inability to saturate the controller in either direction, calibration is recommended. The calibration procedure can be found in the Spark User Manual available from REV Robotics.
2.003ms = full "forward" 1.55ms = the "high end" of the deadband range 1.50ms = center of the deadband range (off) 1.46ms = the "low end" of the deadband range 0.999ms = full "reverse" Constructor for a Spark
|
overridevirtual |
Get the recently set value of the PWM.
Implements SpeedController.
|
overridevirtual |
Common interface for the inverting direction of a speed controller.
Implements SpeedController.
|
overridevirtual |
Write out the PID value as seen in the PIDOutput base object.
output | Write out the PWM value as was found in the PIDController |
Implements PIDOutput.
|
overridevirtual |
Set the PWM value.
The PWM value is set using a range of -1.0 to 1.0, appropriately scaling the value for the FPGA.
speed | The speed value between -1.0 and 1.0 to set. |
syncGroup | Unused interface. |
Implements SpeedController.
|
overridevirtual |
Common interface for inverting direction of a speed controller.
isInverted | The state of inversion, true is inverted. |
Implements SpeedController.