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.

Vue avant et supérieure de la manette EXP, avec les joysticks, les boutons fléchés et les boutons d'action surlignés en jaune. La surface de la manette comporte deux joysticks (un à gauche et un à droite), des boutons fléchés haut et bas à gauche et les boutons A et B à droite. Sur le dessus de la manette se trouvent les boutons L1 et L2 à gauche et R1 et R2 à 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

ButtonA

Controller.ButtonA.pressing()

Le bouton A.

ButtonB

Controller.ButtonB.pressing()

Le bouton B.

ButtonDown

Controller.ButtonDown.pressing()

Le bouton Bas.

ButtonUp

Controller.ButtonUp.pressing()

Le bouton Haut.

ButtonL1

Controller.ButtonL1.pressing()

Le bouton L1.

ButtonL2

Controller.ButtonL2.pressing()

Le bouton L2.

ButtonL3

Controller.ButtonL3.pressing()

Le bouton L3.

ButtonR1

Controller.ButtonR1.pressing()

Le bouton R1.

ButtonR2

Controller.ButtonR2.pressing()

Le bouton R2.

ButtonR3

Controller.ButtonR3.pressing()

Le bouton R3.

Notes#

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

// 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 L1 is pressed
while (true) {
  if (Controller.ButtonL1.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 R1 is pressed
void driveForward() {
  Drivetrain.driveFor(forward, 200, mm);
}

Enregistrez le rappel dans main.

int main() {
  vexcodeInit();

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

Enregistrez le rappel dans main.

int main() {
  vexcodeInit();

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