1 package org
.usfirst
.frc
.team3501
.robot
.commands
.shooter
;
3 import org
.usfirst
.frc
.team3501
.robot
.Robot
;
4 import org
.usfirst
.frc
.team3501
.robot
.subsystems
.Shooter
;
6 import edu
.wpi
.first
.wpilibj
.command
.Command
;
9 * This command runs index wheel continuously when OI button managing index
10 * wheel is pressed. The command will run the index wheel motor until the button
11 * triggering it is released.
13 * Should only be run from the operator interface.
15 * pre-condition: This command must be run by a button in OI with
16 * button.whileHeld(...).
20 public class RunIndexWheelContinuous
extends Command
{
21 private Shooter shooter
= Robot
.getShooter();
23 private double previousMotorValue
= 0;
24 private double targetMotorValue
= shooter
.DEFAULT_INDEXING_MOTOR_VALUE
;
27 * See JavaDoc comment in class for details
29 public RunIndexWheelContinuous() {
33 protected void initialize() {
37 protected void execute() {
38 double shooterSpeed
= shooter
.getShooterRPM();
39 double targetShooterSpeed
= shooter
.getTargetShootingSpeed();
40 double threshold
= shooter
.getRPMThreshold();
41 if (Math
.abs(shooterSpeed
- targetShooterSpeed
) <= threshold
) {
42 double motorValue
= (6 * previousMotorValue
+ targetMotorValue
) / 7;
43 previousMotorValue
= motorValue
;
44 shooter
.setIndexWheelMotorVal(motorValue
);
49 protected void end() {
50 shooter
.stopIndexWheel();
54 protected void interrupted() {
59 protected boolean isFinished() {