Botão#

Introdução#

A classe button é uma classe derivada da classe controller. Fornece acesso aos estados do botão do controlador e aos retornos de chamada de eventos do botão.

Um objeto do tipo botão button é acedido através de um objeto do tipo controlador controller . Não é construído diretamente.

A parte frontal e superior do Controlador EXP com os joysticks, botões de setas e botões de ação destacados a amarelo. Na superfície do comando, existem dois joysticks à esquerda e à direita, com botões de seta para cima e para baixo à esquerda e botões A e B à direita. Na parte superior do comando, estão L1 e L2 do lado esquerdo e R1 e R2 do lado direito.

Acesso#

The controller class provides the following button objects. Each object is an instance of the button class.

Objeto

Exemplo de utilização

Descrição

ButtonA

Controller.ButtonA.pressing()

O botão A.

ButtonB

Controller.ButtonB.pressing()

O botão B.

ButtonDown

Controller.ButtonDown.pressing()

O botão para baixo.

ButtonUp

Controller.ButtonUp.pressing()

O botão para cima.

ButtonL1

Controller.ButtonL1.pressing()

O botão L1.

ButtonL2

Controller.ButtonL2.pressing()

O botão L2.

ButtonL3

Controller.ButtonL3.pressing()

O botão L3.

ButtonR1

Controller.ButtonR1.pressing()

O botão R1.

ButtonR2

Controller.ButtonR2.pressing()

O botão R2.

ButtonR3

Controller.ButtonR3.pressing()

O botão R3.

Notas#

  • Antes de utilizar uma função membro do botão button , crie um objeto controlador controller.

// Create a controller object
controller Controller = controller();

Funções de membro#

A classe do botão button inclui as seguintes funções membro:

Getter — Lê o estado do botão.

  • pressing — Retorna se o botão está a ser premido.

Callbacks — Executam funções quando ocorrem eventos de botões.

  • pressed — Regista uma função a ser executada quando o botão é premido.

  • released — Regista uma função a ser executada quando o botão é libertado.

Getter#

pressing#

pressing returns whether the button is currently being pressed.

Função disponível

bool pressing() const;

Parâmetros

Esta função não tem parâmetros.

Valor de Retorno

Retorna um valor booleano.

  • true — O botão está a ser premido.

  • false — O botão não está a ser premido.

Exemplo

// Turn right while L1 is pressed
while (true) {
  if (Controller.ButtonL1.pressing()) {
    Drivetrain.turn(right);
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

Retornos de chamada#

pressed#

pressed regista uma função que é executada quando o botão é premido.

Função disponível

void pressed(void (* callback)(void)) const;

Parâmetro

Tipo

Descrição

callback

void (*)(void)

Uma função que é executada quando o botão é pressionado.

Valor de Retorno

Esta função não devolve qualquer valor.

Exemplo

Defina a função de retorno de chamada fora de main.

// Drive forward when R1 is pressed
void driveForward() {
  Drivetrain.driveFor(forward, 200, mm);
}

Registe o retorno de chamada dentro de main.

int main() {
  vexcodeInit();

  // Run driveForward when R1 is pressed
  Controller.ButtonR1.pressed(driveForward);
}

released#

released regista uma função que é executada quando o botão é libertado.

Função disponível

void released(void (* callback)(void)) const;

Parâmetro

Tipo

Descrição

callback

void (*)(void)

Uma função que é executada quando o botão é libertado.

Valor de Retorno

Esta função não devolve qualquer valor.

Exemplo

Defina a função de retorno de chamada fora de main.

// Stop the drivetrain when R1 is released
void stopDriving() {
  Drivetrain.stop();
}

Registe o retorno de chamada dentro de main.

int main() {
  vexcodeInit();

  // Run stopDriving when R1 is released
  Controller.ButtonR1.released(stopDriving);
}