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.

La parte delantera y trasera del controlador V5 con los botones resaltados en amarillo. En la superficie del controlador hay botones de flecha arriba, abajo, izquierda y derecha a la izquierda, y botones X, A, B, Y en el sentido de las agujas del reloj desde las 12 en punto a la derecha. En la parte posterior del controlador se encuentran L1, L2, R1 y R2 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

ButtonA

Controller.ButtonA.pressing()

El botón A.

ButtonB

Controller.ButtonB.pressing()

El botón B.

ButtonX

Controller.ButtonX.pressing()

El botón X.

ButtonY

Controller.ButtonY.pressing()

El botón Y.

ButtonDown

Controller.ButtonDown.pressing()

El botón Abajo.

ButtonUp

Controller.ButtonUp.pressing()

El botón Arriba.

ButtonLeft

Controller.ButtonLeft.pressing()

El botón izquierdo.

ButtonRight

Controller.ButtonRight.pressing()

El botón derecho.

ButtonL1

Controller.ButtonL1.pressing()

El botón L1.

ButtonL2

Controller.ButtonL2.pressing()

El botón L2.

ButtonR1

Controller.ButtonR1.pressing()

El botón R1.

ButtonR2

Controller.ButtonR2.pressing()

El botón R2.

Observaciones#

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

// 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#

presionando#

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 L1 is pressed
while (true) {
  if (Controller.ButtonL1.pressing()) {
    Drivetrain.turn(right);
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

Devoluciones de llamada#

presionado#

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 A is pressed
void driveForward() {
  Drivetrain.driveFor(forward, 100, mm);
}

Registre la devolución de llamada dentro de main.

int main() {
  vexcodeInit();

  // Run driveForward when A is pressed
  Controller.ButtonA.pressed(driveForward);
}

liberado#

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 A is released
void stopDriving() {
  Drivetrain.stop();
}

Registre la devolución de llamada dentro de main.

int main() {
  vexcodeInit();

  // Run stopDriving when A is released
  Controller.ButtonA.released(stopDriving);
}