package org.usfirst.frc.team3501.robot.subsystems;\r
\r
import org.usfirst.frc.team3501.robot.Constants;\r
+import org.usfirst.frc.team3501.robot.Constants.Shooter.State;\r
+import org.usfirst.frc.team3501.robot.Robot;\r
\r
import edu.wpi.first.wpilibj.CANTalon;\r
import edu.wpi.first.wpilibj.command.Subsystem;\r
\r
public class Shooter extends Subsystem {\r
- CANTalon shooter;\r
+ private CANTalon shooter;\r
+ private State state;\r
\r
public Shooter() {\r
shooter = new CANTalon(Constants.Shooter.PORT);\r
+ state = State.STOPPED;\r
}\r
\r
public double getCurrentSpeed() {\r
}\r
\r
public void setSpeed(double speed) {\r
+ state = State.RUNNING;\r
shooter.set(speed);\r
}\r
\r
+ public void shooterButtonsPressed() {\r
+\r
+ if (Robot.oi.rightJoystick\r
+ .getRawButton(Constants.OI.INCREMENT_SHOOTER_PORT)) {\r
+ changeSpeed(0.1);\r
+ }\r
+\r
+ if (Robot.oi.rightJoystick\r
+ .getRawButton(Constants.OI.DECREMENT_SHOOTER_PORT)) {\r
+ changeSpeed(-0.1);\r
+ }\r
+\r
+ if (Robot.oi.rightJoystick.getRawButton(Constants.OI.TRIGGER_PORT)) {\r
+ if (this.getState() == State.STOPPED)\r
+ this.setSpeed(0.5);\r
+ } else {\r
+ if (this.getState() == State.RUNNING) {\r
+ this.stop();\r
+ }\r
+ }\r
+\r
+ if (Robot.oi.rightJoystick.getRawButton(Constants.OI.PRINT_PORT)) {\r
+ System.out.println("Current Shooter Speed: " + getCurrentSpeed());\r
+ }\r
+ }\r
+\r
+ private void stop() {\r
+ this.setSpeed(0.0);\r
+ }\r
+\r
+ private State getState() {\r
+ return state;\r
+ }\r
+\r
// Use negative # for decrement. Positive for increment.\r
public void changeSpeed(double change) {\r
if (getCurrentSpeed() + change >= 1.0)\r
double newSpeed = getCurrentSpeed() + change;\r
setSpeed(newSpeed);\r
}\r
+ this.state = State.RUNNING;\r
}\r
\r
@Override\r