Class SparkMaxSwerve

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      (package private) static class  SparkMaxSwerve.SparkMAX_slotIdx
      REV Slots for PID configuration.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      com.revrobotics.AbsoluteEncoder absoluteEncoder
      Absolute encoder attached to the SparkMax (if exists)
      com.revrobotics.RelativeEncoder encoder
      Integrated encoder.
      private boolean factoryDefaultOccurred
      Factory default already occurred.
      com.revrobotics.CANSparkMax motor
      SparkMAX Instance.
      com.revrobotics.SparkMaxPIDController pid
      Closed-loop PID controller.
    • Constructor Summary

      Constructors 
      Constructor Description
      SparkMaxSwerve​(int id, boolean isDriveMotor)
      Initialize the SwerveMotor as a CANSparkMax connected to a Brushless Motor.
      SparkMaxSwerve​(com.revrobotics.CANSparkMax motor, boolean isDriveMotor)
      Initialize the swerve motor.
    • Field Detail

      • motor

        public com.revrobotics.CANSparkMax motor
        SparkMAX Instance.
      • encoder

        public com.revrobotics.RelativeEncoder encoder
        Integrated encoder.
      • absoluteEncoder

        public com.revrobotics.AbsoluteEncoder absoluteEncoder
        Absolute encoder attached to the SparkMax (if exists)
      • pid

        public com.revrobotics.SparkMaxPIDController pid
        Closed-loop PID controller.
      • factoryDefaultOccurred

        private boolean factoryDefaultOccurred
        Factory default already occurred.
    • Constructor Detail

      • SparkMaxSwerve

        public SparkMaxSwerve​(com.revrobotics.CANSparkMax motor,
                              boolean isDriveMotor)
        Initialize the swerve motor.
        Parameters:
        motor - The SwerveMotor as a SparkMax object.
        isDriveMotor - Is the motor being initialized a drive motor?
      • SparkMaxSwerve

        public SparkMaxSwerve​(int id,
                              boolean isDriveMotor)
        Initialize the SwerveMotor as a CANSparkMax connected to a Brushless Motor.
        Parameters:
        id - CAN ID of the SparkMax.
        isDriveMotor - Is the motor being initialized a drive motor?
    • Method Detail

      • setVoltageCompensation

        public void setVoltageCompensation​(double nominalVoltage)
        Set the voltage compensation for the swerve module motor.
        Specified by:
        setVoltageCompensation in class SwerveMotor
        Parameters:
        nominalVoltage - Nominal voltage for operation to output to.
      • setCurrentLimit

        public void setCurrentLimit​(int currentLimit)
        Set the current limit for the swerve drive motor, remember this may cause jumping if used in conjunction with voltage compensation. This is useful to protect the motor from current spikes.
        Specified by:
        setCurrentLimit in class SwerveMotor
        Parameters:
        currentLimit - Current limit in AMPS at free speed.
      • setLoopRampRate

        public void setLoopRampRate​(double rampRate)
        Set the maximum rate the open/closed loop output can change by.
        Specified by:
        setLoopRampRate in class SwerveMotor
        Parameters:
        rampRate - Time in seconds to go from 0 to full throttle.
      • getMotor

        public Object getMotor()
        Get the motor object from the module.
        Specified by:
        getMotor in class SwerveMotor
        Returns:
        Motor object.
      • isAttachedAbsoluteEncoder

        public boolean isAttachedAbsoluteEncoder()
        Queries whether the absolute encoder is directly attached to the motor controller.
        Specified by:
        isAttachedAbsoluteEncoder in class SwerveMotor
        Returns:
        connected absolute encoder state.
      • factoryDefaults

        public void factoryDefaults()
        Configure the factory defaults.
        Specified by:
        factoryDefaults in class SwerveMotor
      • clearStickyFaults

        public void clearStickyFaults()
        Clear the sticky faults on the motor controller.
        Specified by:
        clearStickyFaults in class SwerveMotor
      • configureIntegratedEncoder

        public void configureIntegratedEncoder​(double positionConversionFactor)
        Configure the integrated encoder for the swerve module. Sets the conversion factors for position and velocity.
        Specified by:
        configureIntegratedEncoder in class SwerveMotor
        Parameters:
        positionConversionFactor - The conversion factor to apply.
      • configurePIDF

        public void configurePIDF​(PIDFConfig config)
        Configure the PIDF values for the closed loop controller.
        Specified by:
        configurePIDF in class SwerveMotor
        Parameters:
        config - Configuration class holding the PIDF values.
      • configurePIDWrapping

        public void configurePIDWrapping​(double minInput,
                                         double maxInput)
        Configure the PID wrapping for the position closed loop controller.
        Specified by:
        configurePIDWrapping in class SwerveMotor
        Parameters:
        minInput - Minimum PID input.
        maxInput - Maximum PID input.
      • configureCANStatusFrames

        public void configureCANStatusFrames​(int CANStatus0,
                                             int CANStatus1,
                                             int CANStatus2,
                                             int CANStatus3,
                                             int CANStatus4)
        Set the CAN status frames.
        Parameters:
        CANStatus0 - Applied Output, Faults, Sticky Faults, Is Follower
        CANStatus1 - Motor Velocity, Motor Temperature, Motor Voltage, Motor Current
        CANStatus2 - Motor Position
        CANStatus3 - Analog Sensor Voltage, Analog Sensor Velocity, Analog Sensor Position
        CANStatus4 - Alternate Encoder Velocity, Alternate Encoder Position
      • setMotorBrake

        public void setMotorBrake​(boolean isBrakeMode)
        Set the idle mode.
        Specified by:
        setMotorBrake in class SwerveMotor
        Parameters:
        isBrakeMode - Set the brake mode.
      • setInverted

        public void setInverted​(boolean inverted)
        Set the motor to be inverted.
        Specified by:
        setInverted in class SwerveMotor
        Parameters:
        inverted - State of inversion.
      • burnFlash

        public void burnFlash()
        Save the configurations from flash to EEPROM.
        Specified by:
        burnFlash in class SwerveMotor
      • set

        public void set​(double percentOutput)
        Set the percentage output.
        Specified by:
        set in class SwerveMotor
        Parameters:
        percentOutput - percent out for the motor controller.
      • setReference

        public void setReference​(double setpoint,
                                 double feedforward)
        Set the closed loop PID controller reference point.
        Specified by:
        setReference in class SwerveMotor
        Parameters:
        setpoint - Setpoint in MPS or Angle in degrees.
        feedforward - Feedforward in volt-meter-per-second or kV.
      • getVelocity

        public double getVelocity()
        Get the velocity of the integrated encoder.
        Specified by:
        getVelocity in class SwerveMotor
        Returns:
        velocity
      • getPosition

        public double getPosition()
        Get the position of the integrated encoder.
        Specified by:
        getPosition in class SwerveMotor
        Returns:
        Position
      • setPosition

        public void setPosition​(double position)
        Set the integrated encoder position.
        Specified by:
        setPosition in class SwerveMotor
        Parameters:
        position - Integrated encoder position.