Taste#

Einführung#

Die Klasse button ist eine abgeleitete Klasse der Klasse „controller“. Sie ermöglicht den Zugriff auf die Zustände der Controller-Tasten und die Rückruffunktionen für Tastenereignisse.

Ein Objekt mit button wird über ein Objekt mit controller angesprochen. Es wird nicht direkt erstellt.

Die Vorder- und Oberseite des EXP-Controllers mit den gelb hervorgehobenen Joysticks, Pfeiltasten und Aktionstasten. Auf der Oberfläche des Controllers befinden sich links und rechts zwei Joysticks, links die Pfeiltasten nach oben und unten und rechts die A- und B-Tasten. Oben auf dem Controller befinden sich links L1 und L2 sowie rechts R1 und R2.

Zugang#

The controller class provides the following button objects. Each object is an instance of the button class.

Objekt

Anwendungsbeispiel

Beschreibung

ButtonA

Controller.ButtonA.pressing()

Die A-Taste.

ButtonB

Controller.ButtonB.pressing()

Die B-Taste.

ButtonDown

Controller.ButtonDown.pressing()

Die Abwärts-Taste.

ButtonUp

Controller.ButtonUp.pressing()

Die Nach oben-Taste.

ButtonL1

Controller.ButtonL1.pressing()

Die L1-Taste.

ButtonL2

Controller.ButtonL2.pressing()

Die L2-Taste.

ButtonL3

Controller.ButtonL3.pressing()

Die L3-Taste.

ButtonR1

Controller.ButtonR1.pressing()

Die R1-Taste.

ButtonR2

Controller.ButtonR2.pressing()

Die R2-Taste.

ButtonR3

Controller.ButtonR3.pressing()

Die R3-Taste.

Anmerkungen#

  • Bevor Sie eine button Memberfunktion verwenden, erstellen Sie ein controller -Objekt.

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

Mitgliedsfunktionen#

Die Klasse button enthält die folgenden Memberfunktionen:

Getter – Status der Schaltfläche lesen.

  • pressing — Gibt zurück, ob die Taste gedrückt wird.

Callbacks – Funktionen werden ausgeführt, wenn Schaltflächenereignisse auftreten.

  • pressed — Registriert eine Funktion, die beim Drücken der Taste ausgeführt werden soll.

  • released — Registriert eine Funktion, die beim Loslassen der Taste ausgeführt werden soll.

Getter#

pressing#

pressing wird angezeigt, ob die Taste gerade gedrückt wird.

Verfügbare Funktionen

bool pressing() const;

Parameter

Diese Funktion hat keine Parameter.

Rückgabewert

Gibt einen booleschen Wert zurück.

  • true — Der Knopf wird gedrückt.

  • false — Der Knopf wird nicht gedrückt.

Beispiel

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

  wait(20, msec);
}

Rückrufe#

pressed#

pressed registriert eine Funktion, die beim Drücken der Taste ausgeführt wird.

Verfügbare Funktionen

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

Parameter

Typ

Beschreibung

callback

void (*)(void)

Eine Funktion, die beim Drücken des Knopfes ausgeführt wird.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Beispiel

Definiere die Callback-Funktion außerhalb von main.

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

Registriere den Callback innerhalb von main.

int main() {
  vexcodeInit();

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

released#

released registriert eine Funktion, die ausgeführt wird, wenn die Taste losgelassen wird.

Verfügbare Funktionen

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

Parameter

Typ

Beschreibung

callback

void (*)(void)

Eine Funktion, die beim Loslassen der Taste ausgeführt wird.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Beispiel

Definiere die Callback-Funktion außerhalb von main.

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

Registriere den Callback innerhalb von main.

int main() {
  vexcodeInit();

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