Kontroler#

Wstęp#

Klasa kontrolera controller reprezentuje kontroler VEX V5 podłączony do mózgu V5. Obiekt kontrolera controller może służyć do uzyskiwania dostępu do wartości osi joysticka, odczytywania stanów przycisków, rejestrowania wywołań zwrotnych przycisków lub joysticków, wprawiania kontrolera w ruch, zapisywania na ekranie kontrolera i sprawdzania, czy kontroler jest podłączony.

VEX V5 jest kompatybilny z kontrolerem EXP. Więcej informacji można znaleźć w API kontrolera EXP.

Gdy w oknie Urządzenia skonfigurowano jeden lub więcej kontrolerów, VEXcode V5 udostępnia również zmienną globalną RemoteControlCodeEnabledTa zmienna globalna włącza lub wyłącza akcje kontrolerów skonfigurowane w menu Urządzenia.

Klasy pochodne#

Klasa kontrolera controller udostępnia następujące klasy pochodne:

  • Axis - Zapewnia dostęp do wartości wejściowych osi joysticka i zdarzeń zmian.

  • Button - Zapewnia dostęp do stanu przycisku i wywołań zwrotnych zdarzeń przycisku.

  • Screen - Udostępnia funkcje umożliwiające pisanie tekstu na ekranie kontrolera.

Konstruktorzy#

1 - Tworzy kontroler przy użyciu typu kontrolera głównego. Zwykle używane, gdy podłączony jest jeden kontroler.

controller();

2 - Tworzy kontroler dla określonego typu kontrolera. Używane, gdy połączone są dwa kontrolery.

controller(
    controllerType id );

Dostępne funkcje

controller();

controller(controllerType id);

Parametr

Typ

Opis

id

controllerType

Opcjonalnie. Typ kontrolera do utworzenia: primary dla kontrolera podstawowego podłączonego do mózgu lub partner dla drugiego kontrolera podłączonego do mózgu.

Notatki

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

Przykład

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

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

Burzyciel#

~kontroler#

~controller niszczy obiekt kontrolera controller i zwalnia powiązane zasoby.

Dostępna funkcja

~controller();

Parametry#

Parametr

Typ

Opis

id

controllerType

Typ tworzonego kontrolera:

  • primary - podstawowy kontroler połączony z mózgiem.
  • partner - partnerski (drugi) kontroler połączony z mózgiem.

Notatki#

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

Przykład#

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

Funkcje członkowskie#

Klasa kontrolera controller zawiera następujące funkcje członkowskie:

huk#

rumble powoduje, że kontroler wibruje zgodnie z określonym wzorcem. W ciągu wzorców kropki oznaczają krótkie wibracje, kreski – długie wibracje, a spacje – pauzy.

Dostępna funkcja

void rumble(const char *str);

Parametr

Typ

Opis

str

const char *

Ciąg składający się z kropek, kresek i spacji, który przedstawia wzór wibracji.

Wartość zwracana

Ta funkcja nie zwraca wartości.

Przykład

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

Rębacz#

zainstalowany#

installed zwraca informację, czy kontroler jest połączony z mózgiem.

Dostępna funkcja

bool installed();

Parametry

Ta funkcja nie ma parametrów.

Wartość zwracana

Zwraca wartość logiczną.

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

Zmienne globalne#

Zdalny kod kontrolny włączony#

RemoteControlCodeEnabled włącza lub wyłącza akcje kontrolera skonfigurowane w menu Urządzenia. Akcje skonfigurowane przez kontroler są domyślnie włączone.

Usage:
RemoteControlCodeEnabled = state;

Wartość

Opis

true

Włącza akcje skonfigurowane przez Kontroler.

false

Wyłącza skonfigurowane akcje kontrolera.

Values
  • true - Controller-configured actions are enabled.
  • false - Controller-configured actions are disabled.
Notes
  • Akcje skonfigurowane przez kontroler są domyślnie włączone.

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;