Контроллер#
Введение#
Класс controller представляет собой контроллер VEX V5, подключенный к V5 Brain. Объект controller может использоваться для доступа к значениям осей джойстика, чтения состояний кнопок, регистрации обратных вызовов кнопок или джойстика, обеспечения вибрации контроллера, вывода информации на экран контроллера и проверки подключения контроллера.
VEX V5 совместим с контроллером EXP. Дополнительную информацию см. в API контроллера EXP.
Когда в окне «Устройства» настроен один или несколько контроллеров, VEXcode V5 также предоставляет значение RemoteControlCodeEnabledЭта глобальная переменная включает или отключает действия контроллера, настроенные в меню «Устройства».
Производные классы#
Класс контроллера controller предоставляет следующие производные классы:
Строители#
1 - Создает контроллер, используя основной тип контроллера. Обычно используется, когда подключен только один контроллер.
controller();
2 - Создает контроллер для указанного типа контроллера. Используется, когда два контроллера соединены.
controller( controllerType id );
Доступные функции
controller();
controller(controllerType id);
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Необязательно. Тип создаваемого контроллера: |
Примечания
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();
Параметры#
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Тип создаваемого контроллера:
|
Примечания#
Only one
primaryand onepartnercontroller may exist in a single project.
Пример#
// Create a V5 controller instance
controller Controller = controller();
Функции участников#
Класс контроллера controller включает следующие функции-члены:
rumble- Вибрирует контроллер, используя заданный шаблон.installed- Проверяет, подключен ли контроллер к головному мозгу.
грохот#
Параметр rumble заставляет контроллер вибрировать по заданному шаблону. В строке шаблона точки обозначают короткие вибрации, тире — длинные вибрации, а пробелы — паузы.
Доступная функция
void rumble(const char *str);
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Строка, состоящая из точек, тире и пробелов, которые представляют собой рисунок вибрации. |
Возвращаемая стоимость
Эта функция не возвращает значения.
Пример
// 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- Controller-configured actions are enabled.false- Controller-configured actions are disabled.
Действия, настроенные контроллером, включены по умолчанию.
// 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;