X-Git-Url: http://challenge-bot.com/repos/?a=blobdiff_plain;f=src%2Forg%2Fusfirst%2Ffrc%2Fteam3501%2Frobot%2FRobot.java;h=473ceea020e60b41df523807c6cbcccac22a0fb2;hb=e4fbab026f4a68a4a238839ae2295c56c1134434;hp=36ca70bc268a526c02d33f5531c1d8d550fcbe90;hpb=38a404b33adc222b57179884470913cb4c0a011d;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 36ca70bc..473ceea0 100644 --- a/src/org/usfirst/frc/team3501/robot/Robot.java +++ b/src/org/usfirst/frc/team3501/robot/Robot.java @@ -1,36 +1,142 @@ package org.usfirst.frc.team3501.robot; -import org.usfirst.frc.team3501.robot.Constants.DriveTrain; +import org.usfirst.frc.team3501.robot.Constants.Defense; +import org.usfirst.frc.team3501.robot.commands.shooter.ResetCatapult; +import org.usfirst.frc.team3501.robot.subsystems.DefenseArm; +import org.usfirst.frc.team3501.robot.subsystems.DriveTrain; +import org.usfirst.frc.team3501.robot.subsystems.IntakeArm; +import org.usfirst.frc.team3501.robot.subsystems.Scaler; +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 Scaler scaler; + + public static IntakeArm intakeArm; + public static DefenseArm defenseArm; + + // 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(); oi = new OI(); + + shooter = new Shooter(); + scaler = new Scaler(); + intakeArm = new IntakeArm(); + + 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("Cheval De Frise", Defense.CHEVAL_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); + + shooter = new Shooter(); + } @Override public void autonomousInit() { + Scheduler.getInstance().run(); + + // get options chosen from drop down menu + Integer chosenPosition = (Integer) positionChooser.getSelected(); + Integer chosenDefense = 0; + + if (chosenPosition == 1) + chosenDefense = (Integer) positionOneDefense.getSelected(); + else if (chosenPosition == 2) + chosenDefense = (Integer) positionTwoDefense.getSelected(); + else if (chosenPosition == 3) + chosenDefense = (Integer) positionThreeDefense.getSelected(); + else if (chosenPosition == 4) + chosenDefense = (Integer) positionFourDefense.getSelected(); + else if (chosenPosition == 5) + chosenDefense = (Integer) positionFiveDefense.getSelected(); + + System.out.println("Chosen Position: " + chosenPosition); + System.out.println("Chosen Defense: " + chosenDefense); } @Override public void autonomousPeriodic() { Scheduler.getInstance().run(); - } @Override public void teleopInit() { + Scheduler.getInstance().add(new ResetCatapult()); // Reset catapult at start + // of each match. } @Override public void teleopPeriodic() { Scheduler.getInstance().run(); - } + }