Вісь#

Вступ#

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

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

Контролер IQ 2-го покоління з виділеними чотирма осями джойстика. На лівому джойстику вісь 3 вертикальна, а вісь 4 горизонтальна. На правому джойстику вісь 1 горизонтальна, а вісь 2 вертикальна.

Доступ#

Клас контролера 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)

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

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

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

Приклад

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

// Play a sound when the left joystick moves
void playSound() {
  Brain.playSound(siren);
}

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

int main() {
  vexcodeInit();

  // Run playSound when the joystick's position changes along Axis4
  Controller.Axis4.changed(playSound);
}