Időzítő#
Bevezetés#
A timer osztály a brain alaposztályból származik, és funkciókat biztosít az eltelt idő mérésére, lehetővé téve az időtartamok nyomon követését és az időalapú események ütemezését egy VEX EXP programon belül.
Hozzáférés#
Brain.Timer
Megjegyzések#
Brain.Timeratimerosztály egy példánya, és ugyanazt a funkcionalitást biztosítja.
Példa#
/* This constructor is required when using VS Code.
A Brain is generated automatically at the start of
VEXcode projects. */
// Create the EXP Brain
brain Brain = brain();
// Display the timer as it ticks up
while (true) {
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Time: %.2f", Brain.Timer.time());
wait(50, msec);
}
Tagfüggvények#
A timer osztály a következő tagfüggvényeket tartalmazza:
clear— Nullára állítja az időzítőt.time— Visszaadja az időzítő indítása óta eltelt időt.event— Megadott számú ezredmásodperc elteltével meghív egy függvényt, opcionális argumentumokkal.
Bármely timer tagfüggvény meghívása előtt létre kell hozni egy brain példányt, az alábbiak szerint:
// Create the EXP Brain
brain Brain = brain();
clear#
Visszaállítja az időzítő aktuális értékét nullára. Ezután az időzítő azonnal újrakezdi a nulláról való felfelé számlálást.
Available Functionsvoid clear();
Ez a függvény nem fogad el paramétereket.
Return ValuesEz a függvény nem ad vissza értéket.
Exampleswhile (true) {
// Reset the timer every time the check button is pressed
if (Brain.buttonCheck.pressing()) {
Brain.Timer.clear();
}
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Time: %.2f", Brain.Timer.value());
wait(50, msec);
}
time#
Visszaadja az időzítő aktuális értékét.
Available Functions1 — Visszaadja az eltelt időt milliszekundumban.
uint32_t time() const;
Parameters2 — Visszaadja az eltelt időt a megadott időegységben.
double time( timeUnits units ) const;
Paraméter |
Típus |
Leírás |
|---|---|---|
|
|
Az eltelt idő visszaadásához használt mértékegységek:
|
A paraméter nélküli függvény (1) egy
uint32_tértéket ad vissza, amely az eltelt időt jelöli milliszekundumban.A
timeUnitsparaméterrel (2) rendelkező függvény egydoubleértéket ad vissza, amely a megadott egységben eltelt időt jelöli.
Az időzítő a projekt indulásakor kezd el számolni.
A
clearfüggvény meghívása nullára állítja vissza az időzítő értékét.
// Display the timer as it ticks up
while (true) {
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Time: %.2f", Brain.Timer.time());
wait(50, msec);
}
event#
Visszahívó függvényt regisztrál, amely egy megadott késleltetés után végrehajtódik.
Available Functions1 — Visszahívást regisztrál, amely egy megadott késleltetés után fut, és egy felhasználó által definiált értéket átad a visszahívásnak.
static void event( void (*callback)(void*), uint32_t value );
Parameters2 — Visszahívást regisztrál, amely egy megadott késleltetés után fut.
static void event( void (*callback)(void), uint32_t value );
Paraméter |
Típus |
Leírás |
|---|---|---|
|
|
Egy függvény, amely a megadott késleltetés után meghívódik, és egy felhasználó által definiált argumentumot kap. |
|
|
Egy függvény, amely a megadott késleltetés után meghívódik. |
|
|
A visszahívó függvény végrehajtása előtti késleltetés milliszekundumban. |
Ez a függvény nem ad vissza értéket.
NotesEz a függvény egyszeri visszahívást ütemez; nem ismétlődik automatikusan.
A visszahívó függvénynek
voidértéket kell visszaadnia.Több esemény is ütemezhető egyszerre.
Definiáld a függvényt (
int main())// Create a function to turn the screen orange void turnOrange() { Brain.Screen.clearScreen(orange); }Regisztráld a függvényt a
int main()karakterláncon belülint main() { /* vexcodeInit() is only required when using VEXcode. Remove vexcodeInit() if compiling in VS Code. */ vexcodeInit(); // Call turnOrange after 2 seconds Brain.Timer.event(turnOrange, 2000); }