Taimeris#
Ievads#
timer klase ir atvasināta no brain bāzes klases un nodrošina funkcionalitāti pagājušā laika mērīšanai, ļaujot izsekot ilgumiem un ieplānot uz laiku balstītus notikumus VEX V5 programmā.
Piekļuve#
Brain.Timer
Piezīmes#
Brain.Timerirtimerklases eksemplārs un nodrošina tādu pašu funkcionalitāti.
Piemērs#
/* This constructor is required when using VS Code.
A Brain is generated automatically at the start of
VEXcode projects. */
// Create the V5 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);
}
Dalībnieku funkcijas#
timer klase ietver šādas dalībfunkcijas:
clear— Atiestata taimeri uz nulli.time— Atgriež pagājušo laiku kopš taimera palaišanas.event— Izsauc funkciju pēc noteikta milisekundžu skaita ar papildu argumentiem.
Pirms jebkuru timer dalībfunkciju izsaukšanas ir jāizveido brain instance, kā parādīts zemāk:
// Create the V5 Brain
brain Brain = brain();
clear#
Atiestata taimera pašreizējo vērtību uz nulli. Pēc tam taimeris nekavējoties sāk skaitīt no nulles uz priekšu.
Available Functionsvoid clear();
Šī funkcija nepieņem nekādus parametrus.
Return ValuesŠī funkcija neatgriež vērtību.
Exampleswhile (true) {
// Reset the timer every time the screen is pressed
if (Brain.Screen.pressing()) {
Brain.Timer.clear();
}
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Time: %.2f", Brain.Timer.value());
wait(50, msec);
}
time#
Atgriež taimera pašreizējo vērtību.
Available Functions1 — Atgriež pagājušo laiku milisekundēs.
uint32_t time() const;
Parameters2 — Atgriež pagājušo laiku norādītajās laika vienībās.
double time( timeUnits units ) const;
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Pagājušā laika atgriešanai izmantotās mērvienības:
|
Bezparametru funkcija (1) atgriež
uint32_tkas attēlo pagājušo laiku milisekundēs.Funkcija ar
timeUnitsparametru (2) atgrieždoublekas attēlo pagājušo laiku norādītajās vienībās.
Taimeris sāk skaitīt laiku, kad projekts sākas.
Izsaucot
clear, taimera vērtība tiek atiestatīta uz nulli.
// 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#
Reģistrē atzvanīšanas funkciju, kas tiks izpildīta pēc noteiktas aizkaves.
Available Functions1 — Reģistrē atzvanīšanas pieprasījumu, lai tas tiktu izpildīts pēc noteiktas aizkaves, un nodod atzvanīšanas pieprasījumam lietotāja definētu vērtību.
static void event( void (*callback)(void*), uint32_t value );
Parameters2 — Reģistrē atzvanīšanas pieprasījumu, lai tas tiktu palaists pēc noteiktas aizkaves.
static void event( void (*callback)(void), uint32_t value );
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Funkcija, kas tiks izsaukta pēc norādītās aizkaves un saņem lietotāja definētu argumentu. |
|
|
Funkcija, kas tiks izsaukta pēc norādītās aizkaves. |
|
|
Kavēšanās milisekundēs pirms atzvanīšanas funkcijas izpildes. |
Šī funkcija neatgriež vērtību.
NotesŠī funkcija ieplāno vienreizēju atzvanu; tā neatkārtojas automātiski.
Atzvanīšanas funkcijai ir jāatgriež
void.Vienlaikus var tikt ieplānoti vairāki pasākumi.
Definējiet funkciju (ārpus
int main())// Create a function to turn the screen orange void turnOrange() { Brain.Screen.clearScreen(orange); }Reģistrējiet funkciju
int main()iekšpusē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); }