Timer#
Invoering#
De timer klasse wordt gebruikt om de tijd bij te houden en te interageren met een timer die onafhankelijk is van de Brain’s timer.
Klasseconstructor#
timer();
Klasse-destructor#
Vernietigt het timer object en geeft de bijbehorende resources vrij.
~timer();
Parameters#
Deze constructor accepteert geen parameters.
Voorbeelden#
// Create a timer instance
timer myTimer = timer();
Lidfuncties#
De klasse timer bevat de volgende lidfuncties:
reset— Resets the timer to zero.value— Returns the elapsed time since the timer started.event— Roept een functie aan na een opgegeven aantal milliseconden, met optionele argumenten.
Voordat er lidfuncties van timer worden aangeroepen, moet er een instantie van timer worden aangemaakt, zoals hieronder weergegeven:
/* This constructor is required to use a
custom timer. Replace the values
as needed. */
// Create a timer instance
timer myTimer = timer();
/* This constructor is required when using VS Code.
A Brain is generated automatically at the start of
VEXcode projects. */
// Create the Brain to use Brain.Timer
brain Brain = brain();
reset#
Zet de timer op nul.
Available Functionsvoid reset();
Deze functie accepteert geen parameters.
Return ValuesDeze functie retourneert geen waarde.
Exampleswhile (true) {
// Clear the timer every time the screen is pressed
if (Brain.Screen.pressing()) {
myTimer.reset();
}
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Time: %.2f", myTimer.value());
wait(50, msec);
}
value#
Geeft de huidige waarde van de timer terug.
Available Functionsdouble value();
Deze functie accepteert geen parameters.
Return ValuesEen double die de verstreken tijd in seconden weergeeft.
NotesDe timer begint te tellen zodra de timer is geconstrueerd.
Calling
resetresets the timer value to zero.
// Display the timer as it ticks up
while (true) {
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Time: %.2f", myTimer.value());
wait(50, msec);
}
event#
Registreert een callbackfunctie die na een bepaalde vertraging moet worden uitgevoerd.
Available Functions1 — Registreert een callback die na een bepaalde vertraging wordt uitgevoerd en geeft een door de gebruiker gedefinieerde waarde door aan de callback.
static void event( void (*callback)(void *), uint32_t value );
Parameters2 — Registreert een callback die na een bepaalde vertraging wordt uitgevoerd.
static void event( void (*callback)(void), uint32_t value );
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
Een functie die na de opgegeven vertraging wordt aangeroepen en een door de gebruiker gedefinieerd argument ontvangt. |
|
|
Een functie die na de opgegeven vertraging wordt aangeroepen. |
|
|
De vertraging, in milliseconden, voordat de callbackfunctie wordt uitgevoerd. |
Deze functie retourneert geen waarde.
NotesDeze functie plant een eenmalige callback in; deze wordt niet automatisch herhaald.
De callbackfunctie moet
voidretourneren.Er kunnen meerdere evenementen tegelijkertijd worden ingepland.
Definieer de functie (buiten
int main())// Create a function to turn the screen orange void turnOrange() { Brain.Screen.clearScreen(orange); }Registreer de functie binnen
int main()int main() { /* vexcodeInit() is only required when using VEXcode. Remove vexcodeInit() if compiling in VS Code. */ vexcodeInit(); timer myTimer = timer(); // Call turnOrange after 2 seconds myTimer.event(turnOrange, 2000); }