Benutzerdefinierter Timer#
Einführung#
Die Klasse timer wird verwendet, um die Zeit zu messen und mit einem Timer zu interagieren, der unabhängig vom Timer des Gehirns ist.
Klassenkonstruktor#
timer();
Klassendestruktor#
Destroys the timer object and releases associated resources.
~timer();
Parameter#
Dieser Konstruktor akzeptiert keine Parameter.
Beispiele#
// Create a timer instance
timer myTimer = timer();
Mitgliedsfunktionen#
Die Klasse timer enthält die folgenden Memberfunktionen:
clear— Setzt den Timer auf Null zurück.time— Gibt die seit dem Start des Timers verstrichene Zeit zurück.event— Ruft eine Funktion nach einer bestimmten Anzahl von Millisekunden auf, mit optionalen Argumenten.
Bevor eine beliebige Memberfunktion vom timer aufgerufen werden kann, muss eine Instanz timer erstellt werden, wie unten dargestellt:
/* This constructor is required to use a
custom timer. Replace the values
as needed. */
// Create a timer instance
timer myTimer = timer();
clear#
Stellt den Timer auf Null.
Available Functionsvoid clear();
Diese Funktion akzeptiert keine Parameter.
Return ValuesDiese Funktion gibt keinen Wert zurück.
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#
Gibt den aktuellen Wert des Timers zurück.
Available Functions1 — Gibt die verstrichene Zeit in Millisekunden zurück.
uint32_t time() const;
Parameters2 — Gibt die verstrichene Zeit in den angegebenen Zeiteinheiten zurück.
double time( timeUnits units ) const;
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
The units used to return the elapsed time:
|
Die parameterlose Funktion (1) gibt einen
uint32_tzurück, der die verstrichene Zeit in Millisekunden darstellt.Die Funktion mit einem
timeUnitsParameter (2) gibt einendoublezurück, der die verstrichene Zeit in den angegebenen Einheiten darstellt.
Der Timer beginnt zu zählen, sobald der benutzerdefinierte Timer erstellt ist.
Der Aufruf von
clearsetzt den Timerwert auf Null zurück.
// 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#
Registriert eine Callback-Funktion, die nach einer festgelegten Verzögerung ausgeführt werden soll.
Available Functions1 — Registriert eine Rückruffunktion, die nach einer bestimmten Verzögerung ausgeführt wird, und übergibt einen benutzerdefinierten Wert an die Rückruffunktion.
static void event( void (*callback)(void *), uint32_t value );
Parameters2 — Registriert eine Rückruffunktion, die nach einer bestimmten Verzögerung ausgeführt wird.
static void event( void (*callback)(void), uint32_t value );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Eine Funktion, die nach der angegebenen Verzögerung aufgerufen wird und ein benutzerdefiniertes Argument empfängt. |
|
|
Eine Funktion, die nach der angegebenen Verzögerung aufgerufen wird. |
|
|
Die Verzögerung in Millisekunden, bevor die Callback-Funktion ausgeführt wird. |
Diese Funktion gibt keinen Wert zurück.
NotesDiese Funktion plant einen einmaligen Rückruf; sie wird nicht automatisch wiederholt.
Die Callback-Funktion muss
voidzurückgeben.Es können mehrere Veranstaltungen gleichzeitig stattfinden.
Definiere die Funktion (außerhalb von
int main())// Create a function to turn the screen orange void turnOrange() { Brain.Screen.clearScreen(orange); }Registriere die Funktion innerhalb von
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); }