Eje#

Introducción#

The axis class is derived from the controller base class and provides access to the EXP Controller’s joysticks, allowing your robot to monitor changes in position along the four available axes.

Un controlador VEX EXP con los ejes alrededor de los joysticks etiquetados. Los ejes 1 y 2 están alrededor del joystick derecho, y los ejes 3 y 4 están alrededor del izquierdo.

Acceso#

The controller class provides four axis objects (Axis1Axis4). Each object is an instance of the axis class and can be accessed through a controller instance.

Objeto Eje

Ejemplo de uso

Descripción

Axis1

Controller.Axis1

Eje horizontal del joystick derecho.

Axis2

Controller.Axis2

Eje vertical del joystick derecho.

Axis3

Controller.Axis3

Eje vertical del joystick izquierdo.

Axis4

Controller.Axis4

Eje horizontal del joystick izquierdo.

Notas#

  • The axis object is provided by the controller. It is not constructed directly.

Funciones de los miembros#

The Axis class includes the following member functions:

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

  • cambiado — Registra una función que se llamará cuando cambie la posición del joystick.

Before calling any axis member functions, a controller instance must be created, as shown below:

// Create an EXP controller instance
controller Controller = controller();

posición#

Devuelve la posición de un eje del joystick como un número entero entre -100 y 100, que representa un porcentaje.

Available Functions
int32_t  position( 
  percentUnits units = percentUnits::pct ) const

Parameters

Parámetro

Tipo

Descripción

units

percentUnits

The unit that represents the position:

  • percent / pct — percent

Return Values

This function returns an int32_t as a percent from -100 to 100.

Examples

Esta función se puede llamar en cualquier objeto de eje del controlador, por ejemplo:

  • Controller.Axis1
  • Controller.Axis2
  • Controller.Axis3
  • Controller.Axis4
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);
}

cambió#

Registra una función de devolución de llamada que se ejecuta cuando cambia la posición de un eje del joystick.

Available Functions

The controller provides four axis objects (Axis1Axis4):

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

Parameters

Parámetro

Tipo

Descripción

callback

void (*)(void)

Función de devolución de llamada previamente definida que se ejecuta 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 ningún valor.

Examples

Esta función se puede llamar en cualquier objeto de eje del controlador, por ejemplo:

  • Controller.Axis1
  • Controller.Axis2
  • Controller.Axis3
  • Controller.Axis4

Define the callback function (outside of int main())

// Play a rumble pattern when the left joystick moves
void rumblePattern() {
    Controller.rumble("..--");
    wait(1, seconds);
}

Register the callback inside int main()

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

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