Кнопка#
Введение#
Класс button является производным классом от класса controller. Он предоставляет доступ к состояниям кнопок контроллера и обратным вызовам событий кнопок.
Доступ к объекту кнопки button осуществляется через объект контроллера controller . Он не создается напрямую.

Доступ#
The controller class provides the following button objects. Each object is an instance of the button class.
Объект |
Пример использования |
Описание |
|---|---|---|
|
|
Кнопка E ▼. |
|
|
Кнопка E ▲. |
|
|
Кнопка F ▼. |
|
|
Кнопка F ▲. |
|
|
Кнопка левого джойстика. Только для контроллера IQ (2-го поколения). |
|
|
Кнопка L ▼. |
|
|
Кнопка L ▲. |
|
|
Кнопка правого джойстика. Только для контроллера IQ (2-го поколения). |
|
|
Кнопка R ▼. |
|
|
Кнопка R ▲. |
Примечания#
Перед использованием функции-члена
button, создайте объект контроллераcontroller.Кнопки
ButtonL3иButtonR3доступны только на контроллере IQ (2-го поколения).
// Create a controller object
controller Controller = controller();
Функции участников#
Класс button включает следующие функции-члены:
Геттер — Считывает состояние кнопки.
pressing— Возвращает значение, указывающее, нажата ли кнопка.
Обратные вызовы — Запускают функции при возникновении событий нажатия кнопки.
Геттер#
pressing#
Нажатие клавиши pressing возвращает значение, указывающее, нажата ли кнопка в данный момент.
Доступная функция
bool pressing() const;
Параметры
Эта функция не имеет параметров.
Возвращаемая стоимость
Возвращает логическое значение.
true— Кнопка нажата.false— Кнопка не нажата.
Пример
// Turn right while R Up is pressed
while (true) {
if (Controller.ButtonRUp.pressing()) {
Drivetrain.turn(right);
}
else {
Drivetrain.stop();
}
wait(20, msec);
}
Обратные звонки#
pressed#
pressed регистрирует функцию, которая выполняется при нажатии кнопки.
Доступная функция
void pressed(void (* callback)(void)) const;
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Функция, которая выполняется при нажатии кнопки. |
Возвращаемая стоимость
Эта функция не возвращает значения.
Пример
Определите функцию обратного вызова вне блока main.
// Drive forward when F Up is pressed
void driveForward() {
Drivetrain.driveFor(forward, 100, mm);
}
Зарегистрируйте функцию обратного вызова внутри main.
int main() {
vexcodeInit();
// Run driveForward when F Up is pressed
Controller.ButtonFUp.pressed(driveForward);
}
released#
released регистрирует функцию, которая выполняется при отпускании кнопки.
Доступная функция
void released(void (* callback)(void)) const;
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Функция, которая выполняется при отпускании кнопки. |
Возвращаемая стоимость
Эта функция не возвращает значения.
Пример
Определите функцию обратного вызова вне блока main.
// Stop the drivetrain when F Up is released
void stopDriving() {
Drivetrain.stop();
}
Зарегистрируйте функцию обратного вызова внутри main.
int main() {
vexcodeInit();
// Run stopDriving when F Up is released
Controller.ButtonFUp.released(stopDriving);
}