@@ -0,0 +1,1173 @@
+package org.robockets.tshirtcannon.subsystems.cannon;%0A%0Aimport org.robockets.tshirtcannon.RobotMap;%0A%0Aimport edu.wpi.first.wpilibj.command.Command;%0Aimport edu.wpi.first.wpilibj.command.Subsystem;%0A%0A/**%0A *%0A */%0Apublic class PopCannon extends Command %7B%0A%0A%09Cannon cannon = RobotMap.cannonSubsystem;%0A%09double timeout;%0A%09%0A    public PopCannon(double time) %7B%0A        requires(cannon);%0A        timeout = time;%0A    %7D%0A%0A    // Called just before this Command runs the first time%0A    protected void initialize() %7B%0A    %09if(!cannon.PID) end(); // If it's unaligned, I will not pop!%0A    %09setTimeout(timeout);%0A    %7D%0A%0A    // Called repeatedly when this Command is scheduled to run%0A    protected void execute() %7B%0A    %09cannon.setValve(true);%0A    %7D%0A%0A    // Make this return true when this Command no longer needs to run execute()%0A    protected boolean isFinished() %7B%0A        return isTimedOut();%0A    %7D%0A%0A    // Called once after isFinished returns true%0A    protected void end() %7B%0A    %09cannon.setValve(false);%0A    %7D%0A%0A    // Called when another command which requires one or more of the same%0A    // subsystems is scheduled to run%0A    protected void interrupted() %7B%0A    %09cannon.setValve(false);%0A    %7D%0A%7D%0A

Add PopCannon command.