Écriture d'une fonction Void sans paramètres dans 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.

Exemple : Un exemple de programme permettant à un robot de parcourir une distance droite

La fonction suivante permettra au robot d'avancer pendant totalEnc encodeur. Il utilise la configuration V5 Clawbot.

Ce spinToPosition  La fonctionne reviendra pas tant que le mouvement n'est pas terminé. C'est ce qu'on appelle l'action « synchronisée » - déterminée par le dernier paramètre vrai.

Sans utiliser de fonction définie par l'utilisateur :

int main() {
   vexcodeInit();  

   LeftMotor.resetPosition ();
   LeftMotor.setVelocity(100,0, pour cent);
   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, pour cent) ;
   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(),
     LeftMotor .position(rev), 
     LeftMotor.position(deg)); 
     wait(1000, msec);
}

L'échantillon peut donner le résultat suivant :

secs bruts rev deg
2,06 5445 3,12 1089

Notez que votre test variera dans une très petite marge au niveau des décimales.

Avec une fonction définie par l'utilisateur :

L'exemple suivant montre comment capturer un ensemble d'opérations dans un seul appel de « fonction » réutilisable.

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, pour cent);
   LeftMotor.spinToPosition(500.0, deg, true);
   reportMotionValues();

   LeftMotor.resetPosition ();
   LeftMotor.setVelocity(-50,0, pour cent);
   LeftMotor.spinToPosition(-500.0, deg, true);
   reportMotionValues();

}

Voici la séquence du flux logique de la fonction appelante main() :

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

Last Updated: