Zapisywanie funkcji Void bez parametrów w 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.

Przykład: Przykładowy program robota, który przejedzie prostą odległość

Poniższa funkcja pozwoli robotowi działać do przodu przez totalEnc koder. Wykorzystuje konfigurację V5 Clawbot.

To spinToPositionFunkcja nie zostanie zwrócona, dopóki ruch nie zostanie zakończony. Nazywa się to działaniem „zsynchronizowanym” – określanym przez ostatni parametr prawda.

Bez użycia funkcji zdefiniowanej przez użytkownika:

int main() {
   vexcodeInit();  

   LeftMotor.resetPosition ();
   LeftMotor.setVelocity(100,0, procent);
   LeftMotor.spinToPosition(500.0, stopień, prawda);


   Brain.Screen.printAt(5,30, "secs rev deg" );
   Brain.Screen.printAt(5,60, "%.2f: %8.2f %8.2f", 
     Brain.Timer.value(), 
     Pozycja lewego silnika (rev), 
     Pozycja lewego silnika (stopnie)); 
     czekaj (1000, ms);

   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(),
     LeftMotor .position(rev), 
     LeftMotor.position(deg)); 
     czekaj (1000, ms);
}

Próbka może dać następujący wynik:

s nieprzetworzone stopnie obrotów
2,06 5445 3,12 1089

Pamiętaj, że Twój test będzie się różnić w bardzo małym marginesie miejsc po przecinku.

Z funkcją zdefiniowaną przez użytkownika:

Poniższy przykład pokazuje, jak przechwycić zestaw operacji w jedno wywołanie „funkcji” wielokrotnego użytku.

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();

}

Tutaj pokazano sekwencję przepływu logicznego z funkcji wywołującej main():

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

Last Updated: