Кнопка#

Вступ#

Клас button є похідним класом від класу controller. Він надає доступ до станів кнопок контролера та зворотних викликів подій кнопок.

Доступ до об’єкта button здійснюється через об’єкт controller Він не створюється безпосередньо.

Передня та задня сторони контролера V5 з кнопками, виділеними жовтим кольором. На поверхні контролера розташовані кнопки зі стрілками вгору, вниз, вліво та вправо ліворуч, а також кнопки X, A, B, Y за годинниковою стрілкою від 12 годин праворуч. На задній стороні контролера розташовані L1, L2, R1 та R2 ліворуч та праворуч відповідно.

Доступ#

Клас контролера controller надає такі об’єкти кнопок. Кожен об’єкт є екземпляром класу button.

Об’єкт

Приклад використання

Опис

ButtonA

Controller.ButtonA.pressing()

Кнопка А.

ButtonB

Controller.ButtonB.pressing()

Кнопка B.

ButtonX

Controller.ButtonX.pressing()

Кнопка X.

ButtonY

Controller.ButtonY.pressing()

Кнопка Y.

ButtonDown

Controller.ButtonDown.pressing()

Кнопка Вниз.

ButtonUp

Controller.ButtonUp.pressing()

Кнопка Вгору.

ButtonLeft

Controller.ButtonLeft.pressing()

Кнопка Ліва.

ButtonRight

Controller.ButtonRight.pressing()

Кнопка Праворуч.

ButtonL1

Controller.ButtonL1.pressing()

Кнопка L1.

ButtonL2

Controller.ButtonL2.pressing()

Кнопка L2.

ButtonR1

Controller.ButtonR1.pressing()

Кнопка R1.

ButtonR2

Controller.ButtonR2.pressing()

Кнопка R2.

Нотатки#

  • Перш ніж використовувати функцію-член button , створіть об’єкт controller.

// Create a Controller object
controller Controller = controller();

Функції-члени#

Клас button містить такі функції-члени:

Геттер — Зчитування стану кнопки.

  • pressing — Повертає, чи натискається кнопка.

Зворотні виклики — Запускають функції, коли відбуваються події кнопок.

  • pressed — Реєструє функцію, яка запускається при натисканні кнопки.

  • released — Реєструє функцію, яка запускається після відпускання кнопки.

Геттер#

пресування#

pressing повертає інформацію про те, чи натиснута кнопка в даний момент.

Доступна функція

bool pressing() const;

Параметри

Ця функція не має параметрів.

Повернене значення

Повертає логічне значення.

  • true — Кнопка натискається.

  • false — Кнопка не натискається.

Приклад

// Turn right while L1 is pressed
while (true) {
  if (Controller.ButtonL1.pressing()) {
    Drivetrain.turn(right);
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

Зворотні виклики#

натиснутий#

pressed реєструє функцію, яка виконується при натисканні кнопки.

Доступна функція

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

Параметр

Тип

Опис

callback

void (*)(void)

Функція, яка виконується при натисканні кнопки.

Повернене значення

Ця функція не повертає значення.

Приклад

Визначте функцію зворотного виклику поза межами main.

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

Зареєструйте зворотний виклик всередині main.

int main() {
  vexcodeInit();

  // Run driveForward when A is pressed
  Controller.ButtonA.pressed(driveForward);
}

випущений#

released реєструє функцію, яка виконується після відпускання кнопки.

Доступна функція

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

Параметр

Тип

Опис

callback

void (*)(void)

Функція, яка виконується після відпускання кнопки.

Повернене значення

Ця функція не повертає значення.

Приклад

Визначте функцію зворотного виклику поза межами main.

// Stop the drivetrain when A is released
void stopDriving() {
  Drivetrain.stop();
}

Зареєструйте зворотний виклик всередині main.

int main() {
  vexcodeInit();

  // Run stopDriving when A is released
  Controller.ButtonA.released(stopDriving);
}