Botão#

Introdução#

A classe button é derivada da classe base brain e fornece acesso aos botões do Brain IQ (2ª geração), permitindo ao seu robô monitorizar as pressões nos botões do cérebro.

Acesso#

A classe brain fornece doze objetos de botão. Cada objeto é uma instância da classe button e pode ser acedido através de uma instância de brain.

Objeto

Exemplo de utilização

Descrição

buttonCheck

Brain.buttonCheck.pressing()

Botão de verificação

buttonLeft

Brain.buttonLeft.pressing()

Botão esquerdo

buttonRight

Brain.buttonRight.pressing()

Botão direito

Notas#

  • O objeto botão button é fornecido pelo cérebro. Não é construído diretamente.

Funções de membro#

A classe Button inclui as seguintes funções membro:

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

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

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

Antes de chamar qualquer função membro de button , deve ser criada uma instância brain , como se mostra abaixo:

// Create a brain instance
brain();

pressed#

Regista uma função de retorno de chamada que é executada quando um botão específico do cérebro é premido.

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

Parameters

Parâmetro

Tipo

Descrição

callback

void (*)(void)

Uma função que é chamada quando o botão especificado é premido.

Return Values

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

Examples

Esta função pode ser chamada em qualquer objeto de botão cerebral, por exemplo:

  • Brain.buttonCheck
  • Brain.buttonLeft
  • Brain.buttonRight

Defina a função de callback (fora de int main())

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

Registe o callback dentro de int main()

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Call driveForward when the check button is pressed
  Brain.buttonCheck.pressed(driveForward);
}

released#

Regista uma função de retorno de chamada que é executada quando um botão específico do cérebro é libertado.

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

Parâmetros#

Parâmetro

Tipo

Descrição

callback

void (*)(void)

Uma função que é chamada quando o botão especificado é libertado.

Return Values

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

Examples

Esta função pode ser chamada em qualquer objeto de botão cerebral, por exemplo:

  • Brain.buttonCheck
  • Brain.buttonLeft
  • Brain.buttonRight

Defina a função de callback (fora de int main())

// Drive backward when the left button is released
void backUp() {
    Drivetrain.driveFor(reverse, 100, mm);
}

Registe o callback dentro de int main()

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Call backUp when the left button is released
  Brain.buttonLeft.released(backUp);
}

pressing#

Retorna se um botão específico do cérebro está a ser pressionado no momento.

Available Functions
bool pressing() const;

Parameters

Esta função não aceita qualquer parâmetro.

Return Values

Retorna um valor booleano indicando se o botão especificado está a ser premido:

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

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

Examples

Esta função pode ser chamada em qualquer objeto de botão cerebral, por exemplo:

  • Brain.buttonCheck
  • Brain.buttonLeft
  • Brain.buttonRight
// Turn right while right is pressed
while (true) {
    if (Brain.buttonRight.pressing()) {
        Drivetrain.turn(right);
    } else {
        Drivetrain.stop();
    }
    wait(5, msec);
}