X-Git-Url: http://challenge-bot.com/repos/?a=blobdiff_plain;f=src%2Forg%2Fusfirst%2Ffrc%2Fteam3501%2Frobot%2FRobot.java;h=5bc3c0123be8ca2d5354bdfd733aae0965e5dbdd;hb=93cba28f45a25fcf798bc4c74e8cfc9ab8a15be1;hp=7678a7289cc4506c66670c42418b5292fa9a0ef5;hpb=fab544eb2395a8aa847abc1890bc635e5ba63a7c;p=3501%2Fstronghold-2016 diff --git a/src/org/usfirst/frc/team3501/robot/Robot.java b/src/org/usfirst/frc/team3501/robot/Robot.java index 7678a728..5bc3c012 100644 --- a/src/org/usfirst/frc/team3501/robot/Robot.java +++ b/src/org/usfirst/frc/team3501/robot/Robot.java @@ -1,20 +1,29 @@ package org.usfirst.frc.team3501.robot; +import org.usfirst.frc.team3501.robot.Constants.Auton; +import org.usfirst.frc.team3501.robot.Constants.Defense; +import org.usfirst.frc.team3501.robot.commands.auton.ChooseStrategy; import org.usfirst.frc.team3501.robot.commands.driving.SetLowGear; -import org.usfirst.frc.team3501.robot.commands.intakearm.MoveIntakeArm; -import org.usfirst.frc.team3501.robot.commands.shooter.ResetCatapult; import org.usfirst.frc.team3501.robot.subsystems.DriveTrain; import org.usfirst.frc.team3501.robot.subsystems.IntakeArm; import org.usfirst.frc.team3501.robot.subsystems.Shooter; import edu.wpi.first.wpilibj.IterativeRobot; import edu.wpi.first.wpilibj.command.Scheduler; +import edu.wpi.first.wpilibj.smartdashboard.SendableChooser; +import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; public class Robot extends IterativeRobot { public static OI oi; public static DriveTrain driveTrain; public static Shooter shooter; public static IntakeArm intakeArm; + // public static Photogate photogate; + + // Sendable Choosers send a drop down menu to the Smart Dashboard. + SendableChooser positionChooser; + SendableChooser positionOneDefense, positionTwoDefense, positionThreeDefense, + positionFourDefense, positionFiveDefense; @Override public void robotInit() { @@ -23,11 +32,86 @@ public class Robot extends IterativeRobot { intakeArm = new IntakeArm(); oi = new OI(); + // photogate = new Photogate(); + + initializeSendableChoosers(); + addPositionChooserOptions(); + addDefensesToAllDefenseSendableChoosers(); + sendSendableChoosersToSmartDashboard(); + } + + private void initializeSendableChoosers() { + positionChooser = new SendableChooser(); + positionOneDefense = new SendableChooser(); + positionTwoDefense = new SendableChooser(); + positionThreeDefense = new SendableChooser(); + positionFourDefense = new SendableChooser(); + positionFiveDefense = new SendableChooser(); + } + + private void addPositionChooserOptions() { + positionChooser.addDefault("None", 0); + positionChooser.addObject("Position 1", 1); + positionChooser.addObject("Position 2", 2); + positionChooser.addObject("Position 3", 3); + positionChooser.addObject("Position 4", 4); + positionChooser.addObject("Position 5", 5); + } + + private void addDefensesToAllDefenseSendableChoosers() { + addDefenseOptions(positionOneDefense); + addDefenseOptions(positionTwoDefense); + addDefenseOptions(positionThreeDefense); + addDefenseOptions(positionFourDefense); + addDefenseOptions(positionFiveDefense); + } + + private void addDefenseOptions(SendableChooser chooser) { + chooser.addDefault("Portcullis", Defense.PORTCULLIS); + chooser.addObject("Sally Port", Defense.SALLY_PORT); + chooser.addObject("Rough Terrain" + Auton.ROUGH_TERRAIN_SPEED + " " + + Auton.ROUGH_TERRAIN_TIME, Defense.ROUGH_TERRAIN); + chooser.addObject("Low Bar" + " Will probably work...", Defense.LOW_BAR); + chooser.addObject("Chival De Frise", Defense.CHIVAL_DE_FRISE); + chooser.addObject("Drawbridge", Defense.DRAWBRIDGE); + chooser.addObject("Moat" + Auton.MOAT_SPEED + " " + Auton.MOAT_TIME, + Defense.MOAT); + chooser.addObject("Rock Wall" + Auton.ROCK_WALL_SPEED + " " + + Auton.ROCK_WALL_TIME, Defense.ROCK_WALL); + } + + private void sendSendableChoosersToSmartDashboard() { + SmartDashboard.putData("PositionChooser", positionChooser); + SmartDashboard.putData("Position 1 Defense Chooser", positionOneDefense); + SmartDashboard.putData("Position 2 Defense Chooser", positionTwoDefense); + SmartDashboard.putData("Position 3 Defense Chooser", positionThreeDefense); + SmartDashboard.putData("Position 4 Defense Chooser", positionFourDefense); + SmartDashboard.putData("Position 5 Defense Chooser", positionFiveDefense); + } @Override public void autonomousInit() { - Scheduler.getInstance().run(); + // get options chosen from drop down menu + Integer chosenPosition = (Integer) positionChooser.getSelected(); + Defense chosenDefense = null; + + if (chosenPosition == 1) + chosenDefense = (Defense) positionOneDefense.getSelected(); + else if (chosenPosition == 2) + chosenDefense = (Defense) positionTwoDefense.getSelected(); + else if (chosenPosition == 3) + chosenDefense = (Defense) positionThreeDefense.getSelected(); + else if (chosenPosition == 4) + chosenDefense = (Defense) positionFourDefense.getSelected(); + else if (chosenPosition == 5) + chosenDefense = (Defense) positionFiveDefense.getSelected(); + + if (chosenPosition != 0) + Scheduler.getInstance().add( + new ChooseStrategy(chosenPosition, chosenDefense)); + + // Scheduler.getInstance().add(new TimeDrive(.6, 4)); } @Override @@ -37,13 +121,7 @@ public class Robot extends IterativeRobot { @Override public void teleopInit() { - Scheduler.getInstance().add(new SetLowGear()); // Start each match in low - // gear - Scheduler.getInstance().add(new ResetCatapult()); // Reset catapult at start - // of each match. - - Scheduler.getInstance().add(new MoveIntakeArm(Constants.IntakeArm.EXTEND)); - // Start testing with intake arm extended TODO remove this + Scheduler.getInstance().add(new SetLowGear()); } @Override