Add JoystickButton objects and constants for Drivetrain, Climer, Intake, and Shooter
[3501/2017steamworks] / src / org / usfirst / frc / team3501 / robot / OI.java
index e72c0284b52d3f65336496174716c26c02fb18aa..32ec06253e7be998195641cdaf87c114c52f935d 100644 (file)
@@ -1,5 +1,14 @@
 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;
 import edu.wpi.first.wpilibj.buttons.JoystickButton;
@@ -9,13 +18,54 @@ public class OI {
   public static Joystick leftJoystick;
   public static Joystick rightJoystick;
   public static Button toggleWinch;
+  private boolean isClimbing = false;
+
+  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);
+
+    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() {