Botão#

Introdução#

A classe button é uma classe derivada da classe controller. Fornece acesso aos estados do botão do Controller e aos callbacks 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 traseira do Controlador V5 com os botões destacados a amarelo. Na superfície do controlador estão os botões de seta para cima, para baixo, para a esquerda e para a direita à esquerda, e os botões X, A, B e Y no sentido dos ponteiros do relógio a partir das 12 horas à direita. Na parte traseira do comando estão L1, L2, R1 e R2 nos lados esquerdo e direito, respectivamente.

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.

ButtonX

Controller.ButtonX.pressing()

O botão X.

ButtonY

Controller.ButtonY.pressing()

O botão Y.

ButtonDown

Controller.ButtonDown.pressing()

O botão para baixo.

ButtonUp

Controller.ButtonUp.pressing()

O botão para cima.

ButtonLeft

Controller.ButtonLeft.pressing()

O botão Esquerda.

ButtonRight

Controller.ButtonRight.pressing()

O botão Direito.

ButtonL1

Controller.ButtonL1.pressing()

O botão L1.

ButtonL2

Controller.ButtonL2.pressing()

O botão L2.

ButtonR1

Controller.ButtonR1.pressing()

O botão R1.

ButtonR2

Controller.ButtonR2.pressing()

O botão R2.

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#

pressionando#

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#

pressionado#

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

Registe o retorno de chamada dentro de main.

int main() {
  vexcodeInit();

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

lançado#

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

Registe o retorno de chamada dentro de main.

int main() {
  vexcodeInit();

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