Class ElevatorIOTalonFXReal
java.lang.Object
frc.alotobots.reefscape.subsystems.elevator.io.ElevatorIOTalonFXReal
- All Implemented Interfaces:
ElevatorIO
Hardware implementation of the Elevator subsystem using TalonFX motors and a CANRange sensor.
This class manages two TalonFX motors (left and right) and a CANRange for position feedback. The
right motor follows the left motor in an inverted configuration to ensure synchronized movement.
The CANRange provides absolute position feedback for the elevator mechanism.
-
Nested Class Summary
Nested classes/interfaces inherited from interface frc.alotobots.reefscape.subsystems.elevator.io.ElevatorIO
ElevatorIO.ElevatorIOInputs
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
resetRotorPositions
(Distance height) Resets the rotor sensors of both motors to be equal to the given heightvoid
setElevatorBrakeMode
(boolean brake) Sets the brake mode for the elevator motors.void
setElevatorOpenLoop
(double percentOutput) Sets the elevator motors to run in open-loop mode at the specified output percentage.void
setElevatorPosition
(Distance position, int pidSlot) Sets the elevator to a specific position using closed-loop control.void
setElevatorPositionMotionMagic
(Distance position, int pidSlot) Sets the elevator to a specific position using closed-loop control.void
setElevatorVelocity
(LinearVelocity velocity, int pidSlot) Sets the elevator to a specific velocity using closed-loop control.void
stop()
Stops all elevator motor movement.void
Updates the input values for the elevator subsystem.
-
Constructor Details
-
ElevatorIOTalonFXReal
public ElevatorIOTalonFXReal()Constructs a new ElevatorIOTalonFXReal instance. Initializes and configures the TalonFX motors and CANRange sensor with appropriate settings for position control, current limits, and safety features. The right motor is configured to follow the left motor in an inverted configuration.
-
-
Method Details
-
updateInputs
Updates the input values for the elevator subsystem. Refreshes all status signals and updates the provided inputs object with current sensor readings and state information.- Specified by:
updateInputs
in interfaceElevatorIO
- Parameters:
inputs
- The ElevatorIOInputs object to update with current values
-
setElevatorPosition
Sets the elevator to a specific position using closed-loop control.- Specified by:
setElevatorPosition
in interfaceElevatorIO
- Parameters:
position
- The target position as a Distance unitpidSlot
- The PID slot to use (0 for velocity mode, 1 for position mode)
-
setElevatorPositionMotionMagic
Sets the elevator to a specific position using closed-loop control.- Specified by:
setElevatorPositionMotionMagic
in interfaceElevatorIO
- Parameters:
position
- The target position as a Distance unitpidSlot
- The PID slot to use (0 for velocity mode, 1 for position mode)
-
setElevatorVelocity
Sets the elevator to a specific velocity using closed-loop control.- Specified by:
setElevatorVelocity
in interfaceElevatorIO
- Parameters:
velocity
- The target velocity as a LinearVelocity unitpidSlot
- The PID slot to use (0 for velocity mode, 1 for position mode)
-
setElevatorOpenLoop
public void setElevatorOpenLoop(double percentOutput) Sets the elevator motors to run in open-loop mode at the specified output percentage.- Specified by:
setElevatorOpenLoop
in interfaceElevatorIO
- Parameters:
percentOutput
- The motor output as a percentage (-1.0 to 1.0)
-
setElevatorBrakeMode
public void setElevatorBrakeMode(boolean brake) Sets the brake mode for the elevator motors.- Specified by:
setElevatorBrakeMode
in interfaceElevatorIO
- Parameters:
brake
- true to enable brake mode, false for coast mode
-
resetRotorPositions
Resets the rotor sensors of both motors to be equal to the given height- Specified by:
resetRotorPositions
in interfaceElevatorIO
- Parameters:
height
- The height off the floor the elevator is at
-
stop
public void stop()Stops all elevator motor movement.- Specified by:
stop
in interfaceElevatorIO
-