Advertisement
Guest User

Nothing But Net Code

a guest
Feb 8th, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.36 KB | None | 0 0
  1. //Quad Values
  2. int fireStop = 0;
  3. int loadStop = 0;
  4. int gateOpen = 0;
  5. int gateClosed = 0;
  6.  
  7. /*
  8. Catapult motor power for certain distances
  9. Short = 1/2 Court (0)
  10. Mid = 3/4 Court (1)
  11. Long = Full Court (2)
  12. */
  13. int distance = 0;
  14. int shortPower = 65;
  15. int midPower = 70;
  16. int longPower = 75;
  17.  
  18. int holdPower = -15;
  19. int loadPower = -127;
  20.  
  21. bool intakeRunning = true;
  22. bool isGate = true;
  23. int armStatus = 0;
  24. int gateStatus = 0;
  25.  
  26. /*
  27. Maintains desired arm position using Quad
  28. Three States:
  29. -Loaded (0)
  30. -Firing (1)
  31. */
  32. task armPosition(){
  33.   while(true){
  34.     if(armStatus == 1 && SensorValue[ballSonic] < 70){
  35.      
  36.       //Open gate to start loading of another ball
  37.       gateStatus = 1;
  38.       int speed;
  39.       switch(distance){
  40.         case 0:
  41.         speed = shortPower;
  42.         break;
  43.        
  44.         case 1:
  45.         speed = midPower;
  46.         break;
  47.        
  48.         case 2:
  49.         speed = longPower;
  50.         break;
  51.        
  52.         default:
  53.         speed = 0;
  54.         break;
  55.       }
  56.       //Fire currently loaded ball
  57.       while(SensorValue[armQuad] < fireStop){
  58.         if(speed == 0){
  59.           break;
  60.         }
  61.         motor[yOne] = speed;
  62.         motor[yTwo] = speed;
  63.         motor[yThree] = speed;
  64.       }
  65.       motor[yOne] = 0;
  66.       motor[yTwo] = 0;
  67.       motor[yThree] = 0;
  68.      
  69.       //Bring arm back down
  70.       while(SensorValue[armQuad] > loadStop){
  71.         motor[yOne] = loadPower;
  72.         motor[yTwo] = loadPower;
  73.         motor[yThree] = loadPower;
  74.       }
  75.       motor[yOne] = holdPower;
  76.       motor[yTwo] = holdPower;
  77.       motor[yThree] = holdPower;
  78.      
  79.       //Set arm to LOADED state
  80.       armStatus = 0;
  81.     }
  82.   }
  83. }
  84.  
  85. /*
  86. Maintains desired gate position using Quad
  87. Three States:
  88. -Closed (0)
  89. -Open (1)
  90. */
  91. task gatePosition(){
  92.   while(true){
  93.     int lastStatus = gateStatus;
  94.     if(intakeRunning){
  95.       motor[intake] = 127;
  96.     }else{
  97.       motor[intake] = 0;
  98.     }
  99.    
  100.     if(SensorValue[ballSonic] < 70 && armStatus = 0){
  101.       ballSeen = true;
  102.       gateStatus = 0;
  103.     }
  104.    
  105.     if(lastStatus != gateStatus){
  106.       if(gateStatus == 1){
  107.         while(SensorValue[gateQuad] > gateOpen){
  108.           motor[gate] = 127;
  109.         }
  110.         motor[gate] = -127;
  111.         wait1Msec(2);
  112.         motor[gate] = 0;
  113.       }
  114.      
  115.       if(gateStatus == 0){
  116.         intakeRunning = false;
  117.         while(SensorValue[gateQuad] < gateClosed){
  118.           motor[gate] = -127;
  119.         }
  120.         motor[gate] = 127;
  121.         wait1Msec(2);
  122.         motor[gate] = 0;
  123.       }
  124.     }
  125.   }
  126. }
  127.  
  128. //Monitors how many balls are in the bot (will shut off intake after seeing 4 balls)
  129. task ballCounter(){
  130.  
  131. }
  132.  
  133. task autonomous(){
  134.  
  135. }
  136.  
  137. task usercontrol(){
  138.  
  139.   /*
  140.   ***** MOVE THESE INTIALIZATIONS TO BEGINNING OF AUTONOMOUS WHEN READY *****
  141.   */
  142.   gateStatus = 0;
  143.   armStatus = 0;
  144.   SensorValue[armQuad] = 0;
  145.   SensorValue[gateQuad] = 0;
  146.   startTask(armPosition);
  147.   startTask(gatePosition);
  148.   while(true){
  149.    
  150.     //Firing Controls
  151.     if(vexRT[Btn7U] == 1){
  152.       distance = 2;
  153.       armStatus = 1;
  154.     }else{
  155.       if(vexRT[Btn7L] == 1){
  156.         distance = 1;
  157.         armStatus = 1;
  158.       }else{
  159.         if(vexRT[Btn7D] == 1){
  160.           distance = 0;
  161.           armStatus = 1;
  162.         }else{
  163.           if(vexRT[Btn7R] == 1){
  164.             gateStatus = 1;
  165.           }
  166.         }
  167.       }
  168.     }
  169.   }
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement