X-Git-Url: http://challenge-bot.com/repos/?p=3501%2F2017steamworks;a=blobdiff_plain;f=src%2Forg%2Fusfirst%2Ffrc%2Fteam3501%2Frobot%2Fcommands%2Fshooter%2FRunIndexWheelContinuous.java;h=95940130f11aac8c50ebc54dc29af5d2d13dcf76;hp=b206d1d4d9b1948a4f50f7e6b61cbbd4c5fbff1a;hb=cb8e86cb498c12dcf4e2b7a5916fc6f4926b77cf;hpb=4f2fa45c4c53db8aafb680d84819073bd0c8739e diff --git a/src/org/usfirst/frc/team3501/robot/commands/shooter/RunIndexWheelContinuous.java b/src/org/usfirst/frc/team3501/robot/commands/shooter/RunIndexWheelContinuous.java index b206d1d..9594013 100644 --- a/src/org/usfirst/frc/team3501/robot/commands/shooter/RunIndexWheelContinuous.java +++ b/src/org/usfirst/frc/team3501/robot/commands/shooter/RunIndexWheelContinuous.java @@ -1,36 +1,62 @@ 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.command.Command; /** - * Runs index wheel continuously when corresponding button is pressed + * This command runs index wheel continuously when OI button managing index + * wheel is pressed. The command will run the index 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 */ public class RunIndexWheelContinuous extends Command { - public RunIndexWheelContinuous() { + private Shooter shooter = Robot.getShooter(); + /** + * See JavaDoc comment in class for details + */ + public RunIndexWheelContinuous() { + requires(shooter); } - // Called just before this Command runs the first time @Override protected void initialize() { } - // Called repeatedly when this Command is scheduled to run @Override protected void execute() { + if (timeSinceInitialized() % 0.5 <= 0.02) { + 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(); } - // Called once after isFinished returns true @Override protected void end() { + shooter.stopIndexWheel(); } - // Called when another command which requires one or more of the same - // subsystems is scheduled to run @Override protected void interrupted() { + end(); } @Override