Controller#

Invoering#

De klasse controller vertegenwoordigt een VEX IQ Controller die is verbonden met de IQ Brain. Een object controller kan worden gebruikt om toegang te krijgen tot joystick-aswaarden, knopstatussen uit te lezen, callbacks voor knoppen of joysticks te registreren en te controleren of de controller is verbonden.

De IQ (2e generatie) Brain kan worden verbonden met een IQ (2e generatie) of een IQ (1e generatie) Controller. Een IQ (1e generatie) Controller moet een blauwe Smart Radio hebben.

Wanneer een of meer controllers zijn geconfigureerd in het venster Apparaten, biedt VEXcode IQ ook de globale variabele RemoteControlCodeEnabledDeze variabele maakt het mogelijk om controlleracties die in het menu Apparaten zijn geconfigureerd, in of uit te schakelen.

Afgeleide klassen#

De controllerklasse controller bieden de volgende afgeleide klassen:

  • Axis - Biedt toegang tot de invoerwaarden en wijzigingsgebeurtenissen van de joystickassen.

  • Button - Biedt toegang tot de knopstatus en callbacks voor knopgebeurtenissen.

Constructeurs#

1 - Hiermee wordt een controller gemaakt met behulp van het primaire controllertype. Dit wordt doorgaans gebruikt wanneer er slechts één controller is aangesloten.

controller();

2 - Maakt een controller aan voor het opgegeven controllertype. Wordt gebruikt wanneer twee controllers zijn verbonden.

controller(
    controllerType id );

Beschikbare functies

controller();

controller(controllerType id);

Parameter

Type

Beschrijving

id

controllerType

Optioneel. Het type controller dat moet worden aangemaakt: primary voor de primaire controller die is verbonden met de Brain of partner voor de tweede controller die is verbonden met de Brain.

Opmerkingen

In een enkel project kunnen slechts één primaire controller primary en één partnercontroller ( partner ) worden aangemaakt.

Voorbeeld

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

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

Vernietiger#

~controller#

~controller vernietigt het controller object en geeft de bijbehorende resources vrij.

Beschikbare functie

~controller();

Parameters#

Parameter

Type

Beschrijving

id

controllerType

Het type controller dat wordt aangemaakt:

  • primary - De primaire controller die met de hersenen is verbonden.
  • partner - De partner (tweede) controller die met de hersenen is verbonden.

Notities#

  • In een enkel project mogen slechts één primaire controller primary en één partnercontroller ( partner aanwezig zijn.

Voorbeeld#

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

Lidfuncties#

De klasse controller bevat de volgende lidfunctie:

  • installed - Controleert of de controller is verbonden met de hersenen.

geïnstalleerd#

installed geeft aan of de controller is verbonden met de Brain.

Beschikbare functie

bool installed();

Parameters

Deze functie heeft geen parameters.

Retourwaarde

Retourneert een Booleaanse waarde.

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

Globale variabelen#

RemoteControlCodeEnabled#

RemoteControlCodeEnabled schakelt de controlleracties in of uit die zijn geconfigureerd in het menu Apparaten. De geconfigureerde controlleracties zijn standaard ingeschakeld.

Usage:
RemoteControlCodeEnabled = state;

Waarde

Beschrijving

true

Maakt door de controller geconfigureerde acties mogelijk.

false

Schakelt de door de controller geconfigureerde acties uit.

Values
  • true - Controller-configured actions are enabled.
  • false - Controller-configured actions are disabled.
Notes
  • Door de controller geconfigureerde acties zijn standaard ingeschakeld.

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;