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.
Үлгі: Роботтың тура қашықтыққа өтуіне арналған бағдарлама үлгісі
Келесі функция роботқаtotalEncкодер үшін алға жұмыс істеуге мүмкіндік береді. Ол V5 Clawbot конфигурациясын пайдаланады.
БұлspinToPositionфункциясы қозғалыс аяқталғанша қайтарылмайды. Бұл «синхрондалған» әрекет деп аталады – соңғы параметрtrueарқылы анықталады.
Пайдаланушы анықтайтын функцияны пайдаланбай:
int main() {
vexcodeInit();
LeftMotor.resetPosition ();
LeftMotor.setVelocity(100,0, пайыз);
LeftMotor.spinToPosition(500,0, градус, шын);
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));
күту (1000, мсек);
LeftMotor.resetPosition ();
LeftMotor.setVelocity(-100,0, пайыз);
LeftMotor.spinToPosition(-1000,0, c, шын);
Brain.Screen.printAt(5,100, "сек. rev deg" );
Brain.Screen.printAt(5,130, "%%.2f: %8.2f %8.2f",
Brain.Timer.value(),
LeftMotor.position(rev),
LeftMotor.position(deg));
күту (1000, мсек);
}
Үлгі келесі нәтижені бере алады:
сек шикі айналдыру градус 2,06 5445 3,12 1089
Тестіңіз ондық таңбалардағы өте аз маржа ішінде өзгеретінін ескеріңіз.
Пайдаланушы анықтайтын функциямен:
Келесі үлгі бір қайта пайдалануға болатын «функция» шақыруына әрекеттер жинағын түсіру жолын көрсетеді.
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, пайыз);
LeftMotor.spinToPosition(500,0, градус, шын);
reportMotionValues();
LeftMotor.resetPosition ();
LeftMotor.setVelocity(-50,0, пайыз);
LeftMotor.spinToPosition(-500,0, градус, шын);
reportMotionValues();
}
Мұнда main() шақырушы функциясынан логикалық ағынның реттілігі көрсетілген: