package org.usfirst.frc.team3501.robot.commands.shooter;
-import org.usfirst.frc.team3501.robot.Constants;
import org.usfirst.frc.team3501.robot.Robot;
import org.usfirst.frc.team3501.robot.subsystems.Shooter;
-import edu.wpi.first.wpilibj.Timer;
import edu.wpi.first.wpilibj.command.Command;
/**
*/
public class RunIndexWheelContinuous extends Command {
private Shooter shooter = Robot.getShooter();
- private Timer t = new Timer();
+
+ private double previousMotorValue = 0;
+ private double targetMotorValue = shooter.DEFAULT_INDEXING_MOTOR_VALUE;
/**
* See JavaDoc comment in class for details
*/
public RunIndexWheelContinuous() {
- requires(shooter);
}
@Override
protected void initialize() {
- t.reset();
}
@Override
protected void execute() {
- if (t.get() % 1 == 0) {
- if (Shooter.getShooter().getPistonValue() == Constants.Shooter.LOW_GEAR) {
- Shooter.getShooter().setHighGear();
- } else {
- Shooter.getShooter().setLowGear();
- }
- }
-
double shooterSpeed = shooter.getShooterRPM();
double targetShooterSpeed = shooter.getTargetShootingSpeed();
double threshold = shooter.getRPMThreshold();
- if (Math.abs(shooterSpeed - targetShooterSpeed) <= threshold)
- shooter.runIndexWheel();
+ if (Math.abs(shooterSpeed - targetShooterSpeed) <= threshold) {
+ double motorValue = (6 * previousMotorValue + targetMotorValue) / 7;
+ previousMotorValue = motorValue;
+ shooter.setIndexWheelMotorVal(motorValue);
+ }
}
@Override