// RobotBuilder Version: 0.0.2
//
// This file was generated by RobotBuilder. It contains sections of
// code that are automatically generated and assigned by robotbuilder.
// These sections will be updated in the future when you export to
// Java from RobotBuilder. Do not put any code or make any change in
// the blocks indicating autogenerated code or it will be lost on an
// update. Deleting the comments indicating the section will prevent
// it from being updated in th future.
package org.usfirst.frc3824.PromoChassis;
import org.usfirst.frc3824.PromoChassis.subsystems.ShooterAngleAdjust;
import org.usfirst.frc3824.PromoChassis.subsystems.Shooter;
import org.usfirst.frc3824.PromoChassis.subsystems.Drivetrain;
import org.usfirst.frc3824.PromoChassis.subsystems.Pump;
import org.usfirst.frc3824.PromoChassis.commands.AutonomousCommand;
import edu.wpi.first.wpilibj.IterativeRobot;
import edu.wpi.first.wpilibj.command.Command;
import edu.wpi.first.wpilibj.command.Scheduler;
import edu.wpi.first.wpilibj.livewindow.LiveWindow;
import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;
/**
 * The VM is configured to automatically run this class, and to call the
 * functions corresponding to each mode, as described in the IterativeRobot
 * documentation. If you change the name of this class or the package after
 * creating this project, you must also update the manifest file in the resource
 * directory.
 */
public class Robot extends IterativeRobot
{
    Command autonomousCommand;
    public static OI oi;
    // BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS
    public static Drivetrain drivetrain;
    public static Shooter shooter;
    public static Pump pump;
    public static ShooterAngleAdjust shooterAngleAdjust;
    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS
    /**
     * This function is run when the robot is first started up and should be
     * used for any initialization code.
     */
    public void robotInit()
    {
        RobotMap.init();
        // BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=CONSTRUCTORS
        drivetrain = new Drivetrain();
        shooter = new Shooter();
        pump = new Pump();
        shooterAngleAdjust = new ShooterAngleAdjust();
    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=CONSTRUCTORS
        // This MUST be here. If the OI creates Commands (which it very likely
        // will), constructing it during the construction of CommandBase (from
        // which commands extend), subsystems are not guaranteed to be
        // yet. Thus, their requires() statements may grab null pointers. Bad
        // news. Don't move it.
        oi = new OI();
        // instantiate the command used for the autonomous period
        // BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=AUTONOMOUS
        autonomousCommand = new AutonomousCommand();
    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=AUTONOMOUS
    }
    public void autonomousInit()
    {
        // schedule the autonomous command (example)
        if (autonomousCommand != null)
        {
            autonomousCommand.start();
        }
    }
    /**
     * This function is called periodically during autonomous
     */
    public void autonomousPeriodic()
    {
        Scheduler.getInstance().run();
    }
    public void teleopInit()
    {
        // This makes sure that the autonomous stops running when
        // teleop starts running. If you want the autonomous to 
        // continue until interrupted by another command, remove
        // this line or comment it out.
        if (autonomousCommand != null)
        {
            autonomousCommand.cancel();
        }
    }
    /**
     * This function is called periodically during operator control
     */
    public void teleopPeriodic()
    {
        // Print out sensor information
        SmartDashboard.putNumber("Gyro", Robot.drivetrain.getGyroValue());
        Scheduler.getInstance().run();
    }
    /**
     * This function called periodically during test mode
     */
    public void testPeriodic()
    {
        LiveWindow.run();
    }
}

@@ -1095,29 +1095,187 @@
 hboard.S
-martDashboard
+endableChooser;%0D%0Aimport edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;%0D%0Aimport org.usfirst.frc3824.PromoChassis.commands.DriveAtASmallAngleTimeAndPowerDriveAtHotGoal
 ;%0D%0A/**%0D%0A
@@ -2008,24 +2008,74 @@
 CLARATIONS%0D%0A
+    %0D%0A    public static SendableChooser chooser;%0D%0A
     /**%0D%0A   
@@ -3119,24 +3119,24 @@
 Command();%0D%0A
-
     // END A
@@ -3185,24 +3185,337 @@
 AUTONOMOUS%0D%0A
+        chooser = new SendableChooser();%0D%0A        chooser.addDefault(%22Do Nothing%22, new AutonomousCommand());%0D%0A        chooser.addObject(%22Drive to small goal%22, new DriveAtASmallAngleTimeAndPowerDriveAtHotGoal());%0D%0A      // show the autonomous modes%0D%0A        SmartDashboard.putData(%22Autonomous modes:%22, chooser); %0D%0A
     %7D%0D%0A    p

Add choosable selector for autonomous commands.