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 achterkant van de V5-controller met de knoppen geel gemarkeerd. Aan de linkerkant van de controller bevinden zich de pijlknoppen omhoog, omlaag, naar links en naar rechts, en aan de rechterkant de knoppen X, A, B, Y met de klok mee vanaf 12 uur. Aan de achterkant van de controller bevinden zich de knoppen L1, L2, R1 en R2 aan respectievelijk de linker- en 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.

ButtonX

Controller.ButtonX.pressing()

De X-knop.

ButtonY

Controller.ButtonY.pressing()

De Y-knop.

ButtonDown

Controller.ButtonDown.pressing()

De Omlaag-knop.

ButtonUp

Controller.ButtonUp.pressing()

De Omhoog-knop.

ButtonLeft

Controller.ButtonLeft.pressing()

De linker knop.

ButtonRight

Controller.ButtonRight.pressing()

De rechter knop.

ButtonL1

Controller.ButtonL1.pressing()

De L1-knop.

ButtonL2

Controller.ButtonL2.pressing()

De L2-knop.

ButtonR1

Controller.ButtonR1.pressing()

De R1-knop.

ButtonR2

Controller.ButtonR2.pressing()

De R2-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#

drukken#

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#

geperst#

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 A is pressed
void driveForward() {
  Drivetrain.driveFor(forward, 100, mm);
}

Registreer de callback in main.

int main() {
  vexcodeInit();

  // Run driveForward when A is pressed
  Controller.ButtonA.pressed(driveForward);
}

uitgegeven#

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 A is released
void stopDriving() {
  Drivetrain.stop();
}

Registreer de callback in main.

int main() {
  vexcodeInit();

  // Run stopDriving when A is released
  Controller.ButtonA.released(stopDriving);
}