X-Git-Url: http://challenge-bot.com/repos/?p=3501%2F2017steamworks;a=blobdiff_plain;f=src%2Forg%2Fusfirst%2Ffrc%2Fteam3501%2Frobot%2Fcommands%2Fshooter%2FRunFlyWheel.java;h=5abd73afe9fc64c798762a7dca6a92fd2a5b7b64;hp=c5101fc7d0dea5e23353b3a6c6b890ad35247450;hb=7ba6bc91b8cf7205e05cdb974dc80fdd668ebe59;hpb=f625e57a09b295f7d40e4568a8e3a8cd125630aa 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 c5101fc..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,4 +1,3 @@ - package org.usfirst.frc.team3501.robot.commands.shooter; import org.usfirst.frc.team3501.robot.Robot; @@ -8,66 +7,49 @@ import org.usfirst.frc.team3501.robot.utils.PIDController; import edu.wpi.first.wpilibj.command.Command; /** - * This command runs the fly wheel at a specific speed using a PID Controller - * for accuracy 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 & Chris */ public class RunFlyWheel extends Command { private Shooter shooter = Robot.getShooter(); - private double maxTimeOut; + double time; private PIDController wheelController; - private double wheelP; - private double wheelI; - private double wheelD; - private double target; - private double shooterSpeed = 0; - - public RunFlyWheel(double maxTimeOut) { - this.wheelP = this.shooter.wheelP; - this.wheelI = this.shooter.wheelI; - this.wheelD = this.shooter.wheelD; - this.wheelController = new PIDController(this.wheelP, this.wheelI, - this.wheelD); - this.wheelController.setDoneRange(0.5); - this.wheelController.setMaxOutput(1.0); - this.wheelController.setMinDoneCycles(3); - this.target = this.shooter.getCurrentShootingSpeed(); + public RunFlyWheel(double time) { + this.time = time; } - // Called just before this Command runs the first time @Override protected void initialize() { - this.wheelController.setSetPoint(this.target); + shooter.initializePIDController(); } - // Called repeatedly when this Command is scheduled to run @Override protected void execute() { - double calculatedShooterIncrement = this.wheelController - .calcPID(this.shooter.getShooterRPM()); - shooterSpeed += calculatedShooterIncrement; - this.shooter.setFlyWheelMotorVal(shooterSpeed); + shooter.setFlyWheelMotorVal(shooter.calculateShooterSpeed()); } - // Make this return true when this Command no longer needs to run execute() @Override protected boolean isFinished() { - return timeSinceInitialized() >= maxTimeOut; + return timeSinceInitialized() >= time; } - // 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(); } }