33#pragma warning(disable : 4996)
37#pragma GCC diagnostic push
38#pragma GCC diagnostic ignored "-Wdeprecated"
39#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
54#include "rev/CANSparkMaxDriver.h"
81 friend class ::ConfigBase;
87 enum class WPI_DEPRECATED("You don't need this")
InputMode {
139 void Set(
double speed)
override;
151 void SetVoltage(units::volt_t output)
override;
158 double Get()
const override;
218 "@deprecated Use GetEncoder(SparkRelativeEncoder::Type, int) instead")
423 unsigned int freeLimit,
424 unsigned int limitRPM = 20000);
569 bool invert = false);
699 std::
string errorText);
703 double m_setpoint{0.0};
705 std::atomic<bool> m_relativeEncoderCreated{
false};
706 std::atomic<bool> m_analogSensorCreated{
false};
707 std::atomic<bool> m_absoluteEncoderCreated{
false};
708 std::atomic<bool> m_pidControllerCreated{
false};
709 std::atomic<bool> m_forwardLimitSwitchCreated{
false};
710 std::atomic<bool> m_reverseLimitSwitchCreated{
false};
726 int GetFeedbackDeviceID();
729 SparkRelativeEncoder GetEncoderEvenIfAlreadyCreated(
732 int countsPerRev = 42);
738 uint8_t GetMotorInterface();
769#pragma GCC diagnostic pop
Definition: CANAnalog.h:44
Definition: CANEncoder.h:45
Definition: CANSparkBase.h:72
double GetOpenLoopRampRate()
Definition: CANSparkBase.cpp:321
REVLibError SetOpenLoopRampRate(double rate)
Definition: CANSparkBase.cpp:309
static constexpr ExternalFollower kFollowerSparkMax
Definition: CANSparkBase.h:123
double GetClosedLoopRampRate()
Definition: CANSparkBase.cpp:328
SparkAnalogSensor GetAnalog(SparkAnalogSensor::Mode mode=SparkAnalogSensor::Mode::kAbsolute)
Definition: CANSparkBase.cpp:115
SparkLimitSwitch GetReverseLimitSwitch(SparkLimitSwitch::Type switchType)
Definition: CANSparkBase.cpp:207
REVLibError EnableSoftLimit(SoftLimitDirection direction, bool enable)
Definition: CANSparkBase.cpp:429
static constexpr ExternalFollower kFollowerDisabled
Definition: CANSparkBase.h:118
REVLibError DisableVoltageCompensation()
Definition: CANSparkBase.cpp:296
virtual SparkRelativeEncoder GetEncoder()=0
SoftLimitDirection
Definition: CANSparkBase.h:92
REVLibError Follow(const CANSparkBase &leader, bool invert=false)
Definition: CANSparkBase.cpp:335
double GetAppliedOutput()
Definition: CANSparkBase.cpp:390
bool GetInverted() const override
Definition: CANSparkBase.cpp:68
IdleMode GetIdleMode()
Definition: CANSparkBase.cpp:276
~CANSparkBase() override=default
double GetVoltageCompensationNominalVoltage()
Definition: CANSparkBase.cpp:302
double GetBusVoltage()
Definition: CANSparkBase.cpp:383
void StopMotor() override
Definition: CANSparkBase.cpp:77
bool GetStickyFault(FaultID faultID) const
Definition: CANSparkBase.cpp:376
SparkPIDController GetPIDController()
Definition: CANSparkBase.cpp:163
uint16_t GetStickyFaults()
Definition: CANSparkBase.cpp:362
static constexpr ExternalFollower kFollowerSpark
Definition: CANSparkBase.h:125
void SetVoltage(units::volt_t output) override
Definition: CANSparkBase.cpp:52
REVLibError SetCANTimeout(int milliseconds)
Definition: CANSparkBase.cpp:423
REVLibError SetIdleMode(IdleMode mode)
Definition: CANSparkBase.cpp:269
IdleMode
Definition: CANSparkBase.h:84
REVLibError ClearFaults()
Definition: CANSparkBase.cpp:411
InputMode
Definition: CANSparkBase.h:87
double Get() const override
Definition: CANSparkBase.cpp:61
FaultID
Definition: CANSparkBase.h:94
REVLibError BurnFlash()
Definition: CANSparkBase.cpp:417
bool IsFollower()
Definition: CANSparkBase.cpp:348
double GetMotorTemperature()
Definition: CANSparkBase.cpp:404
REVLibError GetLastError()
Definition: CANSparkBase.cpp:495
REVLibError SetSmartCurrentLimit(unsigned int limit)
Definition: CANSparkBase.cpp:241
SparkLimitSwitch GetForwardLimitSwitch(SparkLimitSwitch::Type switchType)
Definition: CANSparkBase.cpp:173
void SetInverted(bool isInverted) override
Definition: CANSparkBase.cpp:63
uint16_t GetFaults()
Definition: CANSparkBase.cpp:355
bool GetFault(FaultID faultID) const
Definition: CANSparkBase.cpp:369
void attemptToSetDataportConfigOrThrow(c_SparkMax_DataPortConfig config, std::string errorText)
Definition: CANSparkBase.cpp:517
static constexpr ExternalFollower kFollowerPhoenix
Definition: CANSparkBase.h:126
REVLibError SetSecondaryCurrentLimit(double limit, int limitCycles=0)
Definition: CANSparkBase.cpp:254
void Disable() override
Definition: CANSparkBase.cpp:75
void Set(double speed) override
Definition: CANSparkBase.cpp:46
REVLibError EnableVoltageCompensation(double nominalVoltage)
Definition: CANSparkBase.cpp:290
double GetOutputCurrent()
Definition: CANSparkBase.cpp:397
bool IsSoftLimitEnabled(SoftLimitDirection direction)
Definition: CANSparkBase.cpp:472
double GetSoftLimit(SoftLimitDirection direction)
Definition: CANSparkBase.cpp:457
SparkAbsoluteEncoder GetAbsoluteEncoder(SparkAbsoluteEncoder::Type encoderType=SparkAbsoluteEncoder::Type::kDutyCycle)
Definition: CANSparkBase.cpp:144
REVLibError SetClosedLoopRampRate(double rate)
Definition: CANSparkBase.cpp:315
REVLibError SetSoftLimit(SoftLimitDirection direction, double limit)
Definition: CANSparkBase.cpp:443
Definition: CANSparkFlex.h:38
Definition: CANSparkLowLevel.h:51
MotorType
Definition: CANSparkLowLevel.h:78
SparkModel
Definition: CANSparkLowLevel.h:164
friend class CANSparkBase
Definition: CANSparkLowLevel.h:57
Definition: CANSparkMax.h:38
Definition: SparkAbsoluteEncoder.h:38
Definition: SparkAnalogSensor.h:38
Definition: SparkLimitSwitch.h:38
Definition: SparkMaxAbsoluteEncoder.h:49
Definition: SparkMaxAlternateEncoder.h:46
Definition: SparkMaxAnalogSensor.h:59
Definition: SparkMaxLimitSwitch.h:55
Definition: SparkMaxRelativeEncoder.h:51
Definition: SparkPIDController.h:38
Definition: SparkRelativeEncoder.h:42
Type
Definition: SparkRelativeEncoder.h:50
Definition: CANSparkLowLevel.cpp:39
REVLibError
Definition: REVLibError.h:33
Definition: CANSparkBase.h:113
int configId
Definition: CANSparkBase.h:115
int arbId
Definition: CANSparkBase.h:114