Controlador#

Introducción#

La clase controller representa un controlador VEX EXP conectado al EXP Brain. Un objeto controller se puede usar para acceder a los valores de los ejes del joystick, leer los estados de los botones, registrar las funciones de devolución de llamada de los botones o del joystick, hacer vibrar el controlador y comprobar si está conectado.

VEX EXP es compatible con el controlador V5. Consulte la API del controlador V5 para obtener más información.

Cuando se configuran uno o más controladores en la ventana Dispositivos, VEXcode EXP también proporciona RemoteControlCodeEnabled. Esta variable global habilita o deshabilita las acciones del controlador configuradas en el menú Dispositivos.

Clases derivadas#

La clase controller proporciona las siguientes clases derivadas:

  • Axis: proporciona acceso a los valores de entrada del eje del joystick y a los eventos de cambio.

  • Button: proporciona acceso a las devoluciones de llamada del estado del botón y del evento del botón.

Constructores#

1 - Crea un controlador utilizando el tipo de controlador principal. Normalmente se utiliza cuando se conecta un solo controlador.

controller();

2 - Crea un controlador para el tipo de controlador especificado. Se utiliza cuando hay dos controladores conectados.

controller(
    controllerType id );

Funciones disponibles

controller();

controller(controllerType id);

Parámetro

Tipo

Descripción

id

controllerType

Opcional. El tipo de controlador a crear: primary para el controlador primario conectado al cerebro o partner para el segundo controlador conectado al cerebro.

Notas

Only one primary controller and one partner controller can be created in a single project.

Ejemplo

// Create the primary controller
controller Controller1 = controller();

// Create a partner controller
controller Controller2 = controller(partner);

Destructor#

~controlador#

~controller destruye el objeto controller y libera los recursos asociados.

Función disponible

~controller();

Parámetros#

Parámetro

Tipo

Descripción

id

controllerType

El tipo de controlador que se crea:

  • primary - El controlador primario conectado al cerebro.
  • partner - El socio (segundo) controlador conectado al cerebro.

Observaciones#

  • Only one primary and one partner controller may exist in a single project.

Ejemplo#

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

Funciones de los miembros#

La clase controlador controller incluye las siguientes funciones miembro:

  • rumble: hace sonar el controlador usando un patrón.

  • installed - Comprueba si el controlador está conectado al cerebro.

estruendo#

el rumble hace que el controlador vibre usando un patrón. En la cadena de patrones, los puntos son vibraciones cortas, los guiones son vibraciones largas y los espacios son pausas.

Función disponible

void rumble(const char *str);

Parámetro

Tipo

Descripción

str

const char *

Una cadena hecha de puntos, guiones y espacios que representan el patrón de estruendo.

Valor de devolución

Esta función no devuelve un valor.

Ejemplo

// Rumble with a short-short-long pattern
Controller1.rumble("..-");

Getter#

instalado#

installed devuelve si el controlador está conectado al Brain.

Función disponible

bool installed();

Parámetros

Esta función no tiene parámetros.

Valor de devolución

Devuelve un valor booleano.

  • true - The controller is installed/connected.
  • false - The controller is not installed/connected.

Variables Globales#

RemoteControlCodeEnabled#

RemoteControlCodeEnabled habilita o deshabilita las acciones del controlador configuradas en el menú Dispositivos. Las acciones configuradas por el controlador están habilitadas de forma predeterminada.

Usage:
RemoteControlCodeEnabled = state;

Valor

Descripción

true

Habilita las acciones configuradas por el controlador.

false

Desactiva las acciones configuradas por el controlador.

Values
  • true - Controller-configured actions are enabled.
  • false - Controller-configured actions are disabled.
Notes
  • Las acciones configuradas por el controlador están habilitadas de forma predeterminada.

  • Esta variable solo funcionará cuando se utiliza VEXcode.

Examples
// Drive forward or backward using the left joystick
RemoteControlCodeEnabled = false;

while (true) {
  if (Controller1.Axis3.position() > 0) {
    Drivetrain.drive(forward);
  }
  else if (Controller1.Axis3.position() < 0) {
    Drivetrain.drive(reverse);
  }
  // Press A to use controller configured actions again
  else if (Controller1.ButtonA.pressing()) {
    break;
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

RemoteControlCodeEnabled = true;