Кнопка#

Введение#

Класс button является производным от базового класса brain и предоставляет доступ к кнопкам EXP Brain, позволяя вашему роботу определять, когда его кнопки нажаты и отпущены.

Доступ#

Класс button предоставляет три объекта-кнопки. Каждый объект является экземпляром класса button и может быть доступен через экземпляр brain.

Объект

Пример использования

Описание

buttonCheck

Brain.buttonCheck.pressing()

Отметьте кнопку

buttonLeft

Brain.buttonLeft.pressing()

Левая кнопка

buttonRight

Brain.buttonRight.pressing()

Правая кнопка

Функции участников#

Класс button включает следующие функции-члены:

  • pressing — Возвращает значение, указывающее, нажата ли указанная кнопка.

  • pressed — Регистрирует функцию, которая будет вызвана при нажатии указанной кнопки.

  • released — Регистрирует функцию, которая будет вызвана при отпускании указанной кнопки.

Перед вызовом любых функций-членов button необходимо создать экземпляр brain , как показано ниже:

// Create the EXP Brain
brain Brain = brain();

pressing#

Возвращает значение, указывающее, нажата ли в данный момент конкретная кнопка в мозге.

Available Functions
bool pressing() const;

Parameters

Эта функция не принимает никаких параметров.

Return Values

Возвращает логическое значение, указывающее, нажата ли указанная кнопка:

  • true — Кнопка нажата.

  • false — Кнопка не нажата.

Examples

Эту функцию можно вызвать для любого объекта кнопки, например:

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

pressed#

Регистрирует функцию обратного вызова, которая запускается при нажатии определенной кнопки в мозге.

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

Parameters

Параметр

Тип

Описание

callback

void (*)(void)

Функция, которая вызывается при нажатии указанной кнопки.

Return Values

Эта функция не возвращает значения.

Examples

Эту функцию можно вызвать для любого объекта типа «кнопка мозга», например:

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

Определите функцию обратного вызова (вне int main())

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

Зарегистрируйте функцию обратного вызова внутри int main()

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

  // Call driveForward when the right button is pressed
  Brain.buttonRight.pressed(driveForward);
}

released#

Регистрирует функцию обратного вызова, которая запускается при отпускании определенной кнопки в мозге.

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

Parameters

Параметр

Тип

Описание

callback

void (*)(void)

Функция, которая вызывается при отпускании указанной кнопки.

Return Values

Эта функция не возвращает значения.

Examples

Эту функцию можно вызвать для любого объекта типа «кнопка мозга», например:

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

Определите функцию обратного вызова (вне int main())

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

Зарегистрируйте функцию обратного вызова внутри 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);
}