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.
Minta: Mintaprogram egy robot számára, hogy egyenes távolságot tegyen meg
A következő függvény lehetővé teszi, hogy a robot előrefusson totalEnc kódoló. A V5 Clawbot konfigurációt használja.
Ez a spinToPosition függvény nem tér vissza, amíg az áthelyezés be nem fejeződik. Ezt „szinkronizált” műveletnek nevezik – az utolsó paraméter határozza meg: igaz.
Felhasználó által definiált függvény használata nélkül:
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, "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);
}
A minta a következő eredményt adhatja:
secs raw rev deg 2.06 5445 3.12 1089
Ne feledje, hogy a teszt egy nagyon kis tizedesjegyen belül változik.
Felhasználó által definiált funkcióval:
A következő minta bemutatja, hogyan lehet egy műveletsort egyetlen újrafelhasználható „függvény” hívásba rögzíteni.
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();
}
Itt látható a main() hívó függvény logikai folyamatának sorrendje: