Timer#

Invoering#

De timer klasse is afgeleid van de brain basisklasse en biedt functionaliteit voor het meten van de verstreken tijd, waardoor u tijdsduren kunt bijhouden en tijdsgebonden gebeurtenissen kunt plannen binnen een VEX EXP-programma.

Toegang#

Brain.Timer

Notities#

  • Brain.Timer is een instantie van de timer klasse en biedt dezelfde functionaliteit.

Voorbeeld#

/* This constructor is required when using VS Code.
A Brain is generated automatically at the start of
VEXcode projects. */

// Create the EXP 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);
}

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 kunnen worden aangeroepen, moet er een instantie van brain worden aangemaakt, zoals hieronder weergegeven:

// Create the EXP Brain
brain Brain = brain();

clear#

Hiermee wordt de huidige waarde van de timer op nul gezet. Daarna begint de timer direct weer vanaf nul te tellen.

Available Functions
void clear();

Parameters

Deze functie accepteert geen parameters.

Return Values

Deze functie retourneert geen waarde.

Examples
while (true) {
  // Reset the timer every time the check button is pressed
  if (Brain.buttonCheck.pressing()) {
    Brain.Timer.clear();
  }
  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Time: %.2f", Brain.Timer.value());
  wait(50, msec);
}

time#

Geeft de huidige waarde van de timer terug.

Available Functions

1 — Geeft de verstreken tijd in milliseconden weer.

uint32_t time() const;

2 — Geeft de verstreken tijd weer in de opgegeven tijdseenheden.

double time(
    timeUnits units ) const;

Parameters

Parameter

Type

Beschrijving

units

timeUnits

De eenheden die worden gebruikt om de verstreken tijd weer te geven:

  • seconds / sec — seconden
  • msec — milliseconden

Return Values
  • De parameterloze functie (1) retourneert een uint32_t die de verstreken tijd in milliseconden vertegenwoordigt.

  • De functie met een parameter van timeUnits (2) retourneert een double die de verstreken tijd in de opgegeven eenheden vertegenwoordigt.

Notes
  • De timer begint te tellen zodra het project start.

  • Het aanroepen van clear zet de timerwaarde terug naar nul.

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

Registreert een callbackfunctie die na een bepaalde vertraging moet worden uitgevoerd.

Available Functions

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

2 — Registreert een callback die na een bepaalde vertraging wordt uitgevoerd.

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

Parameters

Parameter

Type

Beschrijving

callback

void ()(void)

Een functie die na de opgegeven vertraging wordt aangeroepen en een door de gebruiker gedefinieerd argument ontvangt.

callback

void (*)(void)

Een functie die na de opgegeven vertraging wordt aangeroepen.

value

uint32_t

De vertraging, in milliseconden, voordat de callbackfunctie wordt uitgevoerd.

Return Values

Deze functie retourneert geen waarde.

Notes
  • Deze functie plant een eenmalige callback in; deze wordt niet automatisch herhaald.

  • De callbackfunctie moet void retourneren.

  • Er kunnen meerdere evenementen tegelijkertijd worden ingepland.

Examples

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

  // Call turnOrange after 2 seconds
  Brain.Timer.event(turnOrange, 2000);
}