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:

  • reset — Resets the timer to zero.

  • value — Returns the elapsed time since the timer started.

  • 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();

/* 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#

Stellt den Timer auf Null.

Available Functions
void reset();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Diese Funktion gibt keinen Wert zurück.

Examples
while (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#

Gibt den aktuellen Wert des Timers zurück.

Available Functions
double value();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Ein Gleitkommawert, der die verstrichene Zeit in Sekunden angibt.

Notes
  • Der Timer beginnt zu zählen, sobald er zusammengebaut ist.

  • Calling reset resets the timer value to zero.

Examples
// 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#

Registriert eine Callback-Funktion, die nach einer festgelegten Verzögerung ausgeführt werden soll.

Available Functions

1 — 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 );

2 — Registriert eine Rückruffunktion, die nach einer bestimmten Verzögerung ausgeführt wird.

static void event(
    void (*callback)(void),
    uint32_t value );

Parameters

Parameter

Typ

Beschreibung

callback

void (*)(void *)

Eine Funktion, die nach der angegebenen Verzögerung aufgerufen wird und ein benutzerdefiniertes Argument empfängt.

callback

void (*)(void)

Eine Funktion, die nach der angegebenen Verzögerung aufgerufen wird.

value

uint32_t

Die Verzögerung in Millisekunden, bevor die Callback-Funktion ausgeführt wird.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Diese Funktion plant einen einmaligen Rückruf; sie wird nicht automatisch wiederholt.

  • Die Callback-Funktion muss void zurückgeben.

  • Es können mehrere Veranstaltungen gleichzeitig stattfinden.

Examples

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);
}