X-Git-Url: http://challenge-bot.com/repos/?a=blobdiff_plain;f=src%2Forg%2Fusfirst%2Ffrc%2Fteam3501%2Frobot%2FOI.java;h=491b71c61946103034c9841697e420dca814a5e8;hb=2781cca0354e26f8c5a6150d6b5179d300d479e1;hp=0bf9e3a4db2b4d82807d79441f9f4c1d469336a0;hpb=cb3389ebe0d39363292bfde20bb5345bd1e34253;p=3501%2Fstronghold-2016 diff --git a/src/org/usfirst/frc/team3501/robot/OI.java b/src/org/usfirst/frc/team3501/robot/OI.java index 0bf9e3a4..491b71c6 100644 --- a/src/org/usfirst/frc/team3501/robot/OI.java +++ b/src/org/usfirst/frc/team3501/robot/OI.java @@ -1,5 +1,20 @@ 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.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 edu.wpi.first.wpilibj.DigitalInput; import edu.wpi.first.wpilibj.Joystick; import edu.wpi.first.wpilibj.buttons.Button; import edu.wpi.first.wpilibj.buttons.JoystickButton; @@ -7,21 +22,98 @@ import edu.wpi.first.wpilibj.buttons.JoystickButton; public class OI { public static Joystick leftJoystick; public static Joystick rightJoystick; - public static Button leftSilverButton; - public static Button rightSilverButton; + + // 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; + + // right joystick buttons + public static Button intakeBoulder; + public static Button shootBoulder; + + // button to change robot to the scaling mode + public static DigitalButton toggleScaling; public OI() { leftJoystick = new Joystick(Constants.OI.LEFT_STICK_PORT); rightJoystick = new Joystick(Constants.OI.RIGHT_STICK_PORT); - leftSilverButton = new JoystickButton(rightJoystick, - Constants.OI.RIGHT_STICK_LEFT_SILVER_BUTTON); - ; + passPortcullis = new DigitalButton( + new DigitalInput(Constants.OI.PASS_PORTCULLIS_PORT)); + passPortcullis.whenPressed(new PassPortcullis()); - rightSilverButton = new JoystickButton(rightJoystick, - Constants.OI.RIGHT_STICK_RIGHT_SILVER_BUTTON); - ; + 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()); + + moveToIntakeBoulder = new DigitalButton( + new DigitalInput(Constants.OI.ARCADE_INTAKEARM_LEVEL_TWO_PORT)); + 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) { + compactRobot_1.whenPressed(new CompactRobot()); + compactRobot_2.whenPressed(new CompactRobot()); + + intakeBoulder.whenPressed(new IntakeBall()); + shootBoulder.whenPressed(new Shoot()); + + } else { + // 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.SCALE_SPEED, Constants.Scaler.SECONDS_TO_SCALE)); + compactRobot_1.whenPressed(new RetractLift()); + compactRobot_2.whenPressed(new RetractLift()); + + intakeBoulder.whenReleased(new StopWinch()); + shootBoulder.whenPressed(new ExtendLift()); + } + } }