Μετρών την ώραν#
Εισαγωγή#
Η κλάση timer προέρχεται από την βασική κλάση brain και παρέχει λειτουργικότητα για τη μέτρηση του χρόνου που έχει παρέλθει, επιτρέποντάς σας να παρακολουθείτε τις διάρκειες και να προγραμματίζετε συμβάντα που βασίζονται σε χρόνο μέσα σε ένα πρόγραμμα VEX V5.
Πρόσβαση#
Brain.Timer
Σημειώσεις#
Brain.Timerείναι μια παρουσία της κλάσηςtimerκαι παρέχει την ίδια λειτουργικότητα.
Παράδειγμα#
/* 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);
}
Συναρτήσεις Μελών#
Η κλάση timer περιλαμβάνει τις ακόλουθες συναρτήσεις-μέλη:
clear— Μηδενίζει το χρονόμετρο.time— Επιστρέφει τον χρόνο που έχει παρέλθει από την έναρξη του χρονομέτρου.event— Καλεί μια συνάρτηση μετά από έναν καθορισμένο αριθμό χιλιοστών του δευτερολέπτου, με προαιρετικά ορίσματα.
Πριν από την κλήση οποιασδήποτε συνάρτησης μέλους timer , πρέπει να δημιουργηθεί μια παρουσία brain , όπως φαίνεται παρακάτω:
// Create the V5 Brain
brain Brain = brain();
clear#
Μηδενίζει την τρέχουσα τιμή του χρονοδιακόπτη. Στη συνέχεια, ο χρονοδιακόπτης αρχίζει αμέσως να μετράει ξανά από το μηδέν.
Available Functionsvoid clear();
Αυτή η συνάρτηση δεν δέχεται καμία παράμετρο.
Return ValuesΑυτή η συνάρτηση δεν επιστρέφει τιμή.
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#
Επιστρέφει την τρέχουσα τιμή του χρονοδιακόπτη.
Available Functions1 — Επιστρέφει τον χρόνο που έχει παρέλθει σε χιλιοστά του δευτερολέπτου.
uint32_t time() const;
Parameters2 — Επιστρέφει τον χρόνο που έχει παρέλθει στις καθορισμένες χρονικές μονάδες.
double time( timeUnits units ) const;
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Οι μονάδες που χρησιμοποιούνται για την επιστροφή του χρόνου που έχει παρέλθει:
|
Η συνάρτηση χωρίς παραμέτρους (1) επιστρέφει
uint32_tπου αντιπροσωπεύει τον χρόνο που έχει παρέλθει σε χιλιοστά του δευτερολέπτου.Η συνάρτηση με παράμετρο
timeUnits(2) επιστρέφειdoubleπου αντιπροσωπεύει τον χρόνο που έχει παρέλθει στις καθορισμένες μονάδες.
Το χρονόμετρο αρχίζει να μετράει όταν ξεκινά το έργο.
Η κλήση της συνάρτησης
clearεπαναφέρει την τιμή του χρονομέτρου στο μηδέν.
// 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#
Καταγράφει μια συνάρτηση επανάκλησης που θα εκτελεστεί μετά από μια καθορισμένη καθυστέρηση.
Available Functions1 — Καταχωρεί μια επανάκληση για εκτέλεση μετά από μια καθορισμένη καθυστέρηση και μεταβιβάζει μια τιμή που ορίζεται από τον χρήστη στην επανάκληση.
static void event( void (*callback)(void*), uint32_t value );
Parameters2 — Καταχωρεί μια επανάκληση για εκτέλεση μετά από μια καθορισμένη καθυστέρηση.
static void event( void (*callback)(void), uint32_t value );
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Μια συνάρτηση που θα κληθεί μετά την καθορισμένη καθυστέρηση και θα λάβει ένα όρισμα που ορίζεται από τον χρήστη. |
|
|
Μια συνάρτηση που θα κληθεί μετά την καθορισμένη καθυστέρηση. |
|
|
Η καθυστέρηση, σε χιλιοστά του δευτερολέπτου, πριν από την εκτέλεση της συνάρτησης επανάκλησης. |
Αυτή η συνάρτηση δεν επιστρέφει τιμή.
NotesΑυτή η συνάρτηση προγραμματίζει μια εφάπαξ επανάκληση. Δεν επαναλαμβάνεται αυτόματα.
Η συνάρτηση επανάκλησης πρέπει να επιστρέφει
void.Μπορούν να προγραμματιστούν πολλαπλές εκδηλώσεις ταυτόχρονα.
Ορίστε τη συνάρτηση (εκτός του
int main())// Create a function to turn the screen orange void turnOrange() { Brain.Screen.clearScreen(orange); }Καταχωρίστε τη συνάρτηση μέσα στο
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); }