Botón#
Introducción#
La clase button es una clase derivada de la clase controller. Proporciona acceso a los estados de los botones del controlador y a las funciones de devolución de llamada de los eventos de los botones.
Se accede a un objeto button a través de un objeto controller No se construye directamente.
El controlador IQ (1.ª generación) tiene ocho botones principales. Si se conecta un controlador IQ (2.ª generación) al módulo IQ (1.ª generación), también se pueden usar los botones del joystick ButtonL3 y ButtonR3.

Acceso#
La clase controlador controller proporciona los siguientes objetos de botón. Cada objeto es una instancia de la clase botón button.
Objeto |
Ejemplo de uso |
Descripción |
|---|---|---|
|
|
El botón * ▼*E * *. |
|
|
El botón * ▲*E * *. |
|
|
El botón * ▼*F * *. |
|
|
El botón * ▲*F * *. |
|
|
El botón * ▼*L * *. |
|
|
El botón * ▲*L * *. |
|
|
El botón * ▼*R * *. |
|
|
El botón * ▲*R * *. |
|
|
El botón Palanca de mando izquierda. Solo controlador IQ (2da generación). |
|
|
El botón Palanca de mando derecha. Solo controlador IQ (2da generación). |
Observaciones#
Antes de usar una función miembro del botón
button, cree un objeto controladorcontroller.Los botones
ButtonL3yButtonR3solo están disponibles cuando se conecta un controlador IQ (2.ª generación).
// Create a controller object
controller Controller = controller();
Funciones de los miembros#
La clase button incluye las siguientes funciones miembro:
Getter — Estado del botón de lectura.
pressing— Devuelve si se está pulsando el botón.
Devoluciones de llamada: ejecuta funciones cuando ocurren eventos de botón.
Getter#
pressing#
Al pulsar pressing se devuelve si el botón está siendo pulsado en ese momento.
Función disponible
bool pressing() const;
Parámetros
Esta función no tiene parámetros.
Valor de devolución
Devuelve un valor booleano.
true— Se está pulsando el botón.false— El botón no está siendo presionado.
Ejemplo
// Turn right while R Up is pressed
while (true) {
if (Controller.ButtonRUp.pressing()) {
Drivetrain.turn(right);
}
else {
Drivetrain.stop();
}
wait(20, msec);
}
Devoluciones de llamada#
pressed#
pressed registra una función que se ejecuta cuando se pulsa el botón.
Función disponible
void pressed(void (* callback)(void)) const;
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
Una función que se ejecuta cuando se presiona el botón. |
Valor de devolución
Esta función no devuelve un valor.
Ejemplo
Defina la función de devolución de llamada fuera de main.
// Drive forward when F Up is pressed
void driveForward() {
Drivetrain.driveFor(forward, 100, mm);
}
Registra la devolución de llamada dentro de main.
int main() {
vexcodeInit();
// Run driveForward when F Up is pressed
Controller.ButtonFUp.pressed(driveForward);
}
released#
released registra una función que se ejecuta cuando se suelta el botón.
Función disponible
void released(void (* callback)(void)) const;
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
Función que se ejecuta cuando se suelta el botón. |
Valor de devolución
Esta función no devuelve un valor.
Ejemplo
Defina la función de devolución de llamada fuera de main.
// Stop the drivetrain when F Up is released
void stopDriving() {
Drivetrain.stop();
}
Registra la devolución de llamada dentro de main.
int main() {
vexcodeInit();
// Run stopDriving when F Up is released
Controller.ButtonFUp.released(stopDriving);
}