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 devoluciones 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.

Una vista lateral frontal y posterior del controlador IQ de segunda generación con todos los botones resaltados en amarillo. La superficie del controlador contiene dos botones de joystick en las esquinas superior izquierda y derecha, con E arriba y abajo debajo del joystick izquierdo y F arriba y abajo debajo del derecho. En la parte posterior del controlador hay L arriba y abajo y R arriba y abajo en los lados izquierdo y derecho, respectivamente.

Acceso#

La clase controller proporciona los siguientes objetos de botón. Cada objeto es una instancia de la clase 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 * *.

ButtonL3

Controller.ButtonL3.pressing()

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

ButtonLDown

Controller.ButtonLDown.pressing()

El botón * ▼*L * *.

ButtonLUp

Controller.ButtonLUp.pressing()

El botón * ▲*L * *.

ButtonR3

Controller.ButtonR3.pressing()

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

ButtonRDown

Controller.ButtonRDown.pressing()

El botón * ▼*R * *.

ButtonRUp

Controller.ButtonRUp.pressing()

El botón * ▲*R * *.

Observaciones#

  • Antes de usar una función miembro del botón button , cree un objeto controlador controller.

  • ButtonL3 y ButtonR3 están disponibles en el controlador IQ (segunda 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á presionando el botón.

Devoluciones de llamada: ejecuta funciones cuando ocurren eventos de botón.

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

  • released — Registra una función para que se ejecute cuando se suelta el botón.

Getter#

pressing#

pressing devuelve si el botón se está presionando actualmente.

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á presionando el botón.

  • false — No se presiona el botón.

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

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

Registre la devolución de llamada dentro de main.

int main() {
  vexcodeInit();

  // Run stopDriving when F Up is released
  Controller.ButtonFUp.released(stopDriving);
}