Ось#

Введение#

Класс axis является производным классом от класса controller. Он предоставляет доступ к значениям осей джойстика Controller и функциям обратного вызова для изменения осей джойстика.

Доступ к объекту с осью axis осуществляется через объект контроллера controller . Он не создается напрямую.

Контроллер VEX V5 с обозначенными осями вокруг джойстиков. Ось 1 и 2 расположены вокруг правого джойстика, а ось 3 и 4 — вокруг левого.

Доступ#

Класс контроллера 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 возвращает положение оси джойстика в виде значения от -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 запускает функцию при изменении положения джойстика вдоль этой оси.

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

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

Параметр

Тип

Описание

callback

void (*)(void)

Функция, которая будет выполняться каждый раз при изменении положения джойстика вдоль данной оси.

Возвращаемая стоимость

Эта функция не возвращает значения.

Пример

Определите функцию обратного вызова вне блока main.

// Rumble when the left joystick moves
void controllerRumble() {
  Controller.rumble(".");
}

Зарегистрируйте функцию обратного вызова внутри main.

int main() {
  vexcodeInit();

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