Κουμπί#

Εισαγωγή#

Η κλάση κουμπιού button προέρχεται από την βασική κλάση brain και παρέχει πρόσβαση στα κουμπιά του εγκεφάλου IQ (2ης γενιάς), επιτρέποντας στο ρομπότ σας να παρακολουθεί τα πατήματα των κουμπιών του εγκεφάλου.

Πρόσβαση#

Η κλάση brain παρέχει δώδεκα αντικείμενα κουμπιών. Κάθε αντικείμενο είναι μια παρουσία της κλάσης button και μπορεί να προσπελαστεί μέσω μιας παρουσίας brain.

Αντικείμενο

Παράδειγμα Χρήσης

Περιγραφή

buttonCheck

Brain.buttonCheck.pressing()

Κουμπί ελέγχου

buttonLeft

Brain.buttonLeft.pressing()

Αριστερό κουμπί

buttonRight

Brain.buttonRight.pressing()

Δεξί κουμπί

Σημειώσεις#

  • Το αντικείμενο button παρέχεται από τον εγκέφαλο. Δεν κατασκευάζεται απευθείας.

Συναρτήσεις Μελών#

Η κλάση Button περιλαμβάνει τις ακόλουθες συναρτήσεις-μέλη:

  • pressed — Καταγράφει μια συνάρτηση που θα κληθεί όταν πατηθεί το καθορισμένο κουμπί.

  • released — Καταγράφει μια συνάρτηση που θα κληθεί όταν απελευθερωθεί το καθορισμένο κουμπί.

  • pressing — Επιστρέφει εάν πατιέται το καθορισμένο κουμπί.

Πριν από την κλήση οποιασδήποτε συνάρτησης μέλους button , πρέπει να δημιουργηθεί μια παρουσία brain , όπως φαίνεται παρακάτω:

// Create a brain instance
brain();

pressed#

Καταγράφει μια συνάρτηση επανάκλησης που εκτελείται όταν πατηθεί ένα συγκεκριμένο κουμπί του εγκεφάλου.

Available Functions
void pressed( 
  void (* callback)(void) ) const;

Parameters

Παράμετρος

Τύπος

Περιγραφή

callback

void (*)(void)

Μια συνάρτηση που καλείται όταν πατηθεί το καθορισμένο κουμπί.

Return Values

Αυτή η συνάρτηση δεν επιστρέφει τιμή.

Examples

Αυτή η συνάρτηση μπορεί να κληθεί σε οποιοδήποτε αντικείμενο κουμπιού εγκεφάλου, για παράδειγμα:

  • Brain.buttonCheck
  • Brain.buttonLeft
  • Brain.buttonRight

Ορίστε τη συνάρτηση επανάκλησης (εκτός από int main())

// Drive forward when check is pressed
void driveForward() {
    Drivetrain.driveFor(forward, 100, mm);
}

Καταχωρίστε την επανάκληση μέσα στο int main()

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Call driveForward when the check button is pressed
  Brain.buttonCheck.pressed(driveForward);
}

released#

Καταγράφει μια συνάρτηση επανάκλησης που εκτελείται όταν απελευθερώνεται ένα συγκεκριμένο κουμπί του εγκεφάλου.

Available Functions
void released( 
  void (* callback)(void) ) const;

Παράμετροι#

Παράμετρος

Τύπος

Περιγραφή

callback

void (*)(void)

Μια συνάρτηση που καλείται όταν απελευθερώνεται το καθορισμένο κουμπί.

Return Values

Αυτή η συνάρτηση δεν επιστρέφει τιμή.

Examples

Αυτή η συνάρτηση μπορεί να κληθεί σε οποιοδήποτε αντικείμενο κουμπιού εγκεφάλου, για παράδειγμα:

  • Brain.buttonCheck
  • Brain.buttonLeft
  • Brain.buttonRight

Ορίστε τη συνάρτηση επανάκλησης (εκτός από int main())

// Drive backward when the left button is released
void backUp() {
    Drivetrain.driveFor(reverse, 100, mm);
}

Καταχωρίστε την επανάκληση μέσα στο int main()

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Call backUp when the left button is released
  Brain.buttonLeft.released(backUp);
}

pressing#

Επιστρέφει εάν πατιέται αυτήν τη στιγμή ένα συγκεκριμένο κουμπί του εγκεφάλου.

Available Functions
bool pressing() const;

Parameters

Αυτή η συνάρτηση δεν δέχεται καμία παράμετρο.

Return Values

Επιστρέφει μια λογική τιμή που υποδεικνύει εάν πατιέται το καθορισμένο κουμπί:

  • true — Το κουμπί πατιέται.

  • false — Το κουμπί δεν πατιέται.

Examples

Αυτή η συνάρτηση μπορεί να κληθεί σε οποιοδήποτε αντικείμενο κουμπιού εγκεφάλου, για παράδειγμα:

  • Brain.buttonCheck
  • Brain.buttonLeft
  • Brain.buttonRight
// Turn right while right is pressed
while (true) {
    if (Brain.buttonRight.pressing()) {
        Drivetrain.turn(right);
    } else {
        Drivetrain.stop();
    }
    wait(5, msec);
}