Eje#

Introducción#

La clase axis es una clase derivada de la clase controller. Proporciona acceso a los valores de los ejes del joystick del controlador y a las funciones de devolución de llamada para el cambio de ejes del joystick.

Se accede a un objeto del eje axis a través de un objeto del controlador controller No se construye directamente.

El controlador IQ de 1ª generación con los cuatro ejes del joystick resaltados.

Acceso#

La clase controlador controller proporciona los siguientes objetos de eje. Cada objeto es una instancia de la clase eje axis.

Objeto del eje

Ejemplo de uso

Descripción

Axis1

Controller.Axis1.position()

Eje horizontal del joystick derecho.

Axis2

Controller.Axis2.position()

Eje vertical del joystick derecho.

Axis3

Controller.Axis3.position()

Eje vertical del joystick izquierdo.

Axis4

Controller.Axis4.position()

Eje horizontal del joystick izquierdo.

Observaciones#

  • Antes de usar una función miembro del eje axis , cree un objeto controlador controller.

  • position returns a value from -100 to 100.

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

Funciones de los miembros#

La clase axis incluye las siguientes funciones miembro:

Getter — Leer la posición del eje del joystick.

  • position — Devuelve la posición del eje del joystick.

Devolución de llamada: ejecuta una función cuando la posición del joystick cambia a lo largo de un eje.

  • changed — Ejecuta una función cuando la posición del joystick cambia a lo largo de ese eje.

Getter#

position#

La posición position joystick como un valor de -100 a 100.

Función disponible

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

Parámetro

Tipo

Descripción

units

percentUnits

Opcional. La unidad utilizada para el valor del eje devuelto. El valor predeterminado es percentUnits::pct.

Valor de devolución

Devuelve un valor int32_t de -100 a 100.

  • 100 — El eje del joystick se ha movido completamente en la dirección positiva.

  • 0 — El eje del joystick está centrado.

  • -100 — El eje del joystick se mueve completamente en la dirección negativa.

Ejemplo

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

Devolución de llamada#

changed#

changed ejecuta una función cuando la posición del joystick cambia a lo largo de ese eje.

Función disponible

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

Parámetro

Tipo

Descripción

callback

void (*)(void)

Una función que se ejecuta cada vez que la posición del joystick cambia a lo largo de ese eje.

Parámetro

Tipo

Descripción

callback

void (*)(void)

Una función de devolución de llamada previamente definida que se llama automáticamente cuando cambia el valor del eje. La función debe coincidir con la firma de devolución de llamada requerida. Consulte Funciones de devolución de llamada para obtener más información.

Return Values

Esta función no devuelve un valor.

Ejemplo

Defina la función de devolución de llamada fuera de main.

Defina la función de devolución de llamada (fuera de int main())

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

Registra la función de devolución de llamada dentro 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);
}