Контролер#

Вступ#

Клас controller представляє контролер VEX V5, підключений до V5 Brain. Об’єкт controller може використовуватися для доступу до значень осі джойстика, зчитування станів кнопок, реєстрації зворотних викликів кнопок або джойстика, створення гудіння контролера, запису на екран контролера та перевірки підключення контролера.

VEX V5 сумісний з контролером EXP. Див. API контролера EXP для отримання додаткової інформації.

Коли у вікні «Пристрої» налаштовано один або декілька контролерів, VEXcode V5 також надає значення RemoteControlCodeEnabledЦя глобальна змінна вмикає або вимикає дії контролера, налаштовані в меню «Пристрої».

Похідні класи#

Клас controller надає такі похідні класи:

  • Axis – Надає доступ до вхідних значень осі джойстика та подій зміни.

  • Button – Надає доступ до зворотних викликів стану кнопки та подій кнопки.

  • Screen – Надає функції для запису тексту на екран контролера.

Конструктори#

1 - Створює контролер, використовуючи тип основного контролера. Зазвичай використовується, коли підключено один контролер.

controller();

2 - Створює контролер для вказаного типу контролера. Використовується, коли підключено два контролери.

controller(
    controllerType id );

Доступні функції

controller();

controller(controllerType id);

Параметр

Тип

Опис

id

controllerType

Необов’язково. Тип контролера для створення: primary для первинного контролера, підключеного до мозку, або partner для другого контролера, підключеного до мозку.

Примітки

В одному проєкті можна створити лише одного основного контролера primary та одного партнерського контролера partner.

Приклад

// Create the primary Controller
controller Controller1 = controller();

// Create a partner Controller
controller Controller2 = controller(partner);

Деструктор#

~контролер#

~controller знищує об’єкт контролера controller ресурси.

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

~controller();

Параметри#

Параметр

Тип

Опис

id

controllerType

Тип створюваного контролера:

  • primary – Первинний контролер, підключений до мозку.
  • partner – Партнерський (другий) контролер, підключений до мозку.

Нотатки#

  • В одному проєкті може існувати лише один primary та один partner контролер.

Приклад#

// Create a V5 controller instance
controller Controller = controller();

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

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

  • rumble – Гуркіт контролера за допомогою шаблону.

  • installed - Перевіряє, чи контролер підключений до мозку.

гуркіт#

rumble змушує контролер вібрувати за певним вібраційним шаблоном. У рядку шаблону крапки – це короткі вібрації, тире – довгі вібрації, а пробіли – паузи.

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

void rumble(const char *str);

Параметр

Тип

Опис

str

const char *

Рядок, що складається з крапок, тире та пробілів, що представляють візерунок гриму.

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

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

Приклад

// Rumble with a short-short-long pattern
Controller1.rumble("..-");

Геттер#

встановлено#

installed повертає, чи підключено контролер до мозку.

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

bool installed();

Параметри

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

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

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

  • true - The controller is installed/connected.
  • false - The controller is not installed/connected.

Глобальні змінні#

Код віддаленого керування увімкнено#

RemoteControlCodeEnabled вмикає або вимикає дії контролера, налаштовані в меню «Пристрої». Дії, налаштовані контролером, увімкнено за замовчуванням.

Usage:
RemoteControlCodeEnabled = state;

Значення

Опис

true

Вмикає дії, налаштовані контролером.

false

Вимикає дії, налаштовані контролером.

Values
  • true - Controller-configured actions are enabled.
  • false - Controller-configured actions are disabled.
Notes
  • Дії, налаштовані контролером, увімкнено за замовчуванням.

Examples
// Drive forward or backward using the left joystick
RemoteControlCodeEnabled = false;

while (true) {
  if (Controller1.Axis3.position() > 0) {
    Drivetrain.drive(forward);
  }
  else if (Controller1.Axis3.position() < 0) {
    Drivetrain.drive(reverse);
  }
  // Press A to use Controller configured actions again
  else if (Controller1.ButtonA.pressing()) {
    break;
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

RemoteControlCodeEnabled = true;