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.

El controlador IQ con todos los botones resaltados.

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

ButtonEDown

Controller.ButtonEDown.pressing()

El botón * ▼*E * *.

ButtonEUp

Controller.ButtonEUp.pressing()

El botón * ▲*E * *.

ButtonFDown

Controller.ButtonFDown.pressing()

El botón * ▼*F * *.

ButtonFUp

Controller.ButtonFUp.pressing()

El botón * ▲*F * *.

ButtonLDown

Controller.ButtonLDown.pressing()

El botón * ▼*L * *.

ButtonLUp

Controller.ButtonLUp.pressing()

El botón * ▲*L * *.

ButtonRDown

Controller.ButtonRDown.pressing()

El botón * ▼*R * *.

ButtonRUp

Controller.ButtonRUp.pressing()

El botón * ▲*R * *.

ButtonL3

Controller.ButtonL3.pressing()

El botón Palanca de mando izquierda. Solo controlador IQ (2da generación).

ButtonR3

Controller.ButtonR3.pressing()

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 controlador controller.

  • Los botones ButtonL3 y ButtonR3 solo 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.

  • pressed — Registra una función para ejecutar cuando se presiona el botón.

  • released — Registra una función para ejecutarse cuando se suelta el 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

callback

void (*)(void)

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

callback

void (*)(void)

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