
package edu.stuy;

import edu.stuy.commands.ArmsNarrowCommand;
import edu.stuy.subsystems.Acquirer;
import edu.stuy.subsystems.Arms;
import edu.stuy.subsystems.Drivetrain;
import edu.stuy.subsystems.Lift;
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;

/**
 * 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 {

    public static final Drivetrain drivetrain = new Drivetrain();
    public static final Acquirer acquirer = new Acquirer();
    public static final Arms arms = new Arms();
    public static final Lift lift = new Lift();
    public static OI oi;

    Command autonomousCommand;

    /**
     * This function is run when the robot is first started up and should be
     * used for any initialization code.
     */
    public void robotInit() {
        oi = new OI();
        // instantiate the command used for the autonomous period
    }

    public void disabledPeriodic() {
        Scheduler.getInstance().run();
    }

    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();

        // Initialize subsystem states:
        new ArmsNarrowCommand().start();
    }

    /**
     * This function is called when the disabled button is hit.
     * You can use it to reset subsystems before shutting down.
     */
    public void disabledInit(){

    }

    /**
     * This function is called periodically during operator control
     */
    public void teleopPeriodic() {
        Scheduler.getInstance().run();
    }

    /**
     * This function is called periodically during test mode
     */
    public void testPeriodic() {
        LiveWindow.run();
    }
}

@@ -282,32 +282,83 @@
 ommand.Command;%0A
+import edu.wpi.first.wpilibj.command.CommandGroup;%0A
 import edu.wpi.f
@@ -440,16 +440,137 @@
 eWindow;
+%0Aimport edu.wpi.first.wpilibj.smartdashboard.SendableChooser;%0Aimport edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;
 %0A%0A/**%0A *
@@ -1214,16 +1214,50 @@
 Command;
+%0A    SendableChooser autonChooser;
 %0A%0A    /*
@@ -1449,65 +1449,193 @@
     
-// instantiate the command used for the autonomous period
+%0A        autonChooser = new SendableChooser();%0A        autonChooser.addDefault(%22Do nothing%22, new CommandGroup());%0A        SmartDashboard.putData(%22Auton setting%22, autonChooser);%0A        
 %0A   
@@ -1768,24 +1768,8 @@
     
-// schedule the 
 auto
@@ -1778,65 +1778,63 @@
 mous
- c
+C
 ommand 
-(example)%0A        if (autonomousCommand != null)
+= (Command) autonChooser.getSelected();%0A       
  aut

Add auton chooser and do nothing auton routine.