Add JoystickButton objects and constants for Drivetrain, Climer, Intake, and Shooter
[3501/2017steamworks] / src / org / usfirst / frc / team3501 / robot / OI.java
index ec405ac0aeca44daba0e501381b186e0ba476dbe..32ec06253e7be998195641cdaf87c114c52f935d 100644 (file)
@@ -1,6 +1,13 @@
 package org.usfirst.frc.team3501.robot;
 
+import org.usfirst.frc.team3501.robot.commands.climber.MaintainClimbedPosition;
+import org.usfirst.frc.team3501.robot.commands.climber.RunWinchContinuous;
 import org.usfirst.frc.team3501.robot.commands.driving.ToggleGear;
+import org.usfirst.frc.team3501.robot.commands.intake.ReverseIntakeContinuous;
+import org.usfirst.frc.team3501.robot.commands.intake.RunIntakeContinuous;
+import org.usfirst.frc.team3501.robot.commands.shooter.ReverseIndexWheelContinuous;
+import org.usfirst.frc.team3501.robot.commands.shooter.RunFlyWheelContinuous;
+import org.usfirst.frc.team3501.robot.commands.shooter.RunIndexWheelContinuous;
 
 import edu.wpi.first.wpilibj.Joystick;
 import edu.wpi.first.wpilibj.buttons.Button;
@@ -11,24 +18,54 @@ public class OI {
   public static Joystick leftJoystick;
   public static Joystick rightJoystick;
   public static Button toggleWinch;
+  private boolean isClimbing = false;
 
-  public static Button toggleIndexWheel;
+  public static Button runIndexWheel;
+  public static Button reverseIndexWheel;
   public static Button toggleFlyWheel;
 
   public static Button toggleGear;
 
+  public static Button runIntake;
+  public static Button reverseIntake;
+
   public OI() {
     leftJoystick = new Joystick(Constants.OI.LEFT_STICK_PORT);
     rightJoystick = new Joystick(Constants.OI.RIGHT_STICK_PORT);
-    toggleWinch = new JoystickButton(leftJoystick,
-        Constants.OI.TOGGLE_WINCH_PORT);
-    toggleIndexWheel = new JoystickButton(leftJoystick,
+
+    runIndexWheel = new JoystickButton(leftJoystick,
         Constants.OI.TOGGLE_INDEXWHEEL_PORT);
+    runIndexWheel.whileHeld(new RunIndexWheelContinuous());
+
+    reverseIndexWheel = new JoystickButton(leftJoystick,
+        Constants.OI.REVERSE_INDEXWHEEL_PORT);
+    reverseIndexWheel.whileHeld(new ReverseIndexWheelContinuous());
+
     toggleFlyWheel = new JoystickButton(leftJoystick,
         Constants.OI.TOGGLE_FLYWHEEL_PORT);
+    toggleFlyWheel.toggleWhenPressed(new RunFlyWheelContinuous());
+
     toggleGear = new JoystickButton(leftJoystick,
         Constants.OI.TOGGLE_GEAR_PORT);
     toggleGear.whenPressed(new ToggleGear());
+
+    runIntake = new JoystickButton(leftJoystick,
+        Constants.OI.TOGGLE_INTAKE_PORT);
+    runIntake.whileHeld(new RunIntakeContinuous());
+
+    reverseIntake = new JoystickButton(leftJoystick,
+        Constants.OI.REVERSE_INTAKE_PORT);
+    reverseIntake.whileHeld(new ReverseIntakeContinuous());
+
+    toggleWinch = new JoystickButton(leftJoystick,
+        Constants.OI.TOGGLE_WINCH_PORT);
+    if (!isClimbing) {
+      toggleWinch.whenPressed(new RunWinchContinuous());
+      isClimbing = true;
+    } else {
+      toggleWinch.whenPressed(new MaintainClimbedPosition());
+      isClimbing = false;
+    }
   }
 
   public static OI getOI() {