competition fixes
[3501/2017steamworks] / src / org / usfirst / frc / team3501 / robot / commands / intake / ReverseIntakeContinuous.java
index f387112ef612a0cf3327dbe5e1e3c89a018c89b7..699559d224c4d99313a8512d564d65ddbcd0f3b4 100644 (file)
@@ -1,31 +1,37 @@
 package org.usfirst.frc.team3501.robot.commands.intake;
 
 import org.usfirst.frc.team3501.robot.Robot;
+import org.usfirst.frc.team3501.robot.subsystems.Intake;
 
 import edu.wpi.first.wpilibj.command.Command;
 
 /**
  * Reverses the intake until the button triggering this command is released
  *
- * pre-condition: button is pressed
+ * pre-condition: This command must be run by a button in OI with
+ * button.whileHeld(...).
  */
 public class ReverseIntakeContinuous extends Command {
+  private Intake intake = Robot.getIntake();
+
+  private double previousMotorValue = 0;
+  private double targetMotorValue = intake.REVERSE_SPEED;
 
   public ReverseIntakeContinuous() {
-    requires(Robot.getIntake());
+    requires(intake);
   }
 
   // Called just before this Command runs the first time
   @Override
   protected void initialize() {
-    Robot.getIntake().runReverseIntake();
-
   }
 
   // Called repeatedly when this Command is scheduled to run
   @Override
   protected void execute() {
-
+    double motorValue = (6 * previousMotorValue + targetMotorValue) / 7;
+    previousMotorValue = motorValue;
+    intake.setSpeed(motorValue);
   }
 
   // Make this return true when this Command no longer needs to run execute()
@@ -37,7 +43,7 @@ public class ReverseIntakeContinuous extends Command {
   // Called once after isFinished returns true
   @Override
   protected void end() {
-    Robot.getIntake().stopIntake();
+    intake.stopIntake();
   }
 
   // Called when another command which requires one or more of the same