Контроллер#

Введение#

Класс 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 для второго контроллера, подключенного к «мозгу».

Примечания

Only one primary Controller and one partner Controller can be created in a single project.

Пример

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

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

Деструктор#

~контроллер#

~controller уничтожает объект controller и освобождает связанные с ним ресурсы.

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

~controller();

Параметры#

Параметр

Тип

Описание

id

controllerType

Тип создаваемого контроллера:

  • primary - Основной контроллер, подключенный к «Мозгу».
  • partner - Партнерский (второй) контроллер, подключенный к «Мозгу».

Примечания#

  • Only one primary and one partner controller may exist in a single project.

Пример#

// 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#

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;