CTRE_Phoenix 5.20.2
|
#include <TalonSRX.h>
Inherits ctre::phoenix::motorcontrol::can::BaseTalon.
Inherited by ctre::phoenix::motorcontrol::can::WPI_TalonSRX [virtual]
.
Public Member Functions | |
TalonSRX (int deviceNumber) | |
TalonSRX (TalonSRX const &)=delete | |
TalonSRX & | operator= (TalonSRX const &)=delete |
void | Set (TalonSRXControlMode mode, double value) |
void | Set (TalonSRXControlMode mode, double demand0, DemandType demand1Type, double demand1) |
ctre::phoenix::ErrorCode | ConfigSelectedFeedbackSensor (TalonSRXFeedbackDevice feedbackDevice, int pidIdx=0, int timeoutMs=0) |
ctre::phoenix::ErrorCode | ConfigSelectedFeedbackSensor (FeedbackDevice feedbackDevice, int pidIdx, int timeoutMs=0) |
ctre::phoenix::ErrorCode | ConfigSelectedFeedbackSensor (RemoteFeedbackDevice feedbackDevice, int pidIdx, int timeoutMs) |
virtual ctre::phoenix::ErrorCode | ConfigSupplyCurrentLimit (const SupplyCurrentLimitConfiguration &currLimitConfigs, int timeoutMs=50) |
ctre::phoenix::ErrorCode | ConfigPeakCurrentLimit (int amps, int timeoutMs=0) |
ctre::phoenix::ErrorCode | ConfigPeakCurrentDuration (int milliseconds, int timeoutMs=0) |
ctre::phoenix::ErrorCode | ConfigContinuousCurrentLimit (int amps, int timeoutMs=0) |
void | EnableCurrentLimit (bool enable) |
ctre::phoenix::motorcontrol::SensorCollection & | GetSensorCollection () |
ctre::phoenix::motorcontrol::TalonSRXSimCollection & | GetSimCollection () |
ctre::phoenix::ErrorCode | ConfigurePID (const TalonSRXPIDSetConfiguration &pid, int pidIdx=0, int timeoutMs=50) |
void | GetPIDConfigs (TalonSRXPIDSetConfiguration &pid, int pidIdx=0, int timeoutMs=50) |
ctre::phoenix::ErrorCode | ConfigAllSettings (const TalonSRXConfiguration &allConfigs, int timeoutMs=50) |
void | GetAllConfigs (TalonSRXConfiguration &allConfigs, int timeoutMs=50) |
virtual void | Set (ControlMode mode, double value) |
virtual void | Set (ControlMode mode, double demand0, DemandType demand1Type, double demand1) |
Public Member Functions inherited from ctre::phoenix::motorcontrol::can::BaseTalon | |
BaseTalon (int deviceNumber, const char *model, std::string const &canbus="") | |
BaseTalon (BaseTalon const &)=delete | |
BaseTalon & | operator= (BaseTalon const &)=delete |
virtual ctre::phoenix::ErrorCode | ConfigSelectedFeedbackSensor (FeedbackDevice feedbackDevice, int pidIdx=0, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigSelectedFeedbackSensor (RemoteFeedbackDevice feedbackDevice, int pidIdx=0, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | SetStatusFramePeriod (StatusFrameEnhanced frame, uint8_t periodMs, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | SetStatusFramePeriod (StatusFrame frame, uint8_t periodMs, int timeoutMs=0) |
virtual int | GetStatusFramePeriod (StatusFrameEnhanced frame, int timeoutMs=0) |
virtual int | GetStatusFramePeriod (StatusFrame frame, int timeoutMs=0) |
virtual double | GetOutputCurrent () |
double | GetStatorCurrent () |
double | GetSupplyCurrent () |
virtual ctre::phoenix::ErrorCode | ConfigVelocityMeasurementPeriod (ctre::phoenix::sensors::SensorVelocityMeasPeriod period, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigVelocityMeasurementPeriod (VelocityMeasPeriod period, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigVelocityMeasurementWindow (int windowSize, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigForwardLimitSwitchSource (LimitSwitchSource limitSwitchSource, LimitSwitchNormal normalOpenOrClose, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigForwardLimitSwitchSource (RemoteLimitSwitchSource limitSwitchSource, LimitSwitchNormal normalOpenOrClose, int deviceID, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigReverseLimitSwitchSource (LimitSwitchSource limitSwitchSource, LimitSwitchNormal normalOpenOrClose, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigReverseLimitSwitchSource (RemoteLimitSwitchSource limitSwitchSource, LimitSwitchNormal normalOpenOrClose, int deviceID, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigSupplyCurrentLimit (const SupplyCurrentLimitConfiguration &currLimitConfigs, int timeoutMs=50) |
int | IsFwdLimitSwitchClosed () |
int | IsRevLimitSwitchClosed () |
Public Member Functions inherited from ctre::phoenix::motorcontrol::can::BaseMotorController | |
BaseMotorController (int deviceNumber, const char *model, std::string const &canbus="") | |
BaseMotorController (BaseMotorController const &)=delete | |
BaseMotorController & | operator= (BaseMotorController const &)=delete |
virtual int | GetDeviceID () |
virtual void | Set (ControlMode mode, double value) |
virtual void | Set (ControlMode mode, double demand0, DemandType demand1Type, double demand1) |
virtual void | NeutralOutput () |
virtual void | SetNeutralMode (NeutralMode neutralMode) |
virtual void | SetSensorPhase (bool PhaseSensor) |
virtual void | SetInverted (bool invert) |
virtual void | SetInverted (InvertType invertType) |
virtual bool | GetInverted () const |
virtual ctre::phoenix::ErrorCode | ConfigFactoryDefault (int timeoutMs=50) |
virtual ctre::phoenix::ErrorCode | ConfigOpenloopRamp (double secondsFromNeutralToFull, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigClosedloopRamp (double secondsFromNeutralToFull, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigPeakOutputForward (double percentOut, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigPeakOutputReverse (double percentOut, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigNominalOutputForward (double percentOut, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigNominalOutputReverse (double percentOut, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigNeutralDeadband (double percentDeadband, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigVoltageCompSaturation (double voltage, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigVoltageMeasurementFilter (int filterWindowSamples, int timeoutMs=0) |
virtual void | EnableVoltageCompensation (bool enable) |
virtual bool | IsVoltageCompensationEnabled () |
virtual double | GetBusVoltage () |
virtual double | GetMotorOutputPercent () |
virtual double | GetMotorOutputVoltage () |
virtual double | GetTemperature () |
virtual ctre::phoenix::ErrorCode | ConfigSelectedFeedbackSensor (RemoteFeedbackDevice feedbackDevice, int pidIdx=0, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigSelectedFeedbackSensor (FeedbackDevice feedbackDevice, int pidIdx=0, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigSelectedFeedbackCoefficient (double coefficient, int pidIdx=0, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigRemoteFeedbackFilter (int deviceID, RemoteSensorSource remoteSensorSource, int remoteOrdinal, int timeoutMs=0) |
virtual ErrorCode | ConfigRemoteFeedbackFilter (ctre::phoenix::sensors::CANCoder &canCoderRef, int remoteOrdinal, int timeoutMs=0) |
virtual ErrorCode | ConfigRemoteFeedbackFilter (ctre::phoenix::motorcontrol::can::BaseTalon &talonRef, int remoteOrdinal, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigSensorTerm (SensorTerm sensorTerm, FeedbackDevice feedbackDevice, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigSensorTerm (SensorTerm sensorTerm, RemoteFeedbackDevice feedbackDevice, int timeoutMs=0) |
virtual double | GetSelectedSensorPosition (int pidIdx=0) |
virtual double | GetSelectedSensorVelocity (int pidIdx=0) |
virtual ctre::phoenix::ErrorCode | SetSelectedSensorPosition (double sensorPos, int pidIdx=0, int timeoutMs=50) |
virtual ctre::phoenix::ErrorCode | SetControlFramePeriod (ControlFrame frame, int periodMs) |
virtual ctre::phoenix::ErrorCode | SetStatusFramePeriod (StatusFrame frame, uint8_t periodMs, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | SetStatusFramePeriod (StatusFrameEnhanced frame, uint8_t periodMs, int timeoutMs=0) |
virtual int | GetStatusFramePeriod (StatusFrame frame, int timeoutMs=0) |
virtual int | GetStatusFramePeriod (StatusFrameEnhanced frame, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigVelocityMeasurementPeriod (ctre::phoenix::sensors::SensorVelocityMeasPeriod period, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigVelocityMeasurementPeriod (VelocityMeasPeriod period, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigVelocityMeasurementWindow (int windowSize, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigForwardLimitSwitchSource (RemoteLimitSwitchSource type, LimitSwitchNormal normalOpenOrClose, int deviceID, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigReverseLimitSwitchSource (RemoteLimitSwitchSource type, LimitSwitchNormal normalOpenOrClose, int deviceID, int timeoutMs=0) |
void | OverrideLimitSwitchesEnable (bool enable) |
virtual ctre::phoenix::ErrorCode | ConfigForwardLimitSwitchSource (LimitSwitchSource type, LimitSwitchNormal normalOpenOrClose, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigReverseLimitSwitchSource (LimitSwitchSource type, LimitSwitchNormal normalOpenOrClose, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigForwardSoftLimitThreshold (double forwardSensorLimit, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigReverseSoftLimitThreshold (double reverseSensorLimit, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigForwardSoftLimitEnable (bool enable, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigReverseSoftLimitEnable (bool enable, int timeoutMs=0) |
virtual void | OverrideSoftLimitsEnable (bool enable) |
virtual ctre::phoenix::ErrorCode | Config_kP (int slotIdx, double value, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | Config_kI (int slotIdx, double value, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | Config_kD (int slotIdx, double value, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | Config_kF (int slotIdx, double value, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | Config_IntegralZone (int slotIdx, double izone, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigAllowableClosedloopError (int slotIdx, double allowableCloseLoopError, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigMaxIntegralAccumulator (int slotIdx, double iaccum, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigClosedLoopPeakOutput (int slotIdx, double percentOut, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigClosedLoopPeriod (int slotIdx, int loopTimeMs, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigAuxPIDPolarity (bool invert, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | SetIntegralAccumulator (double iaccum, int pidIdx=0, int timeoutMs=0) |
virtual double | GetClosedLoopError (int pidIdx=0) |
virtual double | GetIntegralAccumulator (int pidIdx=0) |
virtual double | GetErrorDerivative (int pidIdx=0) |
virtual ctre::phoenix::ErrorCode | SelectProfileSlot (int slotIdx, int pidIdx) |
virtual double | GetClosedLoopTarget (int pidIdx=0) |
virtual double | GetActiveTrajectoryPosition (int pidIdx=0) |
virtual double | GetActiveTrajectoryVelocity (int pidIdx=0) |
virtual double | GetActiveTrajectoryArbFeedFwd (int pidIdx=0) |
virtual ctre::phoenix::ErrorCode | ConfigMotionCruiseVelocity (double sensorUnitsPer100ms, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigMotionAcceleration (double sensorUnitsPer100msPerSec, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigMotionSCurveStrength (int curveStrength, int timeoutMs=0) |
virtual ErrorCode | ClearMotionProfileTrajectories () |
virtual int | GetMotionProfileTopLevelBufferCount () |
virtual ctre::phoenix::ErrorCode | PushMotionProfileTrajectory (const ctre::phoenix::motion::TrajectoryPoint &trajPt) |
virtual ctre::phoenix::ErrorCode | StartMotionProfile (ctre::phoenix::motion::BufferedTrajectoryPointStream &stream, uint32_t minBufferedPts, ControlMode motionProfControlMode) |
Simple one-shot firing of a complete MP. Starting in 2019, MPs can be fired by building a Buffered Trajectory Point Stream, and calling this routine. More... | |
virtual bool | IsMotionProfileFinished () |
Determine if running MP is complete. This requires using the StartMotionProfile routine to start the MP. That is because managing the trajectory points is now done in a background thread (if StartMotionProfile is called). More... | |
virtual bool | IsMotionProfileTopLevelBufferFull () |
virtual void | ProcessMotionProfileBuffer () |
virtual ctre::phoenix::ErrorCode | GetMotionProfileStatus (ctre::phoenix::motion::MotionProfileStatus &statusToFill) |
virtual ctre::phoenix::ErrorCode | ClearMotionProfileHasUnderrun (int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ChangeMotionControlFramePeriod (int periodMs) |
virtual ctre::phoenix::ErrorCode | ConfigMotionProfileTrajectoryPeriod (int baseTrajDurationMs, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigMotionProfileTrajectoryInterpolationEnable (bool enable, int timeoutMs=0) |
virtual ErrorCode | ConfigFeedbackNotContinuous (bool feedbackNotContinuous, int timeoutMs=0) |
virtual ErrorCode | ConfigRemoteSensorClosedLoopDisableNeutralOnLOS (bool remoteSensorClosedLoopDisableNeutralOnLOS, int timeoutMs=0) |
virtual ErrorCode | ConfigClearPositionOnLimitF (bool clearPositionOnLimitF, int timeoutMs=0) |
virtual ErrorCode | ConfigClearPositionOnLimitR (bool clearPositionOnLimitR, int timeoutMs=0) |
virtual ErrorCode | ConfigClearPositionOnQuadIdx (bool clearPositionOnQuadIdx, int timeoutMs=0) |
virtual ErrorCode | ConfigLimitSwitchDisableNeutralOnLOS (bool limitSwitchDisableNeutralOnLOS, int timeoutMs=0) |
virtual ErrorCode | ConfigSoftLimitDisableNeutralOnLOS (bool softLimitDisableNeutralOnLOS, int timeoutMs=0) |
virtual ErrorCode | ConfigPulseWidthPeriod_EdgesPerRot (int pulseWidthPeriod_EdgesPerRot, int timeoutMs=0) |
virtual ErrorCode | ConfigPulseWidthPeriod_FilterWindowSz (int pulseWidthPeriod_FilterWindowSz, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | GetLastError () |
virtual ctre::phoenix::ErrorCode | GetFaults (Faults &toFill) |
virtual ctre::phoenix::ErrorCode | GetStickyFaults (StickyFaults &toFill) |
virtual ctre::phoenix::ErrorCode | ClearStickyFaults (int timeoutMs=0) |
virtual int | GetFirmwareVersion () |
virtual bool | HasResetOccurred () |
virtual ctre::phoenix::ErrorCode | ConfigSetCustomParam (int newValue, int paramIndex, int timeoutMs=0) |
virtual int | ConfigGetCustomParam (int paramIndex, int timeoutMs=0) |
virtual ctre::phoenix::ErrorCode | ConfigSetParameter (ctre::phoenix::ParamEnum param, double value, uint8_t subValue, int ordinal, int timeoutMs=0) |
virtual double | ConfigGetParameter (ctre::phoenix::ParamEnum param, int ordinal, int timeoutMs=0) |
virtual ErrorCode | ConfigGetParameter (ParamEnum param, int32_t valueToSend, int32_t &valueReceived, uint8_t &subValue, int32_t ordinal, int32_t timeoutMs) |
virtual int | GetBaseID () |
virtual ControlMode | GetControlMode () |
void | Follow (IMotorController &masterToFollow, ctre::phoenix::motorcontrol::FollowerType followerType) |
virtual void | Follow (IMotorController &masterToFollow) |
virtual void | ValueUpdated () |
void | GetSlotConfigs (SlotConfiguration &slot, int slotIdx=0, int timeoutMs=50) |
void | GetFilterConfigs (FilterConfiguration &Filter, int ordinal=0, int timeoutMs=50) |
void * | GetHandle () |
virtual void | Set (ControlMode Mode, double demand)=0 |
virtual void | Set (ControlMode mode, double demand0, DemandType demand1Type, double demand1)=0 |
virtual void | NeutralOutput ()=0 |
virtual void | SetNeutralMode (NeutralMode neutralMode)=0 |
virtual void | SetSensorPhase (bool PhaseSensor)=0 |
virtual void | SetInverted (bool invert)=0 |
virtual void | SetInverted (InvertType invertType)=0 |
virtual bool | GetInverted () const =0 |
virtual ErrorCode | ConfigFactoryDefault (int timeout)=0 |
virtual ErrorCode | ConfigOpenloopRamp (double secondsFromNeutralToFull, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigClosedloopRamp (double secondsFromNeutralToFull, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigPeakOutputForward (double percentOut, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigPeakOutputReverse (double percentOut, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigNominalOutputForward (double percentOut, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigNominalOutputReverse (double percentOut, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigNeutralDeadband (double percentDeadband, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigVoltageCompSaturation (double voltage, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigVoltageMeasurementFilter (int filterWindowSamples, int timeoutMs=0)=0 |
virtual void | EnableVoltageCompensation (bool enable)=0 |
virtual bool | IsVoltageCompensationEnabled ()=0 |
virtual double | GetBusVoltage ()=0 |
virtual double | GetMotorOutputPercent ()=0 |
virtual double | GetMotorOutputVoltage ()=0 |
virtual double | GetTemperature ()=0 |
virtual ErrorCode | ConfigSelectedFeedbackSensor (RemoteFeedbackDevice feedbackDevice, int pidIdx=0, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigSelectedFeedbackCoefficient (double coefficient, int pidIdx=0, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigRemoteFeedbackFilter (int deviceID, RemoteSensorSource remoteSensorSource, int remoteOrdinal, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigRemoteFeedbackFilter (ctre::phoenix::sensors::CANCoder &canCoderRef, int remoteOrdinal, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigRemoteFeedbackFilter (ctre::phoenix::motorcontrol::can::BaseTalon &talonRef, int remoteOrdinal, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigSensorTerm (SensorTerm sensorTerm, FeedbackDevice feedbackDevice, int timeoutMs=0)=0 |
virtual double | GetSelectedSensorPosition (int pidIdx=0)=0 |
virtual double | GetSelectedSensorVelocity (int pidIdx=0)=0 |
virtual ErrorCode | SetSelectedSensorPosition (double sensorPos, int pidIdx=0, int timeoutMs=50)=0 |
virtual ErrorCode | SetControlFramePeriod (ControlFrame frame, int periodMs)=0 |
virtual ErrorCode | SetStatusFramePeriod (StatusFrame frame, uint8_t periodMs, int timeoutMs=0)=0 |
virtual int | GetStatusFramePeriod (StatusFrame frame, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigForwardLimitSwitchSource (RemoteLimitSwitchSource type, LimitSwitchNormal normalOpenOrClose, int deviceID, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigReverseLimitSwitchSource (RemoteLimitSwitchSource type, LimitSwitchNormal normalOpenOrClose, int deviceID, int timeoutMs=0)=0 |
virtual void | OverrideLimitSwitchesEnable (bool enable)=0 |
virtual ErrorCode | ConfigForwardSoftLimitThreshold (double forwardSensorLimit, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigReverseSoftLimitThreshold (double reverseSensorLimit, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigForwardSoftLimitEnable (bool enable, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigReverseSoftLimitEnable (bool enable, int timeoutMs=0)=0 |
virtual void | OverrideSoftLimitsEnable (bool enable)=0 |
virtual ErrorCode | Config_kP (int slotIdx, double value, int timeoutMs=0)=0 |
virtual ErrorCode | Config_kI (int slotIdx, double value, int timeoutMs=0)=0 |
virtual ErrorCode | Config_kD (int slotIdx, double value, int timeoutMs=0)=0 |
virtual ErrorCode | Config_kF (int slotIdx, double value, int timeoutMs=0)=0 |
virtual ErrorCode | Config_IntegralZone (int slotIdx, double izone, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigAllowableClosedloopError (int slotIdx, double allowableCloseLoopError, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigMaxIntegralAccumulator (int slotIdx, double iaccum, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigClosedLoopPeakOutput (int slotIdx, double percentOut, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigClosedLoopPeriod (int slotIdx, int loopTimeMs, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigAuxPIDPolarity (bool invert, int timeoutMs=0)=0 |
virtual ErrorCode | SetIntegralAccumulator (double iaccum, int pidIdx=0, int timeoutMs=0)=0 |
virtual double | GetClosedLoopError (int pidIdx=0)=0 |
virtual double | GetIntegralAccumulator (int pidIdx=0)=0 |
virtual double | GetErrorDerivative (int pidIdx=0)=0 |
virtual ErrorCode | SelectProfileSlot (int slotIdx, int pidIdx)=0 |
virtual double | GetClosedLoopTarget (int pidIdx=0)=0 |
virtual double | GetActiveTrajectoryPosition (int pidIdx=0)=0 |
virtual double | GetActiveTrajectoryVelocity (int pidIdx=0)=0 |
virtual double | GetActiveTrajectoryArbFeedFwd (int pidIdx=0)=0 |
virtual ErrorCode | ConfigMotionCruiseVelocity (double sensorUnitsPer100ms, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigMotionAcceleration (double sensorUnitsPer100msPerSec, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigMotionSCurveStrength (int curveStrength, int timeoutMs)=0 |
virtual ErrorCode | ClearMotionProfileTrajectories ()=0 |
virtual int | GetMotionProfileTopLevelBufferCount ()=0 |
virtual ErrorCode | PushMotionProfileTrajectory (const ctre::phoenix::motion::TrajectoryPoint &trajPt)=0 |
virtual bool | IsMotionProfileTopLevelBufferFull ()=0 |
virtual void | ProcessMotionProfileBuffer ()=0 |
virtual ErrorCode | GetMotionProfileStatus (ctre::phoenix::motion::MotionProfileStatus &statusToFill)=0 |
virtual ErrorCode | ClearMotionProfileHasUnderrun (int timeoutMs=0)=0 |
virtual ErrorCode | ChangeMotionControlFramePeriod (int periodMs)=0 |
virtual ErrorCode | ConfigMotionProfileTrajectoryPeriod (int baseTrajDurationMs, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigFeedbackNotContinuous (bool feedbackNotContinuous, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigRemoteSensorClosedLoopDisableNeutralOnLOS (bool remoteSensorClosedLoopDisableNeutralOnLOS, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigClearPositionOnLimitF (bool clearPositionOnLimitF, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigClearPositionOnLimitR (bool clearPositionOnLimitR, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigClearPositionOnQuadIdx (bool clearPositionOnQuadIdx, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigLimitSwitchDisableNeutralOnLOS (bool limitSwitchDisableNeutralOnLOS, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigSoftLimitDisableNeutralOnLOS (bool softLimitDisableNeutralOnLOS, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigPulseWidthPeriod_EdgesPerRot (int pulseWidthPeriod_EdgesPerRot, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigPulseWidthPeriod_FilterWindowSz (int pulseWidthPeriod_FilterWindowSz, int timeoutMs=0)=0 |
virtual ErrorCode | GetLastError ()=0 |
virtual ErrorCode | GetFaults (Faults &toFill)=0 |
virtual ErrorCode | GetStickyFaults (StickyFaults &toFill)=0 |
virtual ErrorCode | ClearStickyFaults (int timeoutMs=0)=0 |
virtual int | GetFirmwareVersion ()=0 |
virtual bool | HasResetOccurred ()=0 |
virtual ErrorCode | ConfigSetCustomParam (int newValue, int paramIndex, int timeoutMs=0)=0 |
virtual int | ConfigGetCustomParam (int paramIndex, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigSetParameter (ParamEnum param, double value, uint8_t subValue, int ordinal, int timeoutMs=0)=0 |
virtual double | ConfigGetParameter (ParamEnum paramEnum, int ordinal, int timeoutMs=0)=0 |
virtual int | GetBaseID ()=0 |
virtual int | GetDeviceID ()=0 |
virtual ControlMode | GetControlMode ()=0 |
virtual void | Follow (ctre::phoenix::motorcontrol::IMotorController &masterToFollow)=0 |
virtual void | ValueUpdated ()=0 |
virtual ErrorCode | ConfigSelectedFeedbackSensor (FeedbackDevice feedbackDevice, int pidIdx=0, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigSelectedFeedbackSensor (RemoteFeedbackDevice feedbackDevice, int pidIdx=0, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigSupplyCurrentLimit (const SupplyCurrentLimitConfiguration &currLimitConfigs, int timeoutMs=50)=0 |
virtual ErrorCode | SetStatusFramePeriod (StatusFrame frame, uint8_t periodMs, int timeoutMs=0)=0 |
virtual ErrorCode | SetStatusFramePeriod (StatusFrameEnhanced frame, uint8_t periodMs, int timeoutMs=0)=0 |
virtual int | GetStatusFramePeriod (StatusFrame frame, int timeoutMs=0)=0 |
virtual int | GetStatusFramePeriod (StatusFrameEnhanced frame, int timeoutMs=0)=0 |
virtual double | GetOutputCurrent ()=0 |
virtual ErrorCode | ConfigVelocityMeasurementPeriod (VelocityMeasPeriod period, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigVelocityMeasurementWindow (int windowSize, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigForwardLimitSwitchSource (RemoteLimitSwitchSource type, LimitSwitchNormal normalOpenOrClose, int deviceID, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigReverseLimitSwitchSource (RemoteLimitSwitchSource type, LimitSwitchNormal normalOpenOrClose, int deviceID, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigForwardLimitSwitchSource (LimitSwitchSource type, LimitSwitchNormal normalOpenOrClose, int timeoutMs=0)=0 |
virtual ErrorCode | ConfigReverseLimitSwitchSource (LimitSwitchSource type, LimitSwitchNormal normalOpenOrClose, int timeoutMs=0)=0 |
CTRE Talon SRX Motor Controller when used on CAN Bus.
// Example usage of a TalonSRX motor controller
TalonSRX motor{0}; // creates a new TalonSRX with ID 0
TalonSRXConfiguration config;
config.peakCurrentLimit = 40; // the peak current, in amps
config.peakCurrentDuration = 1500; // the time at the peak current before the limit triggers, in ms
config.continuousCurrentLimit = 30; // the current to maintain if the peak limit is triggered
motor.ConfigAllSettings(config); // apply the config settings; this selects the quadrature encoder
motor.Set(TalonSRXControlMode::PercentOutput, 0.5); // runs the motor at 50% power
std::cout << motor.GetSelectedSensorPosition() << std::endl; // prints the position of the selected sensor
std::cout << motor.GetSelectedSensorVelocity() << std::endl; // prints the velocity recorded by the selected sensor
std::cout << motor.GetMotorOutputPercent() << std::endl; // prints the percent output of the motor (0.5)
std::cout << motor.GetStatorCurrent() << std::endl; // prints the output current of the motor
ErrorCode error = motor.GetLastError(); // gets the last error generated by the motor controller
Faults faults;
ErrorCode faultsError = motor.GetFaults(faults); // fills faults with the current motor controller faults; returns the last error generated
motor.SetStatusFramePeriod(StatusFrameEnhanced::Status_2_Feedback0, 10); // changes the period of the Status 2 frame (GetSelectedSensor*()) to 10ms
ctre::phoenix::motorcontrol::can::TalonSRX::TalonSRX | ( | int | deviceNumber | ) |
Constructor for a Talon
deviceNumber | CAN Device ID of TalonSRX |
ctre::phoenix::ErrorCode ctre::phoenix::motorcontrol::can::TalonSRX::ConfigAllSettings | ( | const TalonSRXConfiguration & | allConfigs, |
int | timeoutMs = 50 |
||
) |
Configures all persistent settings.
allConfigs | Object with all of the persistant settings |
timeoutMs | Timeout value in ms. If nonzero, function will wait for config success and report an error if it times out. If zero, no blocking or checking is performed. |
ctre::phoenix::ErrorCode ctre::phoenix::motorcontrol::can::TalonSRX::ConfigContinuousCurrentLimit | ( | int | amps, |
int | timeoutMs = 0 |
||
) |
Configure the continuous allowable current-draw (when current limit is enabled).
Supply current limiting is also available via ConfigSupplyCurrentLimit(), which is a common routine with Talon FX.
Current limit is activated when current exceeds the peak limit for longer than the peak duration. Then software will limit to the continuous limit. This ensures current limiting while allowing for momentary excess current events.
For simpler current-limiting (single threshold) use ConfigContinuousCurrentLimit() and set the peak to zero: ConfigPeakCurrentLimit(0).
amps | Amperes to limit. |
timeoutMs | Timeout value in ms. If nonzero, function will wait for config success and report an error if it times out. If zero, no blocking or checking is performed. |
ctre::phoenix::ErrorCode ctre::phoenix::motorcontrol::can::TalonSRX::ConfigPeakCurrentDuration | ( | int | milliseconds, |
int | timeoutMs = 0 |
||
) |
Configure the peak allowable duration (when current limit is enabled).
Supply current limiting is also available via ConfigSupplyCurrentLimit(), which is a common routine with Talon FX.
Current limit is activated when current exceeds the peak limit for longer than the peak duration. Then software will limit to the continuous limit. This ensures current limiting while allowing for momentary excess current events.
For simpler current-limiting (single threshold) use ConfigContinuousCurrentLimit() and set the peak to zero: ConfigPeakCurrentLimit(0).
milliseconds | How long to allow current-draw past peak limit. |
timeoutMs | Timeout value in ms. If nonzero, function will wait for config success and report an error if it times out. If zero, no blocking or checking is performed. |
ctre::phoenix::ErrorCode ctre::phoenix::motorcontrol::can::TalonSRX::ConfigPeakCurrentLimit | ( | int | amps, |
int | timeoutMs = 0 |
||
) |
Configure the peak allowable current (when current limit is enabled).
Supply current limiting is also available via ConfigSupplyCurrentLimit(), which is a common routine with Talon FX.
Current limit is activated when current exceeds the peak limit for longer than the peak duration. Then software will limit to the continuous limit. This ensures current limiting while allowing for momentary excess current events.
For simpler current-limiting (single threshold) use ConfigContinuousCurrentLimit() and set the peak to zero: ConfigPeakCurrentLimit(0).
amps | Amperes to limit. |
timeoutMs | Timeout value in ms. If nonzero, function will wait for config success and report an error if it times out. If zero, no blocking or checking is performed. |
|
virtual |
Select the feedback device for the motor controller.
feedbackDevice | Feedback Device to select. |
pidIdx | 0 for Primary closed-loop. 1 for auxiliary closed-loop. |
timeoutMs | Timeout value in ms. If nonzero, function will wait for config success and report an error if it times out. If zero, no blocking or checking is performed. |
Reimplemented from ctre::phoenix::motorcontrol::can::BaseTalon.
Reimplemented in ctre::phoenix::motorcontrol::can::WPI_TalonSRX.
|
virtual |
Select the remote feedback device for the motor controller. Most CTRE CAN motor controllers will support remote sensors over CAN.
feedbackDevice | Remote Feedback Device to select. |
pidIdx | 0 for Primary closed-loop. 1 for auxiliary closed-loop. |
timeoutMs | Timeout value in ms. If nonzero, function will wait for config success and report an error if it times out. If zero, no blocking or checking is performed. |
Reimplemented from ctre::phoenix::motorcontrol::can::BaseTalon.
Reimplemented in ctre::phoenix::motorcontrol::can::WPI_TalonSRX.
ctre::phoenix::ErrorCode ctre::phoenix::motorcontrol::can::TalonSRX::ConfigSelectedFeedbackSensor | ( | TalonSRXFeedbackDevice | feedbackDevice, |
int | pidIdx = 0 , |
||
int | timeoutMs = 0 |
||
) |
Select the feedback device for the motor controller.
feedbackDevice | Talon SRX Feedback Device to select. |
pidIdx | 0 for Primary closed-loop. 1 for auxiliary closed-loop. |
timeoutMs | Timeout value in ms. If nonzero, function will wait for config success and report an error if it times out. If zero, no blocking or checking is performed. |
|
virtual |
Configures the supply (input) current limit.
currLimitConfigs | Current limit configuration |
timeoutMs | Timeout value in ms. If nonzero, function will wait for config success and report an error if it times out. If zero, no blocking or checking is performed. |
Reimplemented from ctre::phoenix::motorcontrol::can::BaseTalon.
ctre::phoenix::ErrorCode ctre::phoenix::motorcontrol::can::TalonSRX::ConfigurePID | ( | const TalonSRXPIDSetConfiguration & | pid, |
int | pidIdx = 0 , |
||
int | timeoutMs = 50 |
||
) |
Sets all PID persistant settings.
pid | Object with all of the PID set persistant settings |
pidIdx | 0 for Primary closed-loop. 1 for auxiliary closed-loop. |
timeoutMs | Timeout value in ms. If nonzero, function will wait for config success and report an error if it times out. If zero, no blocking or checking is performed. |
void ctre::phoenix::motorcontrol::can::TalonSRX::EnableCurrentLimit | ( | bool | enable | ) |
Enable or disable Current Limit.
Supply current limiting is also available via ConfigSupplyCurrentLimit(), which is a common routine with Talon FX.
enable | Enable state of current limit. |
void ctre::phoenix::motorcontrol::can::TalonSRX::GetAllConfigs | ( | TalonSRXConfiguration & | allConfigs, |
int | timeoutMs = 50 |
||
) |
Gets all persistant settings.
allConfigs | Object with all of the persistant settings |
timeoutMs | Timeout value in ms. If nonzero, function will wait for config success and report an error if it times out. If zero, no blocking or checking is performed. |
void ctre::phoenix::motorcontrol::can::TalonSRX::GetPIDConfigs | ( | TalonSRXPIDSetConfiguration & | pid, |
int | pidIdx = 0 , |
||
int | timeoutMs = 50 |
||
) |
Gets all PID set persistant settings.
pid | Object with all of the PID set persistant settings |
pidIdx | 0 for Primary closed-loop. 1 for auxiliary closed-loop. |
timeoutMs | Timeout value in ms. If nonzero, function will wait for config success and report an error if it times out. If zero, no blocking or checking is performed. |
ctre::phoenix::motorcontrol::SensorCollection & ctre::phoenix::motorcontrol::can::TalonSRX::GetSensorCollection | ( | ) |
ctre::phoenix::motorcontrol::TalonSRXSimCollection & ctre::phoenix::motorcontrol::can::TalonSRX::GetSimCollection | ( | ) |
|
virtual |
mode | Sets the appropriate output on the talon, depending on the mode. |
demand0 | The output value to apply. such as advanced feed forward and/or auxiliary close-looping in firmware. In PercentOutput, the output is between -1.0 and 1.0, with 0.0 as stopped. In Current mode, output value is in amperes. In Velocity mode, output value is in position change / 100ms. In Position mode, output value is in encoder ticks or an analog value, depending on the sensor. See In Follower mode, the output value is the integer device ID of the talon to duplicate. |
demand1Type | The demand type for demand1. Neutral: Ignore demand1 and apply no change to the demand0 output. AuxPID: Use demand1 to set the target for the auxiliary PID 1. Auxiliary PID is always executed as standard Position PID control. ArbitraryFeedForward: Use demand1 as an arbitrary additive value to the demand0 output. In PercentOutput the demand0 output is the motor output, and in closed-loop modes the demand0 output is the output of PID0. |
demand1 | Supplmental output value. AuxPID: Target position in Sensor Units ArbitraryFeedForward: Percent Output between -1.0 and 1.0 |
Arcade Drive Example: _talonLeft.set(ControlMode.PercentOutput, joyForward, DemandType.ArbitraryFeedForward, +joyTurn); _talonRght.set(ControlMode.PercentOutput, joyForward, DemandType.ArbitraryFeedForward, -joyTurn);
Drive Straight Example: Note: Selected Sensor Configuration is necessary for both PID0 and PID1. _talonLeft.follow(_talonRght, FollwerType.AuxOutput1); _talonRght.set(ControlMode.PercentOutput, joyForward, DemandType.AuxPID, desiredRobotHeading);
Drive Straight to a Distance Example: Note: Other configurations (sensor selection, PID gains, etc.) need to be set. _talonLeft.follow(_talonRght, FollwerType.AuxOutput1); _talonRght.set(ControlMode.MotionMagic, targetDistance, DemandType.AuxPID, desiredRobotHeading);
Reimplemented from ctre::phoenix::motorcontrol::can::BaseMotorController.
Reimplemented in ctre::phoenix::motorcontrol::can::WPI_TalonSRX.
|
virtual |
Sets the appropriate output on the talon, depending on the mode.
mode | The output mode to apply. In PercentOutput, the output is between -1.0 and 1.0, with 0.0 as stopped. In Current mode, output value is in amperes. In Velocity mode, output value is in position change / 100ms. In Position mode, output value is in encoder ticks or an analog value, depending on the sensor. In Follower mode, the output value is the integer device ID of the talon to duplicate. |
value | The setpoint value, as described above. |
Standard Driving Example: _talonLeft.set(ControlMode.PercentOutput, leftJoy); _talonRght.set(ControlMode.PercentOutput, rghtJoy);
Reimplemented from ctre::phoenix::motorcontrol::can::BaseMotorController.
Reimplemented in ctre::phoenix::motorcontrol::can::WPI_TalonSRX.
void ctre::phoenix::motorcontrol::can::TalonSRX::Set | ( | TalonSRXControlMode | mode, |
double | demand0, | ||
DemandType | demand1Type, | ||
double | demand1 | ||
) |
mode | Sets the appropriate output on the talon, depending on the mode. |
demand0 | The output value to apply. such as advanced feed forward and/or auxiliary close-looping in firmware. In PercentOutput, the output is between -1.0 and 1.0, with 0.0 as stopped. In Current mode, output value is in amperes. In Velocity mode, output value is in position change / 100ms. In Position mode, output value is in encoder ticks or an analog value, depending on the sensor. See In Follower mode, the output value is the integer device ID of the talon to duplicate. |
demand1Type | The demand type for demand1. Neutral: Ignore demand1 and apply no change to the demand0 output. AuxPID: Use demand1 to set the target for the auxiliary PID 1. Auxiliary PID is always executed as standard Position PID control. ArbitraryFeedForward: Use demand1 as an arbitrary additive value to the demand0 output. In PercentOutput the demand0 output is the motor output, and in closed-loop modes the demand0 output is the output of PID0. |
demand1 | Supplmental output value. AuxPID: Target position in Sensor Units ArbitraryFeedForward: Percent Output between -1.0 and 1.0 |
Arcade Drive Example: _talonLeft.set(ControlMode.PercentOutput, joyForward, DemandType.ArbitraryFeedForward, +joyTurn); _talonRght.set(ControlMode.PercentOutput, joyForward, DemandType.ArbitraryFeedForward, -joyTurn);
Drive Straight Example: Note: Selected Sensor Configuration is necessary for both PID0 and PID1. _talonLeft.follow(_talonRght, FollwerType.AuxOutput1); _talonRght.set(ControlMode.PercentOutput, joyForward, DemandType.AuxPID, desiredRobotHeading);
Drive Straight to a Distance Example: Note: Other configurations (sensor selection, PID gains, etc.) need to be set. _talonLeft.follow(_talonRght, FollwerType.AuxOutput1); _talonRght.set(ControlMode.MotionMagic, targetDistance, DemandType.AuxPID, desiredRobotHeading);
void ctre::phoenix::motorcontrol::can::TalonSRX::Set | ( | TalonSRXControlMode | mode, |
double | value | ||
) |
Sets the appropriate output on the talon, depending on the mode.
mode | The output mode to apply. In PercentOutput, the output is between -1.0 and 1.0, with 0.0 as stopped. In Current mode, output value is in amperes. In Velocity mode, output value is in position change / 100ms. In Position mode, output value is in encoder ticks or an analog value, depending on the sensor. In Follower mode, the output value is the integer device ID of the talon to duplicate. |
value | The setpoint value, as described above. |
Standard Driving Example: _talonLeft.set(ControlMode.PercentOutput, leftJoy); _talonRght.set(ControlMode.PercentOutput, rghtJoy);