Вісь#

Вступ#

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

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

Контролер IQ 1-го покоління з виділеними чотирма осями джойстика.

Доступ#

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

Об’єкт осі

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

Опис

Axis1

Controller.Axis1.position()

Правий джойстик по горизонтальній осі.

Axis2

Controller.Axis2.position()

Вертикальна вісь правого джойстика.

Axis3

Controller.Axis3.position()

Вертикальна вісь лівого джойстика.

Axis4

Controller.Axis4.position()

Ліва горизонтальна вісь джойстика.

Нотатки#

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

  • position повертає значення від -100 до 100.

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

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

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

Отримувач — Зчитує положення осі джойстика.

  • position — Повертає положення осі джойстика.

Зворотний виклик — Запускає функцію, коли положення джойстика змінюється вздовж осі.

  • changed — Виконує функцію, коли положення джойстика змінюється вздовж цієї осі.

Геттер#

position#

position повертає положення осі джойстика як значення від -100 до 100.

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

int32_t position(percentUnits units = percentUnits::pct) const;

Параметр

Тип

Опис

units

percentUnits

Необов’язково. Одиниця вимірювання, яка використовується для повернутого значення осі. Значення за замовчуванням — percentUnits::pct.

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

Повертає значення int32_t від -100 до 100.

  • 100 — Вісь джойстика повністю переміщена в позитивному напрямку.

  • 0 — Вісь джойстика центрована.

  • -100 — Вісь джойстика повністю переміщена в негативному напрямку.

Приклад

// Turn with the left joystick
while (true) {
  if (Controller.Axis4.position() > 10) {
    Drivetrain.turn(right);
  }
  else if (Controller.Axis4.position() < -10) {
    Drivetrain.turn(left);
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

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

changed#

changed запускає функцію, коли положення джойстика змінюється вздовж цієї осі.

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

void changed(void (* callback)(void)) const;

Параметр

Тип

Опис

callback

void (*)(void)

Функція, яка запускається щоразу, коли положення джойстика змінюється вздовж цієї осі.

Параметр

Тип

Опис

callback

void (*)(void)

Попередньо визначена функція зворотного виклику, яка викликається автоматично, коли значення осі змінюється. Функція повинна відповідати необхідному підпису зворотного виклику. Див. Функції зворотного виклику для отримання додаткової інформації.

Return Values

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

Приклад

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

Визначити функцію зворотного виклику (поза int main())

// Play a sound when the left joystick moves
 void sounds() {
     Brain.playSound(siren);
     wait(1, seconds);
 }

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

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

  // Call the function when the left joystick moves
  Controller.Axis4.changed(sounds);
}