Files
2026KPopRobotHunters/src/main/java/frc4388/robot/subsystems/climber/Climber.java
T
Michael Mikovsky 119451e29e Add Climber stuff
2026-02-22 14:02:31 -07:00

65 lines
1.4 KiB
Java

package frc4388.robot.subsystems.climber;
import static edu.wpi.first.units.Units.Inches;
import org.littletonrobotics.junction.Logger;
import edu.wpi.first.wpilibj2.command.SubsystemBase;
public class Climber extends SubsystemBase {
public ClimberIO io;
ClimberStateAutoLogged state = new ClimberStateAutoLogged();
public Climber(
ClimberIO io
) {
this.io = io;
}
ClimberMode mode = ClimberMode.Retracting;
public enum ClimberMode {
Extended,
Retracting,
}
public void deploy() {
mode = ClimberMode.Extended;
}
public void retract() {
mode = ClimberMode.Retracting;
}
public void toggleDeployed() {
switch (mode) {
case Extended:
mode = ClimberMode.Retracting;
break;
case Retracting:
mode = ClimberMode.Extended;
break;
}
}
@Override
public void periodic() {
switch (mode) {
case Extended:
io.setClimberDistance(state, Inches.of(ClimberConstants.CLIMBER_RETRACT_SPEED.get()));
break;
case Retracting:
io.setPercentOutput(state, ClimberConstants.CLIMBER_RETRACT_SPEED.get());
break;
}
Logger.processInputs("Climber", state);
io.updateInputs(state);
}
}