Kontroler#
Wstęp#
Klasa kontrolera controller reprezentuje kontroler VEX EXP podłączony do mózgu EXP. 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 i sprawdzania, czy jest podłączony.
VEX EXP jest zgodny z kontrolerem V5. Więcej informacji można znaleźć w API kontrolera V5.
Gdy w oknie Urządzenia skonfigurowano jeden lub więcej kontrolerów, VEXcode EXP udostępnia również opcję RemoteControlCodeEnabledTa zmienna globalna włącza lub wyłącza akcje kontrolera skonfigurowane w menu Urządzenia.
Klasy pochodne#
Klasa kontrolera controller udostępnia następujące klasy pochodne:
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 |
|---|---|---|
|
|
Opcjonalnie. Typ kontrolera do utworzenia: |
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 |
|---|---|---|
|
|
Typ tworzonego kontrolera:
|
Notatki#
Only one
primaryand onepartnercontroller may exist in a single project.
Przykład#
// Create an EXP controller instance
controller Controller = controller();
Funkcje członkowskie#
Klasa kontrolera controller zawiera następujące funkcje członkowskie:
rumble- Wprawia kontroler w drgania zgodnie ze wzorem.zainstalowano
installed- Sprawdza, czy kontroler jest połączony z mózgiem.
huk#
rumble powoduje, że kontroler wibruje zgodnie ze schematem. W ciągu schematów kropki oznaczają krótkie wibracje, kreski – długie wibracje, a spacje – pauzy.
Dostępna funkcja
void rumble(const char *str);
Parametr |
Typ |
Opis |
|---|---|---|
|
|
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 podłączony do mózgu.
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 |
|---|---|
|
Włącza akcje skonfigurowane przez kontroler. |
|
Wyłącza skonfigurowane przez kontroler akcje. |
true- Controller-configured actions are enabled.false- Controller-configured actions are disabled.
Akcje skonfigurowane przez kontroler są domyślnie włączone.
Ta zmienna będzie działać tylko w przypadku używania kodu VEXcode.
// 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;