Bouton#

Introduction#

La classe button est une classe dérivée de la classe controller. Elle permet d’accéder aux états des boutons du contrôleur et aux rappels d’événements des boutons.

L’objet bouton button est accessible via un objet contrôleur controller Il n’est pas construit directement.

Vues avant et arrière de la manette IQ 2e génération, tous les boutons étant surlignés en jaune. La surface de la manette comporte deux boutons de joystick dans les coins supérieurs gauche et droit, avec les touches E (haut/bas) sous le joystick gauche et F (haut/bas) sous le joystick droit. À l'arrière de la manette se trouvent les touches L (haut/bas) et R (haut/bas) respectivement à gauche et à droite.

Accéder#

La classe controller fournit les objets bouton suivants. Chaque objet est une instance de la classe button.

Objet

Exemple d’utilisation

Description

ButtonEDown

Controller.ButtonEDown.pressing()

Le bouton E ▼.

ButtonEUp

Controller.ButtonEUp.pressing()

Le bouton E ▲.

ButtonFDown

Controller.ButtonFDown.pressing()

Le bouton F ▼.

ButtonFUp

Controller.ButtonFUp.pressing()

Le bouton F ▲.

ButtonL3

Controller.ButtonL3.pressing()

Bouton joystick gauche. Manette IQ (2e génération) uniquement.

ButtonLDown

Controller.ButtonLDown.pressing()

Le bouton L ▼.

ButtonLUp

Controller.ButtonLUp.pressing()

Le bouton L ▲.

ButtonR3

Controller.ButtonR3.pressing()

Bouton du joystick droit. Manette IQ (2e génération) uniquement.

ButtonRDown

Controller.ButtonRDown.pressing()

Le bouton R ▼.

ButtonRUp

Controller.ButtonRUp.pressing()

Le bouton R ▲.

Notes#

  • Avant d’utiliser une fonction membre button , créez un objet controller.

  • Les boutons ButtonL3 et ButtonR3 ne sont disponibles que sur la manette IQ (2e génération).

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

Fonctions des membres#

La classe du bouton button comprend les fonctions membres suivantes :

Getter — État du bouton Lire.

  • pressing — Renvoie si le bouton est enfoncé.

Rappels — Exécuter des fonctions lors d’événements de bouton.

  • pressed — Enregistre une fonction à exécuter lorsque le bouton est enfoncé.

  • released — Enregistre une fonction à exécuter lorsque le bouton est relâché.

Getter#

pressing#

Appuyer sur pressing permet de savoir si le bouton est actuellement enfoncé.

Fonction disponible

bool pressing() const;

Paramètres

Cette fonction ne possède pas de paramètres.

Valeur de retour

Renvoie une valeur booléenne.

  • true — Le bouton est enfoncé.

  • false — Le bouton n’est pas enfoncé.

Exemple

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

  wait(20, msec);
}

Rappels#

pressed#

La touche pressed enregistrent une fonction qui s’exécute lorsque le bouton est enfoncé.

Fonction disponible

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

Paramètre

Taper

Description

callback

void (*)(void)

Une fonction qui s’exécute lorsque l’on appuie sur le bouton.

Valeur de retour

Cette fonction ne renvoie aucune valeur.

Exemple

Définissez la fonction de rappel en dehors de main.

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

Enregistrez le rappel dans main.

int main() {
  vexcodeInit();

  // Run driveForward when F Up is pressed
  Controller.ButtonFUp.pressed(driveForward);
}

released#

released enregistre une fonction qui s’exécute lorsque le bouton est relâché.

Fonction disponible

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

Paramètre

Taper

Description

callback

void (*)(void)

Une fonction qui s’exécute lorsque le bouton est relâché.

Valeur de retour

Cette fonction ne renvoie aucune valeur.

Exemple

Définissez la fonction de rappel en dehors de main.

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

Enregistrez le rappel dans main.

int main() {
  vexcodeInit();

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