Knop#

Invoering#

De klasse button is een afgeleide klasse van de klasse controller. Deze biedt toegang tot de status van de controllerknoppen en de callbacks voor knopgebeurtenissen.

Een object button knoppen wordt benaderd via een object met controller . Het wordt niet direct geconstrueerd.

De voor- en bovenkant van de EXP-controller met de joysticks, pijlknoppen en actieknoppen geel gemarkeerd. Op het oppervlak van de controller bevinden zich twee joysticks aan de linker- en rechterkant, met pijlknoppen omhoog en omlaag aan de linkerkant en A- en B-knoppen aan de rechterkant. Aan de bovenkant van de controller bevinden zich L1 en L2 aan de linkerkant en R1 en R2 aan de rechterkant.

Toegang#

De klasse controller biedt de volgende knopobjecten. Elk object is een instantie van de klasse button.

Voorwerp

Voorbeeldgebruik

Beschrijving

ButtonA

Controller.ButtonA.pressing()

De A-knop.

ButtonB

Controller.ButtonB.pressing()

De B-knop.

ButtonDown

Controller.ButtonDown.pressing()

De Omlaag-knop.

ButtonUp

Controller.ButtonUp.pressing()

De Omhoog-knop.

ButtonL1

Controller.ButtonL1.pressing()

De L1-knop.

ButtonL2

Controller.ButtonL2.pressing()

De L2-knop.

ButtonL3

Controller.ButtonL3.pressing()

De L3-knop.

ButtonR1

Controller.ButtonR1.pressing()

De R1-knop.

ButtonR2

Controller.ButtonR2.pressing()

De R2-knop.

ButtonR3

Controller.ButtonR3.pressing()

De R3-knop.

Notities#

  • Voordat je een button lidfunctie gebruikt, maak je een controller object aan.

// Create a controller object
controller Controller = controller();

Lidfuncties#

De klasse button bevat de volgende lidfuncties:

Getter — Lees de status van de knop.

  • pressing — Geeft aan of de knop wordt ingedrukt.

Callbacks — Voer functies uit wanneer er op knoppen wordt gedrukt.

  • pressed — Registreert een functie die moet worden uitgevoerd wanneer de knop wordt ingedrukt.

  • released — Registreert een functie die moet worden uitgevoerd wanneer de knop wordt losgelaten.

Getter#

pressing#

Door op pressing wordt gecontroleerd of de knop momenteel is ingedrukt.

Beschikbare functie

bool pressing() const;

Parameters

Deze functie heeft geen parameters.

Retourwaarde

Retourneert een Booleaanse waarde.

  • true — De knop wordt ingedrukt.

  • false — De knop wordt niet ingedrukt.

Voorbeeld

// Turn right while L1 is pressed
while (true) {
  if (Controller.ButtonL1.pressing()) {
    Drivetrain.turn(right);
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

Terugbelverzoeken#

pressed#

pressed registreert een functie die wordt uitgevoerd wanneer de knop wordt ingedrukt.

Beschikbare functie

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

Parameter

Type

Beschrijving

callback

void (*)(void)

Een functie die wordt uitgevoerd wanneer de knop wordt ingedrukt.

Retourwaarde

Deze functie retourneert geen waarde.

Voorbeeld

Definieer de callbackfunctie buiten main.

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

Registreer de callback in main.

int main() {
  vexcodeInit();

  // Run driveForward when R1 is pressed
  Controller.ButtonR1.pressed(driveForward);
}

released#

released registreert een functie die wordt uitgevoerd wanneer de knop wordt losgelaten.

Beschikbare functie

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

Parameter

Type

Beschrijving

callback

void (*)(void)

Een functie die wordt uitgevoerd wanneer de knop wordt losgelaten.

Retourwaarde

Deze functie retourneert geen waarde.

Voorbeeld

Definieer de callbackfunctie buiten main.

// Stop the drivetrain when R1 is released
void stopDriving() {
  Drivetrain.stop();
}

Registreer de callback in main.

int main() {
  vexcodeInit();

  // Run stopDriving when R1 is released
  Controller.ButtonR1.released(stopDriving);
}