Aangepaste 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:
clear— Zet de timer terug naar nul.time— Geeft de verstreken tijd terug sinds de timer is gestart.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();
clear#
Zet de timer op nul.
Available Functionsvoid clear();
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.clear();
}
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Time: %.2f", myTimer.time(msec));
wait(50, msec);
}
time#
Geeft de huidige waarde van de timer terug.
Available Functions1 — Geeft de verstreken tijd in milliseconden weer.
uint32_t time() const;
Parameters2 — Geeft de verstreken tijd weer in de opgegeven tijdseenheden.
double time( timeUnits units ) const;
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
De eenheden die worden gebruikt om de verstreken tijd weer te geven:
|
De parameterloze functie (1) retourneert een
uint32_tdie de verstreken tijd in milliseconden vertegenwoordigt.De functie met een parameter van
timeUnits(2) retourneert eendoubledie de verstreken tijd in de opgegeven eenheden vertegenwoordigt.
De timer begint te tellen zodra de aangepaste timer is aangemaakt.
Het aanroepen van
clearzet de timerwaarde terug naar nul.
// Display the timer as it ticks up
while (true) {
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Time: %.2f", myTimer.time(sec));
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); }