Scrittura di una funzione nulla senza parametri 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.

Esempio: Un programma di esempio per un robot che percorre una distanza in linea retta

La seguente funzione consentirà al robot di avanzare pertotalEncencoder. Utilizza la configurazione V5 Clawbot.

Questa funzionespinToPositionnon restituirà alcun valore finché il movimento non sarà completato. Questa viene chiamata azione “sincronizzata” – determinata dall’ultimo parametrovero.

Senza utilizzare una funzione definita dall'utente:

int main() {
   vexcodeInit();  

   LeftMotor.resetPosition ();
   LeftMotor.setVelocity(100.0, percent);
   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, percent);
   LeftMotor.spinToPosition(-1000.0, c, true);

   Brain.Screen.printAt(5,100, "sec rev deg" );
   Brain.Screen.printAt(5,130, "%%.2f: %8.2f %8.2f", 
     Brain.Timer.value(),
     LeftMotor.position(rev), 
     LeftMotor.position(deg)); 
     wait(1000, msec);
}

Il campione potrebbe dare il seguente risultato:

secondi grezzo giri gradi
2,06 5445 3,12 1089

Tieni presente che il tuo test varierà entro un margine molto piccolo nelle cifre decimali.

Con una funzione definita dall'utente:

L'esempio seguente mostra come acquisire un insieme di operazioni in un'unica chiamata di "funzione" riutilizzabile.

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

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

}

Il video qui sotto mostra come si sviluppa la sequenza logica a partire dalla funzione chiamante main():

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

Last Updated: