Кнопка#

Введение#

Класс button является производным от базового класса brain и обеспечивает доступ к кнопкам IQ (1-го поколения) Brain, позволяя вашему роботу отслеживать нажатия кнопок мозга.

Доступ#

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

Объект

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

Описание

buttonCheck

Brain.buttonCheck.pressing()

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

buttonLeft

Brain.buttonLeft.pressing()

Левая кнопка

buttonRight

Brain.buttonRight.pressing()

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

Примечания#

  • Объект «кнопка button предоставляется мозгом. Он не создается напрямую.

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

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

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

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

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

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

// Create a brain instance
brain();

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 check 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 check button is pressed
  Brain.buttonCheck.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);
}

pressing#

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

Available Functions
bool pressing() const;

Parameters

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

Return Values

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

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

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

Examples

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

  • 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);
}