Кнопка#
Введение#
Класс button является производным от базового класса brain и обеспечивает доступ к кнопкам IQ (1-го поколения) Brain, позволяя вашему роботу отслеживать нажатия кнопок мозга.
Доступ#
Класс brain предоставляет двенадцать объектов-кнопок. Каждый объект является экземпляром класса button и может быть доступен через экземпляр brain.
Объект |
Пример использования |
Описание |
|---|---|---|
|
|
Отметьте кнопку |
|
|
Левая кнопка |
|
|
Правая кнопка |
Примечания#
Объект «кнопка
buttonпредоставляется мозгом. Он не создается напрямую.
Функции участников#
Класс Button включает следующие функции-члены:
pressed— Регистрирует функцию, которая будет вызвана при нажатии указанной кнопки.released— Регистрирует функцию, которая будет вызвана при отпускании указанной кнопки.pressing— Возвращает значение, указывающее, нажата ли указанная кнопка.
Перед вызовом любых функций-членов button необходимо создать экземпляр brain , как показано ниже:
// Create a brain instance
brain();
pressed#
Регистрирует функцию обратного вызова, которая запускается при нажатии определенной кнопки в мозге.
Available Functionsvoid pressed(
void (* callback)(void) ) const;
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Функция, которая вызывается при нажатии указанной кнопки. |
Эта функция не возвращает значения.
ExamplesЭту функцию можно вызвать для любого объекта типа «кнопка мозга», например:
Brain.buttonCheckBrain.buttonLeftBrain.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 Functionsvoid released(
void (* callback)(void) ) const;
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Функция, которая вызывается при отпускании указанной кнопки. |
Эта функция не возвращает значения.
ExamplesЭту функцию можно вызвать для любого объекта типа «кнопка мозга», например:
Brain.buttonCheckBrain.buttonLeftBrain.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 Functionsbool pressing() const;
Эта функция не принимает никаких параметров.
Return ValuesВозвращает логическое значение, указывающее, нажата ли указанная кнопка:
true— Кнопка нажата.false— Кнопка не нажата.
Эту функцию можно вызвать для любого объекта типа «кнопка мозга», например:
Brain.buttonCheckBrain.buttonLeftBrain.buttonRight
// Turn right while right is pressed
while (true) {
if (Brain.buttonRight.pressing()) {
Drivetrain.turn(right);
} else {
Drivetrain.stop();
}
wait(5, msec);
}