From 9e9154afeb74372b98fb56c9288d5513e8ba6517 Mon Sep 17 00:00:00 2001 From: Harel Dor Date: Fri, 11 Mar 2016 15:40:54 -0800 Subject: [PATCH 1/1] Revive old auton selection code --- .../usfirst/frc/team3501/robot/Constants.java | 4 + src/org/usfirst/frc/team3501/robot/Robot.java | 85 +++++++++++++++++++ 2 files changed, 89 insertions(+) diff --git a/src/org/usfirst/frc/team3501/robot/Constants.java b/src/org/usfirst/frc/team3501/robot/Constants.java index 923914bc..38899ea4 100644 --- a/src/org/usfirst/frc/team3501/robot/Constants.java +++ b/src/org/usfirst/frc/team3501/robot/Constants.java @@ -109,4 +109,8 @@ public class Constants { public static final double INTAKE_SPEED = 0.7; public static final double OUTPUT_SPEED = -0.7; } + + public enum Defense { + PORTCULLIS, SALLY_PORT, ROUGH_TERRAIN, LOW_BAR, CHIVAL_DE_FRISE, DRAWBRIDGE, MOAT, ROCK_WALL, RAMPART; + } } diff --git a/src/org/usfirst/frc/team3501/robot/Robot.java b/src/org/usfirst/frc/team3501/robot/Robot.java index 35bf8a58..be19f161 100644 --- a/src/org/usfirst/frc/team3501/robot/Robot.java +++ b/src/org/usfirst/frc/team3501/robot/Robot.java @@ -1,5 +1,7 @@ package org.usfirst.frc.team3501.robot; +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.SetHighGear; import org.usfirst.frc.team3501.robot.subsystems.DriveTrain; import org.usfirst.frc.team3501.robot.subsystems.IntakeArm; @@ -7,6 +9,8 @@ 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; @@ -14,6 +18,11 @@ public class Robot extends IterativeRobot { public static Shooter shooter; public static IntakeArm intakeArm; + // Sendable Choosers send a drop down menu to the Smart Dashboard. + SendableChooser positionChooser; + SendableChooser positionOneDefense, positionTwoDefense, positionThreeDefense, + positionFourDefense, positionFiveDefense; + @Override public void robotInit() { driveTrain = new DriveTrain(); @@ -21,10 +30,86 @@ public class Robot extends IterativeRobot { intakeArm = new IntakeArm(); oi = new OI(); + + 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("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", Defense.ROUGH_TERRAIN); + chooser.addObject("Low Bar", Defense.LOW_BAR); + chooser.addObject("Chival De Frise", Defense.CHIVAL_DE_FRISE); + chooser.addObject("Drawbridge", Defense.DRAWBRIDGE); + chooser.addObject("Moat", Defense.MOAT); + chooser.addObject("Rock Wall", Defense.ROCK_WALL); + } + + private void sendSendableChoosersToSmartDashboard() { + SmartDashboard.putData("PositionChooser", positionChooser); + SmartDashboard.putData("Position One Defense Chooser", positionOneDefense); + SmartDashboard.putData("Position Two Defense Chooser", positionTwoDefense); + SmartDashboard.putData("Position Three Defense Chooser", + positionThreeDefense); + SmartDashboard + .putData("Position Four Defense Chooser", positionFourDefense); + SmartDashboard + .putData("Position Five Defense Chooser", positionFiveDefense); + + SmartDashboard + .putData("Position Four Defense Chooser", positionFourDefense); + SmartDashboard + .putData("Position Five Defense Chooser", positionFiveDefense); + } @Override public void autonomousInit() { + // 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(); + + Scheduler.getInstance().add( + new ChooseStrategy(chosenPosition, chosenDefense)); } @Override -- 2.30.2