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.

Faces avant et arrière de la manette V5, les boutons étant surlignés en jaune. Sur la face avant de la manette se trouvent les boutons fléchés haut, bas, gauche et droite à gauche, et les boutons X, A, B et Y dans le sens horaire à partir de midi à droite. À l'arrière de la manette se trouvent les boutons L1, L2, R1 et R2 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

ButtonA

Controller.ButtonA.pressing()

Le bouton A.

ButtonB

Controller.ButtonB.pressing()

Le bouton B.

ButtonX

Controller.ButtonX.pressing()

Le bouton X.

ButtonY

Controller.ButtonY.pressing()

Le bouton Y.

ButtonDown

Controller.ButtonDown.pressing()

Le bouton Bas.

ButtonUp

Controller.ButtonUp.pressing()

Le bouton Haut.

ButtonLeft

Controller.ButtonLeft.pressing()

Le bouton gauche.

ButtonRight

Controller.ButtonRight.pressing()

Le bouton droit.

ButtonL1

Controller.ButtonL1.pressing()

Le bouton L1.

ButtonL2

Controller.ButtonL2.pressing()

Le bouton L2.

ButtonR1

Controller.ButtonR1.pressing()

Le bouton R1.

ButtonR2

Controller.ButtonR2.pressing()

Le bouton R2.

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#

pressage#

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#

pressé#

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

Enregistrez le rappel dans main.

int main() {
  vexcodeInit();

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

libéré#

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

Enregistrez le rappel dans main.

int main() {
  vexcodeInit();

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