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 Tasten wird über ein Objekt mit controller angesprochen. Es wird nicht direkt erstellt.

Vorder- und Rückseite des IQ-Controllers der 2. Generation, alle Tasten gelb hervorgehoben. Die Oberfläche des Controllers verfügt über zwei Joystick-Tasten in den oberen Ecken, links und rechts, mit den Tasten E (oben/unten) unter dem linken und F (oben/unten) unter dem rechten Joystick. Auf der Rückseite des Controllers befinden sich links und rechts die Tasten L (oben/unten) und R (oben/unten).

Zugang#

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

Objekt

Anwendungsbeispiel

Beschreibung

ButtonEDown

Controller.ButtonEDown.pressing()

Die E ▼-Taste.

ButtonEUp

Controller.ButtonEUp.pressing()

Die E ▲-Taste.

ButtonFDown

Controller.ButtonFDown.pressing()

Die F ▼-Taste.

ButtonFUp

Controller.ButtonFUp.pressing()

Die F ▲-Taste.

ButtonL3

Controller.ButtonL3.pressing()

Die linke Joystick-Taste. Nur für IQ-Controller (2. Generation).

ButtonLDown

Controller.ButtonLDown.pressing()

Die L ▼-Taste.

ButtonLUp

Controller.ButtonLUp.pressing()

Die L ▲-Taste.

ButtonR3

Controller.ButtonR3.pressing()

Die rechte Joystick-Taste. Nur für IQ-Controller (2. Generation).

ButtonRDown

Controller.ButtonRDown.pressing()

Die R ▼-Taste.

ButtonRUp

Controller.ButtonRUp.pressing()

Die R ▲-Taste.

Anmerkungen#

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

  • Die Tasten ButtonL3 und ButtonR3 sind nur auf dem IQ (2. Generation) Controller verfügbar.

// 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 R Up is pressed
while (true) {
  if (Controller.ButtonRUp.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 F Up is pressed
void driveForward() {
  Drivetrain.driveFor(forward, 100, mm);
}

Registriere den Callback innerhalb von main.

int main() {
  vexcodeInit();

  // Run driveForward when F Up is pressed
  Controller.ButtonFUp.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 F Up is released
void stopDriving() {
  Drivetrain.stop();
}

Registriere den Callback innerhalb von main.

int main() {
  vexcodeInit();

  // Run stopDriving when F Up is released
  Controller.ButtonFUp.released(stopDriving);
}