Regler#

Einführung#

The controller class represents a VEX IQ Controller connected to the IQ Brain. A controller object can be used to access joystick axis values, read button states, register button or joystick callbacks, and check whether the controller is connected.

Das IQ-Steuergerät (2. Generation) kann entweder mit einem IQ-Controller (2. Generation) oder einem IQ-Controller (1. Generation) verbunden werden. Ein IQ-Controller (1. Generation) muss über ein installiertes blaues Smart Radio verfügen.

Wenn im Fenster „Geräte“ ein oder mehrere Controller konfiguriert sind, stellt VEXcode IQ außerdem die globale Variable RemoteControlCodeEnabledbereit. Diese Variable aktiviert oder deaktiviert die im Menü „Geräte“ konfigurierten Controller-Aktionen.

Abgeleitete Klassen#

Die Controller-Klasse controller stellt die folgenden abgeleiteten Klassen bereit:

  • Axis - Ermöglicht den Zugriff auf Joystick-Achsen-Eingabewerte und Änderungsereignisse.

  • Button - Bietet Zugriff auf den Button-Status und Button-Ereignis-Callbacks.

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

id

controllerType

Optional. Der zu erstellende Controller-Typ: primary für den primären Controller, der mit dem Brain verbunden ist, oder partner für den zweiten Controller, der mit dem Brain verbunden ist.

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

id

controllerType

Der erstellte Controller-Typ:

  • primary – Der primäre Controller, der mit dem Gehirn verbunden ist.
  • partner – Der Partner-Controller (zweiter Controller), der mit dem Gehirn verbunden ist.

Anmerkungen#

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

Beispiel#

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

Mitgliedsfunktionen#

Die Klasse controller enthält die folgende Memberfunktion:

  • installed - Überprüft, ob der Controller mit dem Gehirn verbunden ist.

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

true

Aktiviert die vom Controller konfigurierten Aktionen.

false

Deaktiviert die vom Controller konfigurierten Aktionen.

Values
  • true - Controller-configured actions are enabled.
  • false - Controller-configured actions are disabled.
Notes
  • Vom Controller konfigurierte Aktionen sind standardmäßig aktiviert.

Examples
// Drive forward or backward using the left joystick
RemoteControlCodeEnabled = false;

while (true) {
  if (Controller1.AxisA.position() > 0) {
    Drivetrain.drive(forward);
  }
  else if (Controller1.AxisA.position() < 0) {
    Drivetrain.drive(reverse);
  }
  // Press E Up to use controller configured actions again
  else if (Controller1.ButtonEUp.pressing()) {
    break;
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

RemoteControlCodeEnabled = true;