Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
2244 lines (2194 sloc) 84.5 KB
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package edu.wpi.first.wpilibj.templates;
import edu.wpi.first.wpilibj.Relay.Value;
import edu.wpi.first.wpilibj.networktables.NetworkTable;
import edu.wpi.first.wpilibj.Timer;
/**
*
* @author Kelly
*/
public class Autonomous
{
NetworkTable networkTable = null;
Arm arm;
DiskHandling diskHandling;
DriveTrain driveTrain;
Shooter shooter;
XboxControllers controllers;
Pneumatics pneumatics;
Timer timer;
String autonModeString;
char[] autonModeArray;
int count;
int autonMode = 0;
double leftDistance;
double rightDistance;
int subAutonMode = 0;
int shotStage = 0;
int netStage = 0;
boolean compress = true;
int autoFireCount = 0;
double maxFpS = 13.5513;
int rapidFireCounter = 0;
int rapidFireState = 0;
int lineStepCount = 0;
int counter0 = 0;
int counter5 = 0;
int counter2 = 0;
int counter6 = 0;
int counter3 = 0;
int counter7 = 0;
public Autonomous(Arm Arm, DiskHandling DiskHandling, DriveTrain drive, Shooter Shooter, XboxControllers xboxControllers, Pneumatics Pneumatics)
{
arm = Arm;
diskHandling = DiskHandling;
driveTrain = drive;
shooter = Shooter;
controllers = xboxControllers;
pneumatics = Pneumatics;
timer = new Timer();
timer.start();
count = -1;
}
public void autonInit()
{
subAutonMode = 0;
}
public void shoot3FAST()
{
if (count == 0){
shooter.tiltSetPoint = 519;
shooter.wheelSetPoint = 3700;
arm.armDown();
}
if ((count == 200)){
if (shooter.wheelError < 100){
System.out.println("Up To Speed!!!!!!!!!!!!");
}
diskHandling.hopperUp();
shooter.fire();
netStage = 1;
}
if ((count == 250)){
diskHandling.hopperDown();
shooter.reset();
netStage = 2;
}
if ((count == 350)){
diskHandling.hopperUp();
shooter.fire();
netStage = 3;
}
if ((count == 400)){
diskHandling.hopperDown();
shooter.reset();
netStage = 4;
}
if ((count == 500)){
diskHandling.hopperUp();
shooter.fire();
netStage = 5;
}
if ((count == 550)){
diskHandling.hopperDown();
shooter.reset();
count = -1;
subAutonMode ++;
netStage = 0;
}
count++;
}
public void shoot2()
{
if (count == 0){
shooter.wheelSetPoint = 3700;
arm.armDown();
}
if ((count == 200)){
if (shooter.wheelError < 100){
System.out.println("Up To Speed!!!!!!!!!!!!");
}
diskHandling.hopperUp();
shooter.fire();
netStage = 1;
}
if ((count == 250)){
diskHandling.hopperDown();
shooter.reset();
shooter.tiltSetPoint = 504;
netStage = 2;
}
if ((count == 350)){
diskHandling.hopperUp();
shooter.fire();
netStage = 3;
}
if ((count == 400)){
diskHandling.hopperDown();
shooter.reset();
count = -1;
subAutonMode++;
}
count++;
}
public void rapidFireShoot3()
{
if (count == 0){
shooter.tiltSetPoint = 525;
shooter.wheelSetPoint = 3700;
rapidFireCounter = 0;
rapidFireState = 0;
System.out.println("Rapid Fire Count == 0");
}
if (count > 0){
switch(rapidFireState){
case 0:
diskHandling.hopperUp();
shooter.fire();
rapidFireState = 1;
break;
case 1:
if ((shooter.wheelError <= 100) && (shooter.actualRPM > 2000) ){
diskHandling.hopperDown();
shooter.reset();
rapidFireState = 2;
}
break;
case 2:
diskHandling.hopperUp();
shooter.fire();
rapidFireState = 3;
break;
case 3:
if ((shooter.wheelError <= 100) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
rapidFireState = 4;
}
break;
case 4:
diskHandling.hopperUp();
shooter.fire();
rapidFireState = 5;
break;
case 5:
if ((shooter.wheelError <= 100) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
rapidFireState = 6;
}
break;
case 6:
count = -1;
subAutonMode++;
break;
default:
break;
}
}
count++;
}
public void rapidFireShoot2()
{
if (count == 0){
shooter.tiltSetPoint = 513;
shooter.wheelSetPoint = 3700;
rapidFireCounter = 0;
rapidFireState = 0;
}
if (count > 0){
switch(rapidFireState){
case 0:
diskHandling.hopperUp();
shooter.fire();
rapidFireState = 1;
break;
case 1:
if ((shooter.wheelError <= 100) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
rapidFireState = 2;
}
break;
case 2:
diskHandling.hopperUp();
shooter.fire();
rapidFireState = 3;
break;
case 3:
if (shooter.wheelError <= 100){
diskHandling.hopperDown();
shooter.reset();
rapidFireState = 4;
}
break;
case 4:
count = -1;
subAutonMode++;
break;
default:
break;
}
count++;
}
}
public void armDownMacro()
{
if (count > 350){
arm.armLoadIn();
arm.armDown();
count = -1;
subAutonMode++;
}
count++;
shooter.tiltSetPoint = 504;
}
public void armDownMacroNoTilt()
{
if (count > 200){
arm.armLoadIn();
arm.armDown();
count = -1;
subAutonMode++;
}
count++;
}
public void forwardToPyramidDisks()
{
driveTrain.shiftLow();
if ((count > 0) && (count < 36)){
driveTrain.arcadeDrive(-0.3, 0.0, false);
}
if ((count >= 36) && (count < 72)){
driveTrain.arcadeDrive(-0.4, 0.0, true);
}
if ((count >= 72) && (count < 108)){
driveTrain.arcadeDrive(-0.3, 0.0, true);
}
if ((count >= 108) && (count < 150)){
driveTrain.arcadeDrive(0.0, 0.0, true);
count = -1;
subAutonMode ++;
}
count++;
}
public void stopEverything()
{
driveTrain.leftEncoder.reset();
driveTrain.rightEncoder.reset();
shooter.shooterOff();
driveTrain.arcadeDrive(0.0, 0.0, false);
arm.armDown();
arm.rollerOff();
subAutonMode = -1;
count = -1;
}
public void update10ms()
{
if (compress){
pneumatics.compress();
}else{
pneumatics.compressor.set(Value.kOff);
}
switch(autonMode){
//SHOOT 3 ONLY!
case 0:
switch(subAutonMode){
case 0:
compress = true;
arm.armLoadIn();
arm.armDown();
arm.rollerOff();
shooter.wheelSetPoint = 3900;
subAutonMode = 1;
break;
//Shoot 3
case 1:
compress = false;
diskHandling.hopperUp();
shooter.fire();
counter0 = 20;
subAutonMode = 2;
break;
case 2:
compress = false;
if (counter0 <= 0){
subAutonMode = 3;
}
break;
case 3:
compress = false;
if ((Math.abs(shooter.wheelError ) < 60) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter0 = 10;
subAutonMode = 4;
}
break;
case 4:
compress = false;
if (counter0 <= 0){
subAutonMode = 5;
}
break;
case 5:
compress = false;
diskHandling.hopperUp();
shooter.fire();
counter0 = 20;
subAutonMode = 6;
break;
case 6:
compress = false;
if (counter0 <= 0){
subAutonMode = 7;
}
break;
case 7:
compress = false;
if ((Math.abs(shooter.wheelError ) < 60) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter0 = 10;
subAutonMode = 8;
}
break;
case 8:
compress = false;
if (counter0 <= 0){
subAutonMode = 9;
}
break;
case 9:
compress = false;
diskHandling.hopperUp();
shooter.fire();
counter0 = 20;
subAutonMode = 10;
break;
case 10:
compress = false;
if (counter0 <= 0){
subAutonMode = 11;
}
break;
case 11:
compress = false;
if ((Math.abs(shooter.wheelError ) < 60) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter0 = 10;
subAutonMode = 12;
}
break;
default:
stopEverything();
break;
}
counter0--;
break;
//SHOOT 3 & GET PYRAMID DISCS & SHOOT 2
//5 DISK EASY
case 1:
switch(subAutonMode){
case 0:
arm.armLoadIn();
arm.armDown();
arm.rollerOff();
shoot3FAST();
break;
case 1:
arm.rollerIn();
forwardToPyramidDisks();
break;
case 2:
arm.armLoadPosition();
arm.rollerIn();
subAutonMode++;
break;
case 3:
arm.rollerOff();
shooter.tiltSetPoint = 511;
armDownMacroNoTilt();
break;
case 4:
shoot2();
arm.rollerOff();
break;
default:
stopEverything();
break;
}
break;
//SHOOT 3 & GET PYRAMID DISCS & SHOOT 2 & GET MID DISCS & SHOOT 2
//7 DISK
case 2:
switch(subAutonMode){
case 0:
compress = true;
arm.armLoadIn();
arm.armDown();
arm.rollerOff();
shooter.tiltSetPoint = 538;
shooter.wheelSetPoint = 3900;
subAutonMode = 1;
break;
//Shoot 3
case 1:
compress = false;
diskHandling.hopperUp();
shooter.fire();
counter2 = 20;
subAutonMode = 2;
break;
case 2:
compress = false;
if (counter2 <= 0){
subAutonMode = 3;
}
break;
case 3:
compress = false;
if ((Math.abs(shooter.wheelError ) < 60) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter2 = 10;
subAutonMode = 4;
}
break;
case 4:
compress = false;
if (counter2 <= 0){
subAutonMode = 5;
}
break;
case 5:
compress = false;
diskHandling.hopperUp();
shooter.fire();
counter2 = 20;
subAutonMode = 6;
break;
case 6:
compress = false;
if (counter2 <= 0){
subAutonMode = 7;
}
break;
case 7:
compress = false;
if ((Math.abs(shooter.wheelError ) < 60) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter2 = 10;
subAutonMode = 8;
}
break;
case 8:
compress = false;
if (counter2 <= 0){
subAutonMode = 9;
}
break;
case 9:
compress = false;
diskHandling.hopperUp();
shooter.fire();
counter2 = 20;
subAutonMode = 10;
break;
case 10:
compress = false;
if (counter2 <= 0){
subAutonMode = 11;
}
break;
case 11:
compress = false;
if ((Math.abs(shooter.wheelError ) < 60) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter2 = 10;
subAutonMode = 12;
}
break;
//Move to pyramid disks
case 12:
compress = true;
arm.rollerIn();
if (counter2 <= 0){
subAutonMode = 13;
}
break;
case 13:
driveTrain.shiftLow();
driveTrain.arcadeDrive(-0.4, 0.0, true);
counter2 = 20;
subAutonMode = 14;
break;
case 14:
if (counter2 <= 0){
subAutonMode = 15;
}
break;
case 15:
driveTrain.shiftLow();
driveTrain.arcadeDrive(-0.5, 0.0, true);
counter2 = 20;
subAutonMode = 16;
break;
case 16:
if (counter2 <= 0){
subAutonMode = 17;
}
break;
case 17:
driveTrain.shiftLow();
driveTrain.arcadeDrive(-0.4, 0.0, true);
counter2 = 25;
subAutonMode = 18;
break;
case 18:
if (counter2 <= 0){
subAutonMode = 19;
}
break;
case 19:
driveTrain.shiftLow();
driveTrain.arcadeDrive(0.0, 0.0, true);
counter2 = 20;
subAutonMode = 20;
break;
//Pick Up Pyramid disks
case 20:
if (counter2 <= 0){
subAutonMode = 21;
}
break;
case 21:
arm.armLoadPosition();
counter2 = 200;
subAutonMode = 22;
break;
case 22:
if (counter2 <= 0){
subAutonMode = 23;
}
break;
case 23:
arm.armDown();
arm.rollerOff();
counter2 = 100;
subAutonMode = 24;
break;
case 24:
if (counter2 <= 0){
subAutonMode = 25;
}
break;
//shoot 2
case 25:
compress = false;
// shooter.tiltSetPoint = 528;
// shooter.tiltSetPoint = 537;
shooter.tiltSetPoint = 535;
subAutonMode = 26;
break;
case 26:
compress = false;
diskHandling.hopperUp();
shooter.fire();
counter2 = 20;
subAutonMode = 27;
break;
case 27:
compress = false;
if (counter2 <= 0){
subAutonMode = 28;
}
break;
case 28:
compress = false;
if ((Math.abs(shooter.wheelError ) < 100) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter2 = 10;
subAutonMode = 29;
}
break;
case 29:
compress = false;
if (counter2 <= 0){
subAutonMode = 30;
}
break;
case 30:
compress = false;
diskHandling.hopperUp();
shooter.fire();
counter2 = 20;
subAutonMode = 31;
break;
case 31:
compress = false;
if (counter2 <= 0){
subAutonMode = 32;
}
break;
case 32:
compress = false;
if ((Math.abs(shooter.wheelError ) < 100) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter2 = 10;
subAutonMode = 33;
}
break;
// move to mid disks
case 33:
compress = true;
if (counter2 <= 0){
subAutonMode = 34;
}
break;
case 34:
arm.rollerIn();
driveTrain.shiftHigh();
driveTrain.arcadeDrive(-0.6, -0.045, false);
counter2 = 55;
subAutonMode = 35;
break;
case 35:
if (counter2 <= 0){
subAutonMode = 36;
}
break;
case 36:
driveTrain.shiftHigh();
driveTrain.arcadeDrive(-0.7, -0.045, false);
counter2 = 65;
subAutonMode = 37;
break;
case 37:
if (counter2 <= 0){
subAutonMode = 38;
}
break;
case 38:
driveTrain.arcadeDrive(-0.6, -0.045, false);
counter2 = 55;
subAutonMode = 39;
break;
case 39:
if (counter2 <= 0){
subAutonMode = 40;
}
break;
case 40:
driveTrain.arcadeDrive(-0.2, -0.045, false);
counter2 = 55;
subAutonMode = 41;
break;
case 41:
if (counter2 <= 0){
subAutonMode = 42;
}
break;
case 42:
driveTrain.arcadeDrive(0.0, 0.0, false);
counter2 = 10;
subAutonMode = 43;
break;
case 43:
if (counter2 <= 0){
subAutonMode = 44;
}
break;
//Pick up Mid Disks
case 44:
arm.armLoadPosition();
counter2 = 10;
subAutonMode = 45;
break;
case 45:
if (counter2 <= 0){
subAutonMode = 49;
}
break;
case 49:
driveTrain.arcadeDrive(0.6, -0.045, false);
counter2 = 27;
subAutonMode = 50;
break;
case 50:
if (counter2 <= 0){
subAutonMode = 51;
}
break;
case 51:
driveTrain.arcadeDrive(0.7, -0.045, false);
counter2 = 32;
subAutonMode = 52;
break;
case 52:
if (counter2 <= 0){
subAutonMode = 53;
}
break;
case 53:
driveTrain.arcadeDrive(0.7, -0.045, false);
counter2 = 27;
subAutonMode = 54;
break;
case 54:
if (counter2 <= 0){
subAutonMode = 55;
}
break;
case 55:
driveTrain.arcadeDrive(0.3, -0.045, false);
shooter.tiltSetPoint = 510;
counter2 = 27;
subAutonMode = 56;
break;
case 56:
if (counter2 <= 0){
subAutonMode = 57;
}
break;
case 57:
driveTrain.arcadeDrive(0.0, 0.0, false);
counter2 = 75;
subAutonMode = 58;
break;
case 58:
if (counter2 <= 0){
arm.armDown();
arm.rollerOff();
counter2 = 80;
subAutonMode = 59;
}
break;
case 59:
if (counter2 <= 0){
subAutonMode = 60;
}
break;
//Shoot 2
case 60:
compress = false;
subAutonMode = 61;
break;
case 61:
compress = false;
diskHandling.hopperUp();
shooter.fire();
counter2 = 30;
subAutonMode = 62;
break;
case 62:
compress = false;
if (counter2 <= 0){
subAutonMode = 63;
}
break;
case 63:
compress = false;
if ((Math.abs(shooter.wheelError ) < 100) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter2 = 10;
subAutonMode = 64;
}
break;
case 64:
compress = false;
if (counter2 <= 0){
subAutonMode = 65;
}
break;
case 65:
compress = false;
diskHandling.hopperUp();
shooter.fire();
counter2 = 20;
subAutonMode = 66;
break;
case 66:
compress = false;
if (counter2 <= 0){
subAutonMode = 67;
}
break;
case 67:
compress = false;
if ((Math.abs(shooter.wheelError ) < 100) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter2 = 10;
subAutonMode = 68;
}
break;
default:
stopEverything();
break;
}
counter2--;
break;
//7 DISK NEW!!!!!!!!!!!!!
case 3:
switch(subAutonMode){
case 0:
compress = true;
arm.armLoadIn();
arm.armDown();
arm.rollerOff();
shooter.tiltSetPoint = 538;
shooter.wheelSetPoint = 3900;
subAutonMode = 1;
break;
//Shoot 3
case 1:
compress = false;
diskHandling.hopperUp();
shooter.fire();
counter3 = 20;
subAutonMode = 2;
break;
case 2:
compress = false;
if (counter3 <= 0){
subAutonMode = 3;
}
break;
case 3:
compress = false;
if ((Math.abs(shooter.wheelError ) < 60) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter3 = 10;
subAutonMode = 4;
}
break;
case 4:
compress = false;
if (counter3 <= 0){
subAutonMode = 5;
}
break;
case 5:
compress = false;
diskHandling.hopperUp();
shooter.fire();
counter3 = 20;
subAutonMode = 6;
break;
case 6:
compress = false;
if (counter3 <= 0){
subAutonMode = 7;
}
break;
case 7:
compress = false;
if ((Math.abs(shooter.wheelError ) < 60) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter3 = 10;
subAutonMode = 8;
}
break;
case 8:
compress = false;
if (counter3 <= 0){
subAutonMode = 9;
}
break;
case 9:
compress = false;
diskHandling.hopperUp();
shooter.fire();
counter3 = 20;
subAutonMode = 10;
break;
case 10:
compress = false;
if (counter3 <= 0){
subAutonMode = 11;
}
break;
case 11:
compress = false;
if ((Math.abs(shooter.wheelError ) < 60) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter3 = 10;
subAutonMode = 12;
}
break;
//Move to pyramid disks
case 12:
compress = true;
arm.rollerIn();
if (counter3 <= 0){
subAutonMode = 13;
}
break;
case 13:
driveTrain.leftSetPoint_rate = 25;
driveTrain.rightSetPoint_rate = 25;
driveTrain.leftEncoder.reset();
driveTrain.rightEncoder.reset();
arm.rollerIn();
counter3 = 22;
subAutonMode = 14;
break;
case 14:
if (counter3 <= 0){
subAutonMode = 15;
counter3 = 23;
}
if ((counter3 <= 22) && (counter3 > 0)){
driveTrain.leftSetPoint_rate += 2;
driveTrain.rightSetPoint_rate += 2;
}
break;
case 15:
if (counter3 <= 0){
subAutonMode = 16;
}
break;
case 16:
if (counter3 <= 0){
subAutonMode = 17;
counter3 = 23;
}
if ((counter3 <= 22) && (counter3 > 0)){
driveTrain.leftSetPoint_rate -= 2;
driveTrain.rightSetPoint_rate -= 2;
}
break;
case 17:
if (counter3 <= 0){
driveTrain.leftSetPoint_rate = 0;
driveTrain.rightSetPoint_rate = 0;
counter3 = 22;
subAutonMode = 20;
}
break;
case 20:
if (counter3 <= 0){
subAutonMode = 21;
}
break;
case 21:
arm.armLoadPosition();
counter3 = 200;
subAutonMode = 22;
break;
case 22:
if (counter3 <= 0){
subAutonMode = 23;
}
break;
case 23:
arm.armDown();
arm.rollerOff();
counter3 = 100;
subAutonMode = 24;
break;
case 24:
if (counter3 <= 0){
subAutonMode = 25;
}
break;
//shoot 2
case 25:
shooter.tiltSetPoint = 535;
subAutonMode = 26;
break;
case 26:
compress = false;
diskHandling.hopperUp();
shooter.fire();
counter3 = 20;
subAutonMode = 27;
break;
case 27:
compress = false;
if (counter3 <= 0){
subAutonMode = 28;
}
break;
case 28:
compress = false;
if ((Math.abs(shooter.wheelError ) < 100) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter3 = 10;
subAutonMode = 29;
}
break;
case 29:
compress = false;
if (counter3 <= 0){
subAutonMode = 30;
}
break;
case 30:
compress = false;
diskHandling.hopperUp();
shooter.fire();
counter3 = 20;
subAutonMode = 31;
break;
case 31:
compress = false;
if (counter3 <= 0){
subAutonMode = 32;
}
break;
case 32:
compress = false;
if ((Math.abs(shooter.wheelError ) < 100) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter3 = 10;
subAutonMode = 33;
}
break;
// move to mid disks
case 33:
compress = true;
if (counter3 <= 0){
subAutonMode = 34;
}
break;
case 34:
driveTrain.leftSetPoint_rate = 50;
driveTrain.rightSetPoint_rate = 50;
driveTrain.leftEncoder.reset();
driveTrain.rightEncoder.reset();
counter3 = 44;
subAutonMode = 35;
break;
case 35:
if (counter3 <= 0){
subAutonMode = 36;
counter3 = 45;
}
if ((counter3 <= 44) && (counter3 > 0)){
driveTrain.leftSetPoint_rate += 2;
driveTrain.rightSetPoint_rate += 2;
}
break;
case 36:
if (counter3 <= 0){
subAutonMode = 37;
}
break;
case 37:
if (counter3 <= 0){
subAutonMode = 38;
counter3 = 45;
}
if ((counter3 <= 44) && (counter3 > 0)){
driveTrain.leftSetPoint_rate -= 2;
driveTrain.rightSetPoint_rate -= 2;
}
break;
case 38:
if (counter3 <= 0){
driveTrain.leftSetPoint_rate = 0;
driveTrain.rightSetPoint_rate = 0;
counter3 = 44;
subAutonMode = 39;
}
break;
case 39:
if (counter3 <= 0){
subAutonMode = 46;
}
break;
//Pick up Mid Disks
case 46:
arm.armDown();
arm.rollerOff();
counter3 = 75;
subAutonMode = 47;
break;
case 47:
if (counter3 <= 0){
subAutonMode = 48;
}
break;
//Go Back to Pyramid
case 48:
arm.armLoadPosition();
// counter3 = 200;
counter3 = 10;
subAutonMode = 49;
break;
case 49:
if (counter3 <= 0){
subAutonMode = 50;
}
break;
case 50:
driveTrain.leftSetPoint_rate = -50;
driveTrain.rightSetPoint_rate = -50;
driveTrain.leftEncoder.reset();
driveTrain.rightEncoder.reset();
counter3 = 15;
subAutonMode = 51;
break;
case 51:
if (counter3 <= 0){
subAutonMode = 52;
counter3 = 16;
}
if ((counter3 <= 15) && (counter3 > 0)){
driveTrain.leftSetPoint_rate -= 2;
driveTrain.rightSetPoint_rate -= 2;
}
break;
case 52:
if (counter3 <= 0){
subAutonMode = 53;
}
break;
case 53:
if (counter3 <= 0){
subAutonMode = 54;
counter3 = 16;
}
if ((counter3 <= 15) && (counter3 > 0)){
driveTrain.leftSetPoint_rate += 2;
driveTrain.rightSetPoint_rate += 2;
}
break;
case 54:
if (counter3 <= 0){
driveTrain.leftSetPoint_rate = 0;
driveTrain.rightSetPoint_rate = 0;
counter3 = 15;
subAutonMode = 58;
}
break;
case 58:
if (counter3 <= 0){
arm.armDown();
arm.rollerOff();
counter3 = 80;
subAutonMode = 59;
}
break;
case 59:
if (counter3 <= 0){
subAutonMode = 60;
}
break;
default:
stopEverything();
break;
}
driveTrain.autonRatePID();
counter3--;
break;
//Other 5 disk
case 4:
switch(subAutonMode){
case 0:
arm.armLoadIn();
arm.armDown();
arm.rollerOff();
rapidFireShoot3();
break;
case 1:
arm.rollerIn();
forwardToPyramidDisks();
break;
case 2:
arm.armLoadPosition();
arm.rollerOff();
subAutonMode++;
break;
case 3:
arm.rollerOff();
shooter.tiltSetPoint = 495;
armDownMacroNoTilt();
break;
case 4:
rapidFireShoot2();
arm.rollerOff();
break;
default:
stopEverything();
break;
}
break;
case 5:
switch(subAutonMode){
case 0:
// set up, init
arm.armLoadIn();
arm.armDown();
arm.rollerOff();
shooter.tiltSetPoint = 508;
shooter.wheelSetPoint = 3700;
subAutonMode = 10;
break;
// move back from pyramid
case 10:
driveTrain.leftSetPoint_rate = -150;
driveTrain.rightSetPoint_rate = -150;
counter5 = 100;
subAutonMode = 11;
break;
case 11:
if (counter5 <= 0){
driveTrain.leftSetPoint_rate = 0;
driveTrain.rightSetPoint_rate = 0;
counter5 = 20;
subAutonMode = 12;
}
break;
case 12:
if (counter5 <= 0) {
subAutonMode = 20;
}
break;
// turn CCW 90-ish deg
case 20:
driveTrain.leftSetPoint_rate = -150;
driveTrain.rightSetPoint_rate = 150;
counter5 = 80;
subAutonMode = 21;
break;
case 21:
if (counter5 <= 0){
driveTrain.leftSetPoint_rate = 0;
driveTrain.rightSetPoint_rate = 0;
counter5 = 20;
subAutonMode = 22;
}
break;
case 22:
if (counter5 <= 0) {
subAutonMode = 30;
}
break;
// move forward to the Center Line
case 30:
arm.rollerIn();
driveTrain.leftSetPoint_rate = 150;
driveTrain.rightSetPoint_rate = 150;
counter5 = 200;
subAutonMode = 31;
break;
case 31:
if (counter5 <= 0){
driveTrain.leftSetPoint_rate = 0;
driveTrain.rightSetPoint_rate = 0;
subAutonMode = 32;
}
break;
case 32:
if (counter5 <= 0) {
subAutonMode = 33;
}
break;
case 33:
arm.armLoadPosition();
arm.rollerIn();
subAutonMode = 34;
break;
case 34:
arm.rollerOff();
armDownMacroNoTilt();
subAutonMode = 50;
break;
// go back to shoot location
case 50:
driveTrain.leftSetPoint_rate = -150;
driveTrain.rightSetPoint_rate = -150;
counter5 = 200;
subAutonMode = 51;
break;
case 51:
if (counter5 <= 0){
driveTrain.leftSetPoint_rate = 0;
driveTrain.rightSetPoint_rate = 0;
subAutonMode = 52;
}
break;
case 52:
if (counter5 <= 0) {
subAutonMode = 60;
}
break;
case 60:
driveTrain.leftSetPoint_rate = 150;
driveTrain.rightSetPoint_rate = -150;
counter5 = 77;
subAutonMode = 61;
break;
case 61:
if (counter5 <= 0){
driveTrain.leftSetPoint_rate = 0;
driveTrain.rightSetPoint_rate = 0;
counter5 = 20;
subAutonMode = 62;
}
break;
case 62:
if (counter5 <= 0) {
subAutonMode = 70;
}
break;
case 70:
shoot2();
subAutonMode = 80;
break;
default:
break;
}
counter5--;
driveTrain.autonRatePID();
break;
//5 DISK HARD LEFT SIDE!!!!!!!!!!!!!!!!!!!!!!
case 6:
switch(subAutonMode){
case 0:
// set up, init
arm.armLoadIn();
arm.armDown();
arm.rollerOff();
shooter.tiltSetPoint = 511;
shooter.wheelSetPoint = 3900;
subAutonMode = 1;
break;
case 1:
diskHandling.hopperUp();
shooter.fire();
counter6 = 20;
subAutonMode = 2;
break;
case 2:
if (counter6 <= 0){
subAutonMode = 3;
}
break;
case 3:
if ((Math.abs(shooter.wheelError ) < 100) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter6 = 10;
subAutonMode = 4;
}
break;
case 4:
if (counter6 <= 0){
subAutonMode = 5;
}
break;
case 5:
diskHandling.hopperUp();
shooter.fire();
counter6 = 20;
subAutonMode = 6;
break;
case 6:
if (counter6 <= 0){
subAutonMode = 7;
}
break;
case 7:
if ((Math.abs(shooter.wheelError ) < 100) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter6 = 10;
subAutonMode = 8;
}
break;
case 8:
if (counter6 <= 0){
subAutonMode = 9;
}
break;
case 9:
diskHandling.hopperUp();
shooter.fire();
counter6 = 20;
subAutonMode = 10;
break;
case 10:
if (counter6 <= 0){
subAutonMode = 11;
}
break;
case 11:
if ((Math.abs(shooter.wheelError ) < 100) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter6 = 10;
subAutonMode = 12;
}
break;
// // move back from pyramid
// case 12:
// driveTrain.leftSetPoint_rate = -150;
// driveTrain.rightSetPoint_rate = -150;
// counter6 = 100;
// subAutonMode = 13;
// break;
// case 13:
// if (counter6 <= 0){
// driveTrain.leftSetPoint_rate = 0;
// driveTrain.rightSetPoint_rate = 0;
// counter6 = 20;
// subAutonMode = 14;
// }
// break;
// case 14:
// if (counter6 <= 0) {
// subAutonMode = 20;
// }
// break;
// // turn CCW 90-ish deg
// case 20:
// driveTrain.leftSetPoint_rate = 150;
// driveTrain.rightSetPoint_rate = -150;
// counter6 = 80;
// subAutonMode = 21;
// break;
// case 21:
// if (counter6 <= 0){
// driveTrain.leftSetPoint_rate = 0;
// driveTrain.rightSetPoint_rate = 0;
// counter6 = 20;
// subAutonMode = 22;
// }
// break;
// case 22:
// if (counter6 <= 0) {
// subAutonMode = 30;
// }
// break;
//
// // move forward to the Center Line
// case 30:
// arm.rollerIn();
// driveTrain.leftSetPoint_rate = 150;
// driveTrain.rightSetPoint_rate = 150;
// counter6 = 200;
// subAutonMode = 31;
// break;
// case 31:
// if (counter6 <= 0){
// driveTrain.leftSetPoint_rate = 0;
// driveTrain.rightSetPoint_rate = 0;
// subAutonMode = 32;
// }
// break;
// case 32:
// if (counter6 <= 0) {
// subAutonMode = 33;
// }
// break;
//
// case 33:
// arm.armLoadPosition();
// arm.rollerIn();
// subAutonMode = 34;
// break;
//
// case 34:
// arm.rollerOff();
// armDownMacroNoTilt();
// subAutonMode = 50;
// break;
//
//
// // go back to shoot location
// case 50:
// driveTrain.leftSetPoint_rate = -150;
// driveTrain.rightSetPoint_rate = -150;
// counter6 = 200;
// subAutonMode = 51;
// break;
// case 51:
// if (counter6 <= 0){
// driveTrain.leftSetPoint_rate = 0;
// driveTrain.rightSetPoint_rate = 0;
// subAutonMode = 52;
// }
// break;
// case 52:
// if (counter6 <= 0) {
// subAutonMode = 60;
// }
// break;
//
// case 60:
// driveTrain.leftSetPoint_rate = 150;
// driveTrain.rightSetPoint_rate = -150;
// counter6 = 77;
// subAutonMode = 61;
// break;
// case 61:
// if (counter6 <= 0){
// driveTrain.leftSetPoint_rate = 0;
// driveTrain.rightSetPoint_rate = 0;
// counter6 = 20;
// subAutonMode = 62;
// }
// break;
// case 62:
// if (counter6 <= 0) {
// subAutonMode = 70;
// }
// break;
//
// case 70:
// shoot2(2000, 3);
// subAutonMode = 80;
// break;
//
default:
break;
}
counter6--;
driveTrain.autonRatePID();
break;
//7 disk shoot 1 ,shoot 4, shoot 2
case 7:
switch(subAutonMode){
case 0:
compress = true;
arm.armLoadIn();
arm.armDown();
arm.rollerOff();
// shooter.tiltSetPoint = 508;
// shooter.tiltSetPoint = 530;
// shooter.tiltSetPoint = 540;
shooter.tiltSetPoint = 538;
shooter.wheelSetPoint = 3900;
// shooter.wheelSetPoint = 3900;
subAutonMode = 1;
break;
//Shoot 1
case 1:
compress = false;
diskHandling.hopperUp();
shooter.fire();
counter7 = 20;
subAutonMode = 2;
break;
case 2:
compress = false;
if (counter7 <= 0){
subAutonMode = 3;
}
break;
case 3:
compress = false;
if ((Math.abs(shooter.wheelError ) < 60) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter7 = 10;
subAutonMode = 12;
}
break;
// case 4:
// compress = false;
// if (counter7 <= 0){
// subAutonMode = 5;
// }
// break;
// case 5:
// compress = false;
// diskHandling.hopperUp();
// shooter.fire();
// counter7 = 20;
// subAutonMode = 6;
// break;
// case 6:
// compress = false;
// if (counter7 <= 0){
// subAutonMode = 7;
// }
// break;
// case 7:
// compress = false;
// if ((Math.abs(shooter.wheelError ) < 60) && (shooter.actualRPM > 2000)){
// diskHandling.hopperDown();
// shooter.reset();
// counter7 = 10;
// subAutonMode = 8;
// }
// break;
// case 8:
// compress = false;
// if (counter7 <= 0){
// subAutonMode = 9;
// }
// break;
// case 9:
// compress = false;
// diskHandling.hopperUp();
// shooter.fire();
// counter7 = 20;
// subAutonMode = 10;
// break;
// case 10:
// compress = false;
// if (counter7 <= 0){
// subAutonMode = 11;
// }
// break;
// case 11:
// compress = false;
// if ((Math.abs(shooter.wheelError ) < 60) && (shooter.actualRPM > 2000)){
// diskHandling.hopperDown();
// shooter.reset();
// counter7 = 10;
// subAutonMode = 12;
// }
// break;
//Move to pyramid disks
case 12:
compress = true;
arm.rollerIn();
if (counter7 <= 0){
subAutonMode = 13;
}
break;
case 13:
driveTrain.shiftLow();
driveTrain.arcadeDrive(-0.4, 0.0, true);
shooter.tiltSetPoint = 510;
// driveTrain.leftSetPoint_rate = 70;
// driveTrain.rightSetPoint_rate = 70;
counter7 = 20;
subAutonMode = 14;
break;
case 14:
if (counter7 <= 0){
subAutonMode = 15;
// subAutonMode = 21;
}
break;
case 15:
driveTrain.shiftLow();
driveTrain.arcadeDrive(-0.5, 0.0, true);
counter7 = 20;
subAutonMode = 16;
break;
case 16:
if (counter7 <= 0){
subAutonMode = 17;
}
break;
case 17:
driveTrain.shiftLow();
driveTrain.arcadeDrive(-0.4, 0.0, true);
counter7 = 25;
subAutonMode = 18;
break;
case 18:
if (counter7 <= 0){
subAutonMode = 19;
}
break;
case 19:
driveTrain.shiftLow();
driveTrain.arcadeDrive(0.0, 0.0, true);
counter7 = 20;
subAutonMode = 20;
break;
//Pick Up Pyramid disks
case 20:
if (counter7 <= 0){
subAutonMode = 21;
}
break;
case 21:
arm.armLoadPosition();
counter7 = 200;
subAutonMode = 22;
break;
case 22:
if (counter7 <= 0){
subAutonMode = 23;
}
break;
case 23:
arm.armDown();
arm.rollerOff();
counter7 = 100;
subAutonMode = 24;
break;
case 24:
if (counter7 <= 0){
subAutonMode = 33;
}
break;
//shoot 2
// case 25:
// compress = false;
//// shooter.tiltSetPoint = 528;
//// shooter.tiltSetPoint = 537;
// shooter.tiltSetPoint = 535;
// subAutonMode = 26;
// break;
// case 26:
// compress = false;
// diskHandling.hopperUp();
// shooter.fire();
// counter7 = 20;
// subAutonMode = 27;
// break;
// case 27:
// compress = false;
// if (counter7 <= 0){
// subAutonMode = 28;
// }
// break;
// case 28:
// compress = false;
// if ((Math.abs(shooter.wheelError ) < 100) && (shooter.actualRPM > 2000)){
// diskHandling.hopperDown();
// shooter.reset();
// counter7 = 10;
// subAutonMode = 29;
// }
// break;
// case 29:
// compress = false;
// if (counter7 <= 0){
// subAutonMode = 30;
// }
// break;
// case 30:
// compress = false;
// diskHandling.hopperUp();
// shooter.fire();
// counter7 = 20;
// subAutonMode = 31;
// break;
// case 31:
// compress = false;
// if (counter7 <= 0){
// subAutonMode = 32;
// }
// break;
// case 32:
// compress = false;
// if ((Math.abs(shooter.wheelError ) < 100) && (shooter.actualRPM > 2000)){
// diskHandling.hopperDown();
// shooter.reset();
// counter7 = 10;
// subAutonMode = 33;
// }
// break;
// move to front pyramid
case 33:
compress = true;
if (counter7 <= 0){
subAutonMode = 34;
}
break;
case 34:
arm.rollerIn();
driveTrain.shiftHigh();
driveTrain.arcadeDrive(-0.6, -0.045, false);
counter7 = 27;
subAutonMode = 35;
break;
case 35:
if (counter7 <= 0){
subAutonMode = 36;
// subAutonMode = 42;
}
break;
case 36:
driveTrain.shiftHigh();
driveTrain.arcadeDrive(-0.7, -0.045, false);
counter7 = 32;
// counter7 = 40;
subAutonMode = 37;
break;
case 37:
if (counter7 <= 0){
subAutonMode = 38;
}
break;
case 38:
driveTrain.arcadeDrive(-0.6, -0.045, false);
counter7 = 27;
subAutonMode = 39;
break;
case 39:
if (counter7 <= 0){
subAutonMode = 40;
}
break;
case 40:
driveTrain.arcadeDrive(-0.2, -0.045, false);
counter7 = 32;
subAutonMode = 41;
break;
case 41:
if (counter7 <= 0){
subAutonMode = 42;
}
break;
case 42:
driveTrain.arcadeDrive(0.0, 0.0, false);
counter7 = 10;
subAutonMode = 43;
break;
case 43:
if (counter7 <= 0){
subAutonMode = 44;
}
break;
// SHOOT 4
case 44:
compress = false;
// shooter.tiltSetPoint = 484;
shooter.tiltSetPoint = 510;
subAutonMode = 45;
break;
case 45:
compress = false;
diskHandling.hopperUp();
shooter.fire();
counter7 = 30;
subAutonMode = 46;
break;
case 46:
compress = false;
if (counter7 <= 0){
subAutonMode = 47;
}
break;
case 47:
compress = false;
if ((Math.abs(shooter.wheelError ) < 100) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter7 = 10;
subAutonMode = 48;
}
break;
case 48:
compress = false;
if (counter7 <= 0){
subAutonMode = 49;
}
break;
case 49:
compress = false;
diskHandling.hopperUp();
shooter.fire();
counter7 = 20;
subAutonMode = 50;
break;
case 50:
compress = false;
if (counter7 <= 0){
subAutonMode = 51;
}
break;
case 51:
compress = false;
if ((Math.abs(shooter.wheelError ) < 100) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter7 = 10;
subAutonMode = 52;
}
break;
case 52:
compress = false;
// shooter.tiltSetPoint = 484;
// shooter.tiltSetPoint = 510;
subAutonMode = 53;
break;
case 53:
compress = false;
diskHandling.hopperUp();
shooter.fire();
counter7 = 30;
subAutonMode = 54;
break;
case 54:
compress = false;
if (counter7 <= 0){
subAutonMode = 55;
}
break;
case 55:
compress = false;
if ((Math.abs(shooter.wheelError ) < 100) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter7 = 10;
subAutonMode = 56;
}
break;
case 56:
compress = false;
if (counter7 <= 0){
subAutonMode = 57;
}
break;
case 57:
compress = false;
diskHandling.hopperUp();
shooter.fire();
counter7 = 20;
subAutonMode = 58;
break;
case 58:
compress = false;
if (counter7 <= 0){
subAutonMode = 59;
}
break;
case 59:
compress = false;
if ((Math.abs(shooter.wheelError ) < 100) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter7 = 10;
subAutonMode = 60;
}
break;
case 60:
compress = true;
if (counter7 <= 0){
subAutonMode = 61;
}
break;
// move to mid disks
case 61:
arm.rollerIn();
driveTrain.shiftHigh();
driveTrain.arcadeDrive(-0.6, -0.045, false);
counter7 = 27;
subAutonMode = 62;
break;
case 62:
if (counter7 <= 0){
subAutonMode = 63;
// subAutonMode = 42;
}
break;
case 63:
driveTrain.shiftHigh();
driveTrain.arcadeDrive(-0.7, -0.045, false);
counter7 = 32;
// counter7 = 40;
subAutonMode = 64;
break;
case 64:
if (counter7 <= 0){
subAutonMode = 65;
}
break;
case 65:
driveTrain.arcadeDrive(-0.6, -0.045, false);
counter7 = 27;
subAutonMode = 66;
break;
case 66:
if (counter7 <= 0){
subAutonMode = 67;
}
break;
case 67:
driveTrain.arcadeDrive(-0.2, -0.045, false);
counter7 = 32;
subAutonMode = 68;
break;
case 68:
if (counter7 <= 0){
subAutonMode = 69;
}
break;
case 69:
driveTrain.arcadeDrive(0.0, 0.0, false);
counter7 = 10;
subAutonMode = 70;
break;
case 70:
if (counter7 <= 0){
subAutonMode = 71;
}
break;
//Pick up Mid Disks
case 71:
arm.armLoadPosition();
// counter7 = 200;
counter7 = 10;
subAutonMode = 72;
break;
case 72:
if (counter7 <= 0){
subAutonMode = 73;
}
break;
case 73:
arm.armDown();
arm.rollerOff();
counter7 = 75;
subAutonMode = 74;
break;
case 74:
if (counter7 <= 0){
subAutonMode = 75;
}
break;
//Go Back to Pyramid
// case 48:
// if (counter7 <= 0){
// subAutonMode = 49;
// }
// break;
case 75:
// driveTrain.arcadeDrive(0.5, -0.05, false);
driveTrain.arcadeDrive(0.6, -0.045, false);
counter7 = 27;
subAutonMode = 76;
break;
case 76:
if (counter7 <= 0){
subAutonMode = 77;
}
break;
case 77:
driveTrain.arcadeDrive(0.7, -0.045, false);
counter7 = 32;
subAutonMode = 78;
break;
case 78:
if (counter7 <= 0){
subAutonMode = 79;
}
break;
case 79:
// driveTrain.arcadeDrive(0.5, -0.05, false);
driveTrain.arcadeDrive(0.7, -0.045, false);
counter7 = 27;
subAutonMode = 80;
break;
case 80:
if (counter7 <= 0){
subAutonMode = 81;
}
break;
case 81:
driveTrain.arcadeDrive(0.3, -0.045, false);
counter7 = 27;
subAutonMode = 82;
break;
case 82:
if (counter7 <= 0){
subAutonMode = 83;
}
break;
case 83:
driveTrain.arcadeDrive(0.0, 0.0, false);
counter7 = 75;
// counter7 = 50;
subAutonMode = 84;
break;
case 84:
if (counter7 <= 0){
arm.armDown();
arm.rollerOff();
// shooter.tiltSetPoint = 510;
counter7 = 80;
subAutonMode = 85;
}
break;
case 85:
if (counter7 <= 0){
subAutonMode = 86;
}
break;
//Shoot 2
case 86:
compress = false;
// shooter.tiltSetPoint = 484;
// shooter.tiltSetPoint = 510;
subAutonMode = 87;
break;
case 87:
compress = false;
diskHandling.hopperUp();
shooter.fire();
counter7 = 30;
subAutonMode = 88;
break;
case 88:
compress = false;
if (counter7 <= 0){
subAutonMode = 89;
}
break;
case 89:
compress = false;
if ((Math.abs(shooter.wheelError ) < 100) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter7 = 10;
subAutonMode = 90;
}
break;
case 90:
compress = false;
if (counter7 <= 0){
subAutonMode = 91;
}
break;
case 91:
compress = false;
diskHandling.hopperUp();
shooter.fire();
counter7 = 20;
subAutonMode = 92;
break;
case 92:
compress = false;
if (counter7 <= 0){
subAutonMode = 93;
}
break;
case 93:
compress = false;
if ((Math.abs(shooter.wheelError ) < 100) && (shooter.actualRPM > 2000)){
diskHandling.hopperDown();
shooter.reset();
counter7 = 10;
subAutonMode = 94;
}
break;
default:
stopEverything();
break;
}
counter7--;
break;
default:
stopEverything();
break;
}
}
}