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.

La manette IQ (1re génération) possède huit boutons principaux. Si une manette IQ (2e génération) est connectée au module IQ (1re génération), les boutons du joystick ButtonL3 , ainsi que ButtonR3 peuvent également être utilisés.

La manette IQ avec tous les boutons mis en évidence.

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 ▲.

ButtonLDown

Controller.ButtonLDown.pressing()

Le bouton L ▼.

ButtonLUp

Controller.ButtonLUp.pressing()

Le bouton L ▲.

ButtonRDown

Controller.ButtonRDown.pressing()

Le bouton R ▼.

ButtonRUp

Controller.ButtonRUp.pressing()

Le bouton R ▲.

ButtonL3

Controller.ButtonL3.pressing()

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

ButtonR3

Controller.ButtonR3.pressing()

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

Notes#

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

  • Les boutons ButtonL3 et ButtonR3 ne sont disponibles que lorsqu’une manette IQ (2e génération) est connectée.

// 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);
}