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

Classes

struct  PeriodicStatus0
 
struct  PeriodicStatus1
 
struct  PeriodicStatus2
 
struct  PeriodicStatus3
 

Public Types

enum class  ControlType {
  kDutyCycle = 0 , kVelocity = 1 , kVoltage = 2 , kRelativePosition = 3 ,
  kAbsolutePosition = 4 , kCurrent = 5
}
 

Public Member Functions

 A301 (int busId, int deviceId)
 
 ~A301 ()
 
rev::REVLibError SetSetpoint (double setpoint, ControlType ctrl, double positionSpeed=kDefaultPositionSpeed)
 
Signal< PeriodicStatus0GetPeriodicStatus0 () const
 
Signal< PeriodicStatus1GetPeriodicStatus1 () const
 
Signal< PeriodicStatus2GetPeriodicStatus2 () const
 
Signal< PeriodicStatus3GetPeriodicStatus3 () const
 

Public Attributes

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

Static Public Attributes

static constexpr double kDefaultPositionSpeed {0.0}
 

Member Enumeration Documentation

◆ ControlType

Enumerator
kDutyCycle 
kVelocity 
kVoltage 
kRelativePosition 
kAbsolutePosition 
kCurrent 

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,
double  positionSpeed = kDefaultPositionSpeed 
)
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)
  • Relative Position Control: Position (Rotations)
  • Absolute Position Control: Position (-0.5 to 0.5)
  • Current Control: Current (Amps).
ctrlIs the control type
positionSpeedThe speed to approach the position at (position control only)
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

◆ GetPeriodicStatus2()

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

◆ GetPeriodicStatus3()

Signal< PeriodicStatus3 > first::a301::internal::A301::GetPeriodicStatus3 ( ) const
inline

Member Data Documentation

◆ kDefaultPositionSpeed

constexpr double first::a301::internal::A301::kDefaultPositionSpeed {0.0}
staticconstexpr

◆ m_a301Handle

c_A301_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: