Regler#
Einführung#
The controller class represents a VEX EXP Controller connected to the EXP Brain. A controller object can be used to access joystick axis values, read button states, register button or joystick callbacks, make the controller rumble, and check whether the controller is connected.
VEX EXP ist mit dem V5-Controller kompatibel. Weitere Informationen finden Sie in der V5-Controller-API.
Wenn im Fenster „Geräte“ ein oder mehrere Controller konfiguriert sind, stellt VEXcode EXP außerdem RemoteControlCodeEnabledbereit. Diese globale Variable aktiviert oder deaktiviert die im Menü „Geräte“ konfigurierten Controller-Aktionen.
Abgeleitete Klassen#
Die Controller-Klasse controller stellt die folgenden abgeleiteten Klassen bereit:
Konstruktoren#
1 - Erstellt einen Controller unter Verwendung des primären Controller-Typs. Wird typischerweise verwendet, wenn nur ein einzelner Controller angeschlossen ist.
controller();
2 - Erstellt einen Controller für den angegebenen Controllertyp. Wird verwendet, wenn zwei Controller verbunden sind.
controller( controllerType id );
Verfügbare Funktionen
controller();
controller(controllerType id);
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Optional. Der zu erstellende Controller-Typ: |
Anmerkungen
Only one primary controller and one partner controller can be created in a single project.
Beispiel
// Create the primary controller
controller Controller1 = controller();
// Create a partner controller
controller Controller2 = controller(partner);
Zerstörer#
~Controller#
~controller zerstört das Controller-Objekt controller und gibt die zugehörigen Ressourcen frei.
Verfügbare Funktionen
~controller();
Parameter#
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Der erstellte Controller-Typ:
|
Anmerkungen#
Only one
primaryand onepartnercontroller may exist in a single project.
Beispiel#
// Create an EXP controller instance
controller Controller = controller();
Mitgliedsfunktionen#
The controller class includes the following member functions:
rumble- Lässt den Controller mit einem Muster vibrieren.installed- Überprüft, ob der Controller mit dem Gehirn verbunden ist.
Rumpeln#
rumble lässt den Controller nach einem bestimmten Muster vibrieren. In dieser Musterfolge stehen Punkte für kurze Vibrationen, Striche für lange Vibrationen und Leerzeichen für Pausen.
Verfügbare Funktionen
void rumble(const char *str);
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Eine aus Punkten, Strichen und Zwischenräumen bestehende Zeichenkette, die das Rumpelmuster darstellt. |
Rückgabewert
Diese Funktion gibt keinen Wert zurück.
Beispiel
// Rumble with a short-short-long pattern
Controller1.rumble("..-");
Getter#
installiert#
installed gibt an, ob der Controller mit dem Brain verbunden ist.
Verfügbare Funktionen
bool installed();
Parameter
Diese Funktion hat keine Parameter.
Rückgabewert
Gibt einen booleschen Wert zurück.
true- The controller is installed/connected.false- The controller is not installed/connected.
Globale Variablen#
Fernbedienungscode aktiviert#
RemoteControlCodeEnabled aktiviert oder deaktiviert die im Menü „Geräte“ konfigurierten Controller-Aktionen. Die konfigurierten Controller-Aktionen sind standardmäßig aktiviert.
Usage:
RemoteControlCodeEnabled = state;
Wert |
Beschreibung |
|---|---|
|
Aktiviert die vom Controller konfigurierten Aktionen. |
|
Deaktiviert die vom Controller konfigurierten Aktionen. |
true- Controller-configured actions are enabled.false- Controller-configured actions are disabled.
Vom Controller konfigurierte Aktionen sind standardmäßig aktiviert.
Diese Variable funktioniert nur bei Verwendung von 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;