package org.usfirst.frc.team3501.robot;
-import org.usfirst.frc.team3501.robot.commands.auton.CompactRobot;
-import org.usfirst.frc.team3501.robot.commands.auton.PassChevalDeFrise;
-import org.usfirst.frc.team3501.robot.commands.auton.PassDrawBridge;
-import org.usfirst.frc.team3501.robot.commands.auton.PassPortcullis;
-import org.usfirst.frc.team3501.robot.commands.auton.PassSallyPort;
-import org.usfirst.frc.team3501.robot.commands.driving.Turn180;
-import org.usfirst.frc.team3501.robot.commands.intakearm.IntakeBall;
-import org.usfirst.frc.team3501.robot.commands.intakearm.MoveIntakeArmToAngle;
-import org.usfirst.frc.team3501.robot.commands.scaler.ExtendLift;
-import org.usfirst.frc.team3501.robot.commands.scaler.RetractLift;
-import org.usfirst.frc.team3501.robot.commands.scaler.RunWinchContinuous;
-import org.usfirst.frc.team3501.robot.commands.scaler.StopWinch;
-import org.usfirst.frc.team3501.robot.commands.scaler.ToggleScaling;
-import org.usfirst.frc.team3501.robot.commands.shooter.Shoot;
-import org.usfirst.frc.team3501.robot.commands.shooter.runShooter;
-import org.usfirst.frc.team3501.robot.subsystems.IntakeArm;
-
-import edu.wpi.first.wpilibj.DigitalInput;
+import org.usfirst.frc.team3501.robot.Constants.IntakeArm;
+import org.usfirst.frc.team3501.robot.commands.driving.SetHighGear;
+import org.usfirst.frc.team3501.robot.commands.driving.SetLowGear;
+import org.usfirst.frc.team3501.robot.commands.driving.ToggleFront;
+import org.usfirst.frc.team3501.robot.commands.intakearm.MoveIntakeArm;
+import org.usfirst.frc.team3501.robot.commands.intakearm.RunIntakeContinuous;
+import org.usfirst.frc.team3501.robot.commands.shooter.FireCatapult;
+import org.usfirst.frc.team3501.robot.commands.shooter.ResetCatapult;
+
import edu.wpi.first.wpilibj.Joystick;
import edu.wpi.first.wpilibj.buttons.Button;
import edu.wpi.first.wpilibj.buttons.JoystickButton;
public class OI {
- public static boolean isScalingMode = false;
- public static boolean isCompactRobot = false;
-
public static Joystick leftJoystick;
public static Joystick rightJoystick;
- // first column of arcade buttons - getting past defenses
- public static DigitalButton passPortcullis;
- public static DigitalButton passChevalDeFrise;
- public static DigitalButton passDrawbridge;
- public static DigitalButton passSallyPort;
-
- // second column of arcade buttons - different angles for intake arm
- // TO DO: change position numbers to angle values (?)
- public static DigitalButton lowerChevalDeFrise;
- public static DigitalButton moveToIntakeBoulder;
- public static DigitalButton poiseAboveChevalDeFrise;
- public static DigitalButton moveIntakeArmInsideRobot;
-
// left joystick buttons
- public static Button toggleShooter;
- public static Button SpinRobot180_1; // both do the same thing, just two
- public static Button SpinRobot180_2; // different buttons
- public static Button compactRobot_1;
- public static Button compactRobot_2;
+ public static Button gearShift;
+ public static Button extendIntake1;
+ public static Button extendIntake2;
+ public static Button retractIntake1;
+ public static Button retractIntake2;
+ public static Button toggleFront;
// right joystick buttons
- public static Button intakeBoulder;
- public static Button shootBoulder;
-
- // button to change robot to the scaling mode
- public static DigitalButton toggleScaling;
+ public static Button intake;
+ public static Button outtake1;
+ public static Button outtake2;
+ public static Button shooterUp;
+ public static Button shooterDown1;
+ public static Button shooterDown2;
public OI() {
leftJoystick = new Joystick(Constants.OI.LEFT_STICK_PORT);
rightJoystick = new Joystick(Constants.OI.RIGHT_STICK_PORT);
- passPortcullis = new DigitalButton(
- new DigitalInput(Constants.OI.PASS_PORTCULLIS_PORT));
- passPortcullis.whenPressed(new PassPortcullis());
-
- passChevalDeFrise = new DigitalButton(
- new DigitalInput(Constants.OI.PASS_CHEVAL_DE_FRISE_PORT));
- passChevalDeFrise.whenPressed(new PassChevalDeFrise());
-
- passDrawbridge = new DigitalButton(
- new DigitalInput(Constants.OI.PASS_DRAWBRIDGE_PORT));
- passDrawbridge.whenPressed(new PassDrawBridge());
-
- passSallyPort = new DigitalButton(
- new DigitalInput(Constants.OI.PASS_SALLYPORT_PORT));
- passSallyPort.whenPressed(new PassSallyPort());
-
- lowerChevalDeFrise = new DigitalButton(
- new DigitalInput(Constants.OI.ARCADE_INTAKEARM_LEVEL_ONE_PORT));
- lowerChevalDeFrise.whenPressed(new MoveIntakeArmToAngle(
- IntakeArm.potAngles[0], IntakeArm.moveIntakeArmSpeed));
-
- moveToIntakeBoulder = new DigitalButton(
- new DigitalInput(Constants.OI.ARCADE_INTAKEARM_LEVEL_TWO_PORT));
- moveToIntakeBoulder.whenPressed(new MoveIntakeArmToAngle(
- IntakeArm.potAngles[1], IntakeArm.moveIntakeArmSpeed));
-
- poiseAboveChevalDeFrise = new DigitalButton(
- new DigitalInput(Constants.OI.ARCADE_INTAKEARM_LEVEL_THREE_PORT));
- poiseAboveChevalDeFrise.whenPressed(new MoveIntakeArmToAngle(
- IntakeArm.potAngles[2], IntakeArm.moveIntakeArmSpeed));
-
- moveIntakeArmInsideRobot = new DigitalButton(
- new DigitalInput(Constants.OI.ARCADE_INTAKEARM_LEVEL_FOUR_PORT));
- moveIntakeArmInsideRobot.whenPressed(new MoveIntakeArmToAngle(
- IntakeArm.potAngles[3], IntakeArm.moveIntakeArmSpeed));
-
- toggleShooter = new JoystickButton(leftJoystick,
- Constants.OI.LEFT_JOYSTICK_TRIGGER_PORT);
- SpinRobot180_1 = new JoystickButton(leftJoystick,
- Constants.OI.SPIN1_PORT);
- SpinRobot180_1.whenPressed(new Turn180());
-
- SpinRobot180_2 = new JoystickButton(leftJoystick,
- Constants.OI.SPIN2_PORT);
- SpinRobot180_2.whenPressed(new Turn180());
-
- compactRobot_1 = new JoystickButton(leftJoystick,
- Constants.OI.LEFT_JOYSTICK_TOP_CENTER_PORT);
- compactRobot_2 = new JoystickButton(leftJoystick,
- Constants.OI.LEFT_JOYSTICK_TOP_LOW_PORT);
-
- intakeBoulder = new JoystickButton(rightJoystick,
- Constants.OI.RIGHT_JOYSTICK_TRIGGER_PORT);
- shootBoulder = new JoystickButton(rightJoystick,
- Constants.OI.RIGHT_JOYSTICK_THUMB_PORT);
-
- toggleScaling = new DigitalButton(
- new DigitalInput(Constants.OI.TOGGLE_SCALING_PORT));
- toggleScaling.whenPressed(new ToggleScaling());
-
- if (!Constants.Scaler.SCALING) {
- toggleShooter.toggleWhenPressed(new runShooter());
- compactRobot_1.whenPressed(new CompactRobot());
- compactRobot_2.whenPressed(new CompactRobot());
-
- intakeBoulder.whenPressed(new IntakeBall());
- shootBoulder.whenPressed(new Shoot());
-
- } else if (isScalingMode) {
- // toggleShooter becomes winch
- // compact robot button 1 and 2 retracts the lift
- // intake button stops the winch
- // shoot button extends the lift
- toggleShooter.whenPressed(new RunWinchContinuous(
- Constants.Scaler.WINCH_IN_SPEED));
- compactRobot_1.whenPressed(new RetractLift());
- compactRobot_2.whenPressed(new RetractLift());
-
- intakeBoulder.whenReleased(new StopWinch());
- shootBoulder.whenPressed(new ExtendLift());
- }
+ // Left joystick
+ gearShift = new JoystickButton(leftJoystick,
+ Constants.OI.LEFT_JOYSTICK_GEAR_SHIFT_PORT);
+ gearShift.whenPressed(new SetHighGear());
+ gearShift.whenReleased(new SetLowGear());
+
+ extendIntake1 = new JoystickButton(leftJoystick,
+ Constants.OI.LEFT_JOYSTICK_EXTEND_INTAKE_1_PORT);
+ extendIntake1.whenPressed(new MoveIntakeArm(IntakeArm.EXTEND));
+
+ extendIntake2 = new JoystickButton(leftJoystick,
+ Constants.OI.LEFT_JOYSTICK_EXTEND_INTAKE_2_PORT);
+ extendIntake2.whenPressed(new MoveIntakeArm(IntakeArm.EXTEND));
+
+ retractIntake1 = new JoystickButton(leftJoystick,
+ Constants.OI.LEFT_JOYSTICK_RETRACT_INTAKE_1_PORT);
+ retractIntake1.whenPressed(new MoveIntakeArm(IntakeArm.RETRACT));
+
+ retractIntake2 = new JoystickButton(leftJoystick,
+ Constants.OI.LEFT_JOYSTICK_RETRACT_INTAKE_2_PORT);
+ retractIntake2.whenPressed(new MoveIntakeArm(IntakeArm.RETRACT));
+
+ toggleFront = new JoystickButton(leftJoystick,
+ Constants.OI.LEFT_JOYSTICK_TOGGLE_FRONT_PORT);
+ toggleFront.whenPressed(new ToggleFront());
+
+ // Right joystick
+ intake = new JoystickButton(rightJoystick,
+ Constants.OI.RIGHT_JOYSTICK_INTAKE_PORT);
+ intake.whenPressed(new RunIntakeContinuous(IntakeArm.IN));
+ intake.whenReleased(new RunIntakeContinuous(IntakeArm.STOP));
+
+ outtake1 = new JoystickButton(rightJoystick,
+ Constants.OI.RIGHT_JOYSTICK_OUTTAKE_1_PORT);
+ outtake1.whenPressed(new RunIntakeContinuous(IntakeArm.OUT));
+ outtake1.whenReleased(new RunIntakeContinuous(IntakeArm.STOP));
+
+ outtake2 = new JoystickButton(rightJoystick,
+ Constants.OI.RIGHT_JOYSTICK_OUTTAKE_2_PORT);
+ outtake2.whenPressed(new RunIntakeContinuous(IntakeArm.OUT));
+ outtake2.whenReleased(new RunIntakeContinuous(IntakeArm.STOP));
+
+ shooterUp = new JoystickButton(rightJoystick,
+ Constants.OI.RIGHT_JOYSTICK_SHOOTER_UP_PORT);
+ shooterUp.whenPressed(new FireCatapult());
+
+ shooterDown1 = new JoystickButton(rightJoystick,
+ Constants.OI.RIGHT_JOYSTICK_SHOOTER_DOWN_1_PORT);
+ shooterDown1.whenPressed(new ResetCatapult());
+
+ shooterDown2 = new JoystickButton(rightJoystick,
+ Constants.OI.RIGHT_JOYSTICK_SHOOTER_DOWN_2_PORT);
+ shooterDown2.whenPressed(new ResetCatapult());
}
}