X-Git-Url: http://challenge-bot.com/repos/?a=blobdiff_plain;f=src%2Forg%2Fusfirst%2Ffrc%2Fteam3501%2Frobot%2Fcommands%2Fshooter%2FRunFlyWheel.java;h=5abd73afe9fc64c798762a7dca6a92fd2a5b7b64;hb=7ba6bc91b8cf7205e05cdb974dc80fdd668ebe59;hp=f57cd5bc607865b133f1e18ec786cc796a5075cc;hpb=b7ef589aaceec01ee3478523108784569f664be5;p=3501%2F2017steamworks diff --git a/src/org/usfirst/frc/team3501/robot/commands/shooter/RunFlyWheel.java b/src/org/usfirst/frc/team3501/robot/commands/shooter/RunFlyWheel.java index f57cd5b..5abd73a 100644 --- a/src/org/usfirst/frc/team3501/robot/commands/shooter/RunFlyWheel.java +++ b/src/org/usfirst/frc/team3501/robot/commands/shooter/RunFlyWheel.java @@ -1,54 +1,55 @@ package org.usfirst.frc.team3501.robot.commands.shooter; +import org.usfirst.frc.team3501.robot.Robot; +import org.usfirst.frc.team3501.robot.subsystems.Shooter; +import org.usfirst.frc.team3501.robot.utils.PIDController; + import edu.wpi.first.wpilibj.command.Command; /** - * This command runs the fly wheel at a given speed for a given time. The fly - * wheel is intended to shoot balls fed by the intake wheel. + * This command runs the fly wheel continuously at a set speed using a PID + * Controller when OI button managing fly wheel is pressed. The command will run + * the fly wheel motor until the button triggering it is released. + * + * Should only be run from the operator interface. + * + * pre-condition: This command must be run by a button in OI, with + * button.whileHeld(...). * - * @author Shaina + * @author Shaina & Chris */ public class RunFlyWheel extends Command { - private double motorVal; - private double time; - - /** - * See JavaDoc comment in class for details - * - * @param motorVal - * value range from -1 to 1 - * @param time - * in seconds, amount of time to run fly wheel motor - */ - public RunFlyWheel(double motorVal, double time) { - this.motorVal = motorVal; + private Shooter shooter = Robot.getShooter(); + double time; + + private PIDController wheelController; + + public RunFlyWheel(double time) { this.time = time; } - // Called just before this Command runs the first time @Override protected void initialize() { + shooter.initializePIDController(); } - // Called repeatedly when this Command is scheduled to run @Override protected void execute() { + shooter.setFlyWheelMotorVal(shooter.calculateShooterSpeed()); } - // Called once after isFinished returns true @Override - protected void end() { + protected boolean isFinished() { + return timeSinceInitialized() >= time; } - // Called when another command which requires one or more of the same - // subsystems is scheduled to run @Override - protected void interrupted() { + protected void end() { + this.shooter.stopFlyWheel(); } @Override - protected boolean isFinished() { - return false; + protected void interrupted() { + end(); } - }