Kontroller#

Introduktion#

Klassen controller Ett controller -styrenhetsobjekt kan användas för att komma åt joystickaxelvärden, läsa knapptillstånd, registrera knapp- eller joystickåteranrop, få styrenheten att vibrera, skriva till styrenhetens skärm och kontrollera om styrenheten är ansluten.

VEX V5 är kompatibel med EXP Controller. Se EXP Controller API för mer information.

När en eller flera regulatorer är konfigurerade i fönstret Enheter, tillhandahåller VEXcode V5 även RemoteControlCodeEnabledDenna globala variabel aktiverar eller inaktiverar regulatoråtgärder som konfigurerats i menyn Enheter.

Härledda klasser#

Klassen controller tillhandahåller följande härledda klasser:

  • Axis - Ger åtkomst till joystickaxelns inmatningsvärden och ändringshändelser.

  • Button - Ger åtkomst till knappstatus och återanrop för knapphändelser.

  • Screen - Ger funktioner för att skriva text till kontrollenhetens skärm.

Konstruktörer#

1 - Skapar en styrenhet med den primära styrenhetens typ. Används vanligtvis när en enda styrenhet är ansluten.

controller();

2 - Skapar en regulator för den angivna regulatortypen. Används när två regulatorer är anslutna.

controller(
    controllerType id );

Tillgängliga funktioner

controller();

controller(controllerType id);

Parameter

Typ

Beskrivning

id

controllerType

Valfritt. Kontrollertypen som ska skapas: primary för den primära kontrollanten ansluten till hjärnan eller partner för den andra kontrollanten ansluten till hjärnan.

Anteckningar

Endast en primary Controller och en partner Controller kan skapas i ett och samma projekt.

Exempel

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

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

Destruktor#

~kontrollant#

~controller förstör controller objektet och frigör tillhörande resurser.

Tillgänglig funktion

~controller();

Parametrar#

Parameter

Typ

Beskrivning

id

controllerType

Typen av styrenhet som skapas:

  • primary - Den primära styrenheten ansluten till hjärnan.
  • partner - Partnerstyrenheten (den andra) ansluten till hjärnan.

Anteckningar#

  • Endast en primary och en partner styrenhet får finnas i ett och samma projekt.

Exempel#

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

Medlemsfunktioner#

Klassen controller innehåller följande medlemsfunktioner:

  • rumble - Rumlar handkontrollen med hjälp av ett mönster.

  • installed - Kontrollerar om handkontrollen är ansluten till hjärnan.

rumble#

rumble får kontrollenheten att vibrera med hjälp av ett mönster. I mönstersträngen är punkter korta vibrationer, streck är långa vibrationer och mellanslag är pauser.

Tillgänglig funktion

void rumble(const char *str);

Parameter

Typ

Beskrivning

str

const char *

En sträng bestående av punkter, streck och mellanslag som representerar mullermönstret.

Returvärde

Den här funktionen returnerar inget värde.

Exempel

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

Getter#

installerad#

installed returnerar om kontrollenheten är ansluten till hjärnan.

Tillgänglig funktion

bool installed();

Parametrar

Den här funktionen har inga parametrar.

Returvärde

Returnerar ett booleskt värde.

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

Globala variabler#

Fjärrkontrollkod aktiverad#

RemoteControlCodeEnabled aktiverar eller inaktiverar kontrollfunktioner som konfigurerats i menyn Enheter. Kontrollfunktioner som konfigurerats är aktiverade som standard.

Usage:
RemoteControlCodeEnabled = state;

Värde

Beskrivning

true

Aktiverar kontrollenhetskonfigurerade åtgärder.

false

Inaktiverar kontrollenhetens konfigurerade åtgärder.

Values
  • true - Controller-configured actions are enabled.
  • false - Controller-configured actions are disabled.
Notes
  • Styrenhetskonfigurerade åtgärder är aktiverade som standard.

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;