Timer#
Introduktion#
Timerklassen timer är härledd från basklassen brain och tillhandahåller funktionalitet för att mäta förfluten tid, vilket gör att du kan spåra varaktigheter och schemalägga tidsbaserade händelser inom ett VEX V5-program.
Tillträde#
Brain.Timer
Anteckningar#
Brain.Timerär en instans av klassentimeroch erbjuder samma funktionalitet.
Exempel#
/* This constructor is required when using VS Code.
A Brain is generated automatically at the start of
VEXcode projects. */
// Create the V5 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);
}
Medlemsfunktioner#
Klassen timer innehåller följande medlemsfunktioner:
clear— Återställer timern till noll.time— Returnerar den förflutna tiden sedan timern startade.event— Anropar en funktion efter ett angivet antal millisekunder, med valfria argument.
Innan några timer medlemsfunktioner anropas måste en brain instans skapas, som visas nedan:
// Create the V5 Brain
brain Brain = brain();
clear#
Återställer timerns aktuella värde till noll. Därefter börjar timern omedelbart räkna uppåt igen från noll.
Available Functionsvoid clear();
Den här funktionen accepterar inga parametrar.
Return ValuesDen här funktionen returnerar inget värde.
Exampleswhile (true) {
// Reset the timer every time the screen is pressed
if (Brain.Screen.pressing()) {
Brain.Timer.clear();
}
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Time: %.2f", Brain.Timer.value());
wait(50, msec);
}
time#
Returnerar timerns aktuella värde.
Available Functions1 — Returnerar förfluten tid i millisekunder.
uint32_t time() const;
Parameters2 — Returnerar den förflutna tiden i de angivna tidsenheterna.
double time( timeUnits units ) const;
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Enheterna som används för att returnera förfluten tid:
|
Den parameterlösa funktionen (1) returnerar
uint32_tsom representerar den förflutna tiden i millisekunder.Funktionen med parametern
timeUnits(2) returnerardoublesom representerar den förflutna tiden i de angivna enheterna.
Timern börjar räkna när projektet startar.
Om man anropar
clearåterställs timervärdet till noll.
// 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#
Registrerar en återuppringningsfunktion som ska köras efter en angiven fördröjning.
Available Functions1 — Registrerar en återanropsfunktion som ska köras efter en angiven fördröjning och skickar ett användardefinierat värde till återanropsfunktionen.
static void event( void (*callback)(void*), uint32_t value );
Parameters2 — Registrerar ett återanrop som ska köras efter en angiven fördröjning.
static void event( void (*callback)(void), uint32_t value );
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
En funktion som anropas efter den angivna fördröjningen och tar emot ett användardefinierat argument. |
|
|
En funktion som kommer att anropas efter den angivna fördröjningen. |
|
|
Fördröjningen, i millisekunder, innan återuppringningsfunktionen körs. |
Den här funktionen returnerar inget värde.
NotesDen här funktionen schemalägger ett engångsåteruppringning; den upprepas inte automatiskt.
Återanropsfunktionen måste returnera
void.Flera evenemang kan vara schemalagda samtidigt.
Definiera funktionen (utanför
int main())// Create a function to turn the screen orange void turnOrange() { Brain.Screen.clearScreen(orange); }Registrera funktionen inuti
int main()int 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); }