Ось#

Введение#

Класс 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);
}