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

#include <Servo.h>

Inheritance diagram for Servo:
Collaboration diagram for Servo:

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)
 
ITableGetTable ()
 
- Public Member Functions inherited from SafePWM
 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...
 

Static Public Member Functions

static float GetMaxAngle ()
 
static float GetMinAngle ()
 
- 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 ()
 

Public Attributes

ITablem_table
 

Additional Inherited Members

- Public Types inherited from PWM
enum  PeriodMultiplier { kPeriodMultiplier_1X = 1, kPeriodMultiplier_2X = 2, kPeriodMultiplier_4X = 4 }
 
- 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 ()
 
- 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

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.

Definition at line 19 of file Servo.h.

Constructor & Destructor Documentation

Servo::Servo ( uint32_t  channel)
explicit

Constructor that assumes the default digital module.

Parameters
channelThe PWM channel on the digital module to which the servo is attached.

Definition at line 37 of file Servo.cpp.

Servo::Servo ( uint8_t  moduleNumber,
uint32_t  channel 
)

Constructor that specifies the digital module.

Parameters
moduleNumberThe digital module (1 or 2).
channelThe PWM channel on the digital module to which the servo is attached (1..10).

Definition at line 48 of file Servo.cpp.

Member Function Documentation

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.

Returns
Position from 0.0 to 1.0.

Definition at line 85 of file Servo.cpp.

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).

Returns
The angle in degrees to which the servo is set.

Definition at line 121 of file Servo.cpp.

std::string Servo::GetSmartDashboardType ( )
virtual
Returns
the string representation of the named data type that will be used by the smart dashboard for this sendable

Reimplemented from PWM.

Definition at line 148 of file Servo.cpp.

ITable * Servo::GetTable ( )
virtual
Returns
the table that is currently associated with the sendable

Reimplemented from PWM.

Definition at line 157 of file Servo.cpp.

void Servo::InitTable ( ITable subtable)
virtual

Initializes a table for this sendable object.

Parameters
subtableThe table to put the values in.

Reimplemented from PWM.

Definition at line 152 of file Servo.cpp.

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.

Parameters
valuePosition from 0.0 to 1.0.

Definition at line 64 of file Servo.cpp.

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.

Parameters
degreesThe angle in degrees to set the servo.

Definition at line 101 of file Servo.cpp.

void Servo::SetOffline ( )

Set the servo to offline.

Set the servo raw value to 0 (undriven)

Definition at line 74 of file Servo.cpp.

void Servo::StartLiveWindowMode ( )
virtual

Start having this sendable object automatically respond to value changes reflect the value on the table.

Reimplemented from PWM.

Definition at line 136 of file Servo.cpp.

void Servo::StopLiveWindowMode ( )
virtual

Stop having this sendable object automatically respond to value changes.

Reimplemented from PWM.

Definition at line 142 of file Servo.cpp.

void Servo::UpdateTable ( )
virtual

Update the table for this sendable object with the latest values.

Reimplemented from PWM.

Definition at line 130 of file Servo.cpp.

void Servo::ValueChanged ( ITable source,
const std::string &  key,
EntryValue  value,
bool  isNew 
)
virtual

Called when a key-value pair is changed in a ITable WARNING: If a new key-value is put in this method value changed will immediatly be called which could lead to recursive code

Parameters
sourcethe table the key-value pair exists in
keythe key associated with the value that changed
valuethe new value
isNewtrue if the key did not previously exist in the table, otherwise it is false

Reimplemented from PWM.

Definition at line 126 of file Servo.cpp.


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

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