#include <Servo.h>
Public Member Functions | |
Servo (uint32_t channel) | |
Servo (uint8_t moduleNumber, uint32_t channel) | |
void | Set (float value) |
void | SetOffline () |
float | Get () |
void | SetAngle (float angle) |
float | GetAngle () |
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 () |
![]() | |
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) |
![]() | |
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 () |
![]() | |
SensorBase () | |
virtual | ~SensorBase () |
![]() | |
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... | |
Static Public Member Functions | |
static float | GetMaxAngle () |
static float | GetMinAngle () |
![]() | |
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 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 () |
Public Attributes | |
ITable * | m_table |
Additional Inherited Members | |
![]() | |
enum | PeriodMultiplier { kPeriodMultiplier_1X = 1, kPeriodMultiplier_2X = 2, kPeriodMultiplier_4X = 4 } |
![]() | |
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 |
![]() | |
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 () |
![]() | |
void | AddToSingletonList () |
![]() | |
ErrorBase () | |
Initialize the instance status to 0 for now. | |
![]() | |
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 |
![]() | |
Error | m_error |
![]() | |
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 SEM_ID | _globalErrorMutex = semMCreate(SEM_Q_PRIORITY | SEM_DELETE_SAFE | SEM_INVERSION_SAFE) |
static Error | _globalError |
Standard hobby style servo.
The range parameters default to the appropriate values for the Hitec HS-322HD servo provided in the FIRST Kit of Parts in 2008.
|
explicit |
Constructor that assumes the default digital module.
channel | The PWM channel on the digital module to which the servo is attached. |
Servo::Servo | ( | uint8_t | moduleNumber, |
uint32_t | channel | ||
) |
Constructor that specifies the digital module.
moduleNumber | The digital module (1 or 2). |
channel | The PWM channel on the digital module to which the servo is attached (1..10). |
float Servo::Get | ( | ) |
Get the servo position.
Servo values range from 0.0 to 1.0 corresponding to the range of full left to full right.
float Servo::GetAngle | ( | void | ) |
Get the servo angle.
Assume that the servo angle is linear with respect to the PWM value (big assumption, need to test).
void Servo::Set | ( | float | value | ) |
Set the servo position.
Servo values range from 0.0 to 1.0 corresponding to the range of full left to full right.
value | Position from 0.0 to 1.0. |
void Servo::SetAngle | ( | float | degrees | ) |
Set the servo angle.
Assume that the servo angle is linear with respect to the PWM value (big assumption, need to test).
Servo angles that are out of the supported range of the servo simply "saturate" in that direction In other words, if the servo has a range of (X degrees to Y degrees) than angles of less than X result in an angle of X being set and angles of more than Y degrees result in an angle of Y being set.
degrees | The angle in degrees to set the servo. |
void Servo::SetOffline | ( | ) |
Set the servo to offline.
Set the servo raw value to 0 (undriven)