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:
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 |
|---|---|---|
|
|
Opcional. El tipo de controlador a crear: |
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 |
|---|---|---|
|
|
El tipo de controlador que se crea:
|
Observaciones#
Only one
primaryand onepartnercontroller 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 |
|---|---|---|
|
|
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 |
|---|---|
|
Habilita las acciones configuradas por el controlador. |
|
Desactiva las acciones configuradas por el controlador. |
true- Controller-configured actions are enabled.false- Controller-configured actions are disabled.
Las acciones configuradas por el controlador están habilitadas de forma predeterminada.
Esta variable solo funcionará cuando se utiliza VEXcode.
// 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;