REVLib - C++
first::a301::internal::A301 Class Reference

Classes

struct  PeriodicStatus0
 
struct  PeriodicStatus1
 
struct  PeriodicStatus2
 
struct  PeriodicStatus5
 

Public Types

enum class  ControlType {
  kDutyCycle = 0 , kVelocity = 1 , kVoltage = 2 , kRelativePosition = 3 ,
  kAbsolutePosition = 4 , kContinuousAbsolutePosition = 5 , kCurrent = 6
}
 
enum class  Responsiveness { kHigh , kNormal , kLow }
 

Public Member Functions

 A301 (int busId, int deviceId)
 
 ~A301 ()
 
rev::REVLibError SetSetpoint (double setpoint, ControlType ctrl, Responsiveness resp=Responsiveness::kHigh)
 
Signal< PeriodicStatus0GetPeriodicStatus0 () const
 
Signal< PeriodicStatus1GetPeriodicStatus1 () const
 
Signal< PeriodicStatus2GetPeriodicStatus2 () const
 
Signal< PeriodicStatus5GetPeriodicStatus5 () const
 

Public Attributes

c_Spark_handle m_a301Handle {}
 
int m_busId
 
int m_deviceId
 
double m_setpoint = 0.0
 

Member Enumeration Documentation

◆ ControlType

Enumerator
kDutyCycle 
kVelocity 
kVoltage 
kRelativePosition 
kAbsolutePosition 
kContinuousAbsolutePosition 
kCurrent 

◆ Responsiveness

How quickly the FIRST A301 reacts to the setpoint

Enumerator
kHigh 
kNormal 
kLow 

Constructor & Destructor Documentation

◆ A301()

first::a301::internal::A301::A301 ( int  busId,
int  deviceId 
)
inline

◆ ~A301()

first::a301::internal::A301::~A301 ( )
inline

Member Function Documentation

◆ SetSetpoint()

rev::REVLibError first::a301::internal::A301::SetSetpoint ( double  setpoint,
ControlType  ctrl,
Responsiveness  resp = Responsiveness::kHigh 
)
inline

Set the controller setpoint based on the selected control mode.

Parameters
setpointThe setpoint to set depending on the control mode. For:
  • Duty Cycle (-1.0 to 1.0)
  • Velocity Control: Velocity (RPM)
  • Voltage Control: Voltage (volts) (-12.0 to 12.0)
  • Absolute Position Control: Position (-0.5 to 0.5)
  • Continuous Absolute Position Control: Position (-0.5 to 0.5)
  • Relative Position Control: Position (Rotations)
  • Current Control: Current (Amps).
ctrlIs the control type
respHow quickly the A301 responds to the setpoint
Returns
REVLibError::kOk if successful

◆ GetPeriodicStatus0()

Signal< PeriodicStatus0 > first::a301::internal::A301::GetPeriodicStatus0 ( ) const
inline

◆ GetPeriodicStatus1()

Signal< PeriodicStatus1 > first::a301::internal::A301::GetPeriodicStatus1 ( ) const
inline

= 0, .motorLoopSpeedStickyWarning

◆ GetPeriodicStatus2()

Signal< PeriodicStatus2 > first::a301::internal::A301::GetPeriodicStatus2 ( ) const
inline

◆ GetPeriodicStatus5()

Signal< PeriodicStatus5 > first::a301::internal::A301::GetPeriodicStatus5 ( ) const
inline

Member Data Documentation

◆ m_a301Handle

c_Spark_handle first::a301::internal::A301::m_a301Handle {}

◆ m_busId

int first::a301::internal::A301::m_busId

◆ m_deviceId

int first::a301::internal::A301::m_deviceId

◆ m_setpoint

double first::a301::internal::A301::m_setpoint = 0.0

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