X-Git-Url: http://challenge-bot.com/repos/?a=blobdiff_plain;f=src%2Forg%2Fusfirst%2Ffrc%2Fteam3501%2Frobot%2Fcommands%2Fintake%2FReverseIntakeContinuous.java;h=699559d224c4d99313a8512d564d65ddbcd0f3b4;hb=f74d236db406193b851bff99e4daec7b7abf35e7;hp=b84a1920b9cbf90a3509c108522fb1e8a1169fb5;hpb=6486f4058c2c8fad53e3a6305b18d91d76fa0e1a;p=3501%2F2017steamworks diff --git a/src/org/usfirst/frc/team3501/robot/commands/intake/ReverseIntakeContinuous.java b/src/org/usfirst/frc/team3501/robot/commands/intake/ReverseIntakeContinuous.java index b84a192..699559d 100644 --- a/src/org/usfirst/frc/team3501/robot/commands/intake/ReverseIntakeContinuous.java +++ b/src/org/usfirst/frc/team3501/robot/commands/intake/ReverseIntakeContinuous.java @@ -1,18 +1,24 @@ 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 @@ -23,6 +29,9 @@ public class ReverseIntakeContinuous extends Command { // 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() @@ -34,11 +43,13 @@ public class ReverseIntakeContinuous extends Command { // Called once after isFinished returns true @Override protected void end() { + intake.stopIntake(); } // Called when another command which requires one or more of the same // subsystems is scheduled to run @Override protected void interrupted() { + end(); } }