implement shooter pid
[3501/2017steamworks] / src / org / usfirst / frc / team3501 / robot / commands / shooter / RunFlyWheel.java
index 83d558acfca15a4d069d1cc230b9227c011242fa..c5101fc7d0dea5e23353b3a6c6b890ad35247450 100644 (file)
@@ -23,9 +23,9 @@ public class RunFlyWheel extends Command {
   private double wheelI;
   private double wheelD;
   private double target;
+  private double shooterSpeed = 0;
 
   public RunFlyWheel(double maxTimeOut) {
-    requires(shooter);
 
     this.wheelP = this.shooter.wheelP;
     this.wheelI = this.shooter.wheelI;
@@ -35,35 +35,39 @@ public class RunFlyWheel extends Command {
     this.wheelController.setDoneRange(0.5);
     this.wheelController.setMaxOutput(1.0);
     this.wheelController.setMinDoneCycles(3);
-    this.target = this.shooter.CURRENT_SHOOTING_SPEED;
+    this.target = this.shooter.getCurrentShootingSpeed();
   }
 
   // Called just before this Command runs the first time
+  @Override
   protected void initialize() {
     this.wheelController.setSetPoint(this.target);
   }
 
   // Called repeatedly when this Command is scheduled to run
+  @Override
   protected void execute() {
-    double shooterSpeed = this.wheelController
+    double calculatedShooterIncrement = this.wheelController
         .calcPID(this.shooter.getShooterRPM());
-
+    shooterSpeed += calculatedShooterIncrement;
     this.shooter.setFlyWheelMotorVal(shooterSpeed);
   }
 
   // Make this return true when this Command no longer needs to run execute()
+  @Override
   protected boolean isFinished() {
     return timeSinceInitialized() >= maxTimeOut;
   }
 
   // Called once after isFinished returns true
+  @Override
   protected void end() {
     this.shooter.stopFlyWheel();
   }
 
   // Called when another command which requires one or more of the same
   // subsystems is scheduled to run
+  @Override
   protected void interrupted() {
-    end();
   }
 }