Een ongeldige functie schrijven zonder parameters in VEXcode Pro V5

The VEX Visual Studio Code Extension has replaced VEXcode Pro V5, which is now end-of-life.

VEXcode Blocks and VEXcode Text remain actively developed and supported for all VEX platforms.

Voorbeeld: Een voorbeeldprogramma voor een robot om een ​​rechte afstand af te leggen

Met de volgende functie kan de robot vooruit rennen voor totalEnc -encoder. Het maakt gebruik van de V5 Clawbot-configuratie.

Deze spinToPosition functie keert niet terug totdat de beweging is voltooid. Dit wordt 'gesynchroniseerde' actie genoemd – bepaald door de laatste parameter true.

Zonder een door de gebruiker gedefinieerde functie te gebruiken:

int main() {
   vexcodeInit();  

   LeftMotor.resetPosition ();
   LeftMotor.setVelocity(100,0, procent);
   LeftMotor.spinToPosition(500.0, deg, true);


   Brain.Screen.printAt(5,30, "secs rev deg" );
   Brain.Screen.printAt(5,60, "%.2f: %8.2f %8.2f", 
     Brain.Timer.value(), 
     LeftMotor.position(rev), 
     LeftMotor.position(deg)); 
     wait(1000, msec);

   LeftMotor.resetPosition ();
   LeftMotor.setVelocity(-100,0, procent);
   LeftMotor.spinToPosition(-1000.0, c, true);

   Brain.Screen.printAt(5.100, "secs rev deg" );
   Brain.Screen.printAt(5.130, "%%.2f: %8.2f %8.2f", 
     Brain.Timer.value(),
     LinksMotor .position(rev), 
     LeftMotor.position(deg)); 
     wait(1000, msec);
}

Het monster kan het volgende resultaat opleveren:

sec onbewerkte rev deg
2.06 5445 3.12 1089

Houd er rekening mee dat uw test binnen een zeer kleine marge in de decimalen zal variëren.

Met een door de gebruiker gedefinieerde functie:

In het volgende voorbeeld ziet u hoe u een reeks bewerkingen kunt vastleggen in één herbruikbare 'functie'-aanroep.

void reportMotionValues() {

  Brain.Screen.printAt(5, 60, "%.2f: %8.2f %8.2f",
    Brain.Timer.value(), 
    LeftMotor.position(rev),
    LeftMotor.position(deg)); 
}


int main() {
   vexcodeInit();  

   LeftMotor.resetPosition();
   LeftMotor.setVelocity (50.0, procent);
   LeftMotor.spinToPosition(500.0, deg, true);
   reportMotionValues();

   LeftMotor.resetPosition ();
   LeftMotor.setVelocity(-50.0, procent);
   LeftMotor.spinToPosition(-500.0, deg, true);
   reportMotionValues();

}

Hier ziet u de volgorde van de logische stroom van de aanroepfunctie main():

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: