public class LinearClimb extends SubsystemBase {
private final TalonFX motor;
private boolean calibrating = false;
- private int counter = 0;
private double downPosition = ClimbConstants.OFFSET;
private double upPosition = 0;
private double climbPosition = ClimbConstants.CLIMB_OFFSET;
@Override
public void periodic() {
- if (!calibrating) {
+ if (calibrating) {
double power = pid.calculate(motor.getPosition().getValueAsDouble());
power = MathUtil.clamp(power, ClimbConstants.MIN_POWER, ClimbConstants.MAX_POWER);
motor.set(power);
} else {
- if (counter > ClimbConstants.CALIBRATION_COUNTER_LIMIT) {
+ if (!calibrating) {
stopCalibrating();
}
motor.set(ClimbConstants.CALIBRATION_POWER);
- counter += 1;
}
SmartDashboard.putNumber("Position", getPosition());
}
public void hardstopCalibration() {
calibrating = true;
- counter = 0;
setCurrentLimits(ClimbConstants.CALIBRATION_CURRENT);
}
upPosition = hardstopPosition;
setSetpoint(downPosition);
calibrating = false;
- counter = 0;
setCurrentLimits(ClimbConstants.CLIMB_CURRENT);
}
}