Axe#

Introduction#

La classe axis est une classe dérivée de la classe controller. Elle fournit un accès aux valeurs des axes du joystick du contrôleur et aux rappels de changement d’axe du joystick.

Un objet d’axe axis est accessible via un objet de contrôleur controller . Il n’est pas construit directement.

La manette IQ de 1ère génération avec les quatre axes du joystick mis en évidence.

Accéder#

La classe controller fournit les objets d’axe suivants. Chaque objet est une instance de la classe axis.

Objet d’axe

Exemple d’utilisation

Description

Axis1

Controller.Axis1.position()

Axe horizontal du joystick droit.

Axis2

Controller.Axis2.position()

Axe vertical du joystick droit.

Axis3

Controller.Axis3.position()

Axe vertical du joystick gauche.

Axis4

Controller.Axis4.position()

Axe horizontal du joystick gauche.

Notes#

  • Avant d’utiliser une fonction membre de l’axe axis , créez un objet contrôleur controller.

  • La position position renvoie une valeur de -100 à 100.

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

Fonctions des membres#

La classe axis comprend les fonctions membres suivantes :

Getter — Lire la position de l’axe du joystick.

  • position — Renvoie la position de l’axe du joystick.

Rappel — Exécuter une fonction lorsque la position du joystick change le long d’un axe.

  • changed — Exécute une fonction lorsque la position du joystick change le long de cet axe.

Getter#

position#

La position position renvoie la position de l’axe du joystick sous forme de valeur comprise entre -100 et 100.

Fonction disponible

int32_t position(percentUnits units = percentUnits::pct) const;

Paramètre

Taper

Description

units

percentUnits

Facultatif. L’unité utilisée pour la valeur de l’axe renvoyée. La valeur par défaut est percentUnits::pct.

Valeur de retour

Renvoie une valeur int32_t de -100 à 100.

  • 100 — L’axe du joystick est complètement déplacé dans la direction positive.

  • 0 — L’axe du joystick est centré.

  • -100 — L’axe du joystick est complètement déplacé dans la direction négative.

Exemple

// Turn with the left joystick
while (true) {
  if (Controller.Axis4.position() > 10) {
    Drivetrain.turn(right);
  }
  else if (Controller.Axis4.position() < -10) {
    Drivetrain.turn(left);
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

Rappel#

changed#

changed exécute une fonction lorsque la position du joystick change le long de cet axe.

Fonction disponible

void changed(void (* callback)(void)) const;

Paramètre

Taper

Description

callback

void (*)(void)

Une fonction à exécuter à chaque changement de position du joystick le long de cet axe.

Paramètre

Taper

Description

callback

void (*)(void)

Une fonction de rappel prédéfinie, appelée automatiquement lorsque la valeur de l’axe change. Cette fonction doit respecter la signature de rappel requise. Consultez la section Fonctions de rappel pour plus d’informations.

Return Values

Cette fonction ne renvoie aucune valeur.

Exemple

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

Définissez la fonction de rappel (en dehors de int main())

// Play a sound when the left joystick moves
 void sounds() {
     Brain.playSound(siren);
     wait(1, seconds);
 }

Enregistrez le rappel à l’intérieur de int main()

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Call the function when the left joystick moves
  Controller.Axis4.changed(sounds);
}