Valdiklis#

Įvadas#

controller klasė atitinka VEX EXP valdiklį, prijungtą prie EXP smegenų. controller objektas gali būti naudojamas norint pasiekti valdymo svirties ašies vertes, nuskaityti mygtukų būsenas, registruoti mygtukų ar valdymo svirties grįžtamuosius signalus, priversti valdiklį vibruoti ir patikrinti, ar valdiklis prijungtas.

„VEX EXP“ suderinamas su „V5“ valdikliu. Daugiau informacijos rasite V5 valdiklio API.

Kai „Devices“ lange konfigūruojamas vienas ar keli valdikliai, „VEXcode EXP“ taip pat pateikia RemoteControlCodeEnabledŠis globalus kintamasis įjungia arba išjungia valdiklio veiksmus, konfigūruotus meniu „Devices“.

Išvestinės klasės#

controller klasė suteikia šias išvestines klases:

  • Axis – Suteikia prieigą prie valdymo svirties ašies įvesties verčių ir pakeitimų įvykių.

  • Button – Suteikia prieigą prie mygtuko būsenos ir įvykių grįžtamųjų iškvietimų.

Konstruktoriai#

1 - Sukuria valdiklį naudodamas pirminio valdiklio tipą. Paprastai naudojamas, kai prijungtas vienas valdiklis.

controller();

2 - Sukuria nurodyto valdiklio tipo valdiklį. Naudojamas, kai prijungti du valdikliai.

controller(
    controllerType id );

Galimos funkcijos

controller();

controller(controllerType id);

Parametras

Tipas

Aprašymas

id

controllerType

Pasirinktinai. Sukurtino valdiklio tipas: primary – pagrindiniam valdikliui, prijungtam prie smegenų, arba partner – antram valdikliui, prijungtam prie smegenų.

Pastabos

Viename projekte galima sukurti tik vieną primary valdiklį ir vieną partner valdiklį.

Pavyzdys

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

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

Naikintojas#

~valdiklis#

~controller valdiklis sunaikina controller objektą ir atlaisvina susijusius išteklius.

Galima funkcija

~controller();

Parametrai#

Parametras

Tipas

Aprašymas

id

controllerType

Kuriamo valdiklio tipas:

  • primary – pirminis valdiklis, prijungtas prie smegenų.
  • partner – partnerio (antrasis) valdiklis, prijungtas prie smegenų.

Pastabos#

  • Viename projekte gali būti tik vienas primary ir vienas partner valdiklis.

Pavyzdys#

// Create an EXP controller instance
controller Controller = controller();

Narių funkcijos#

controller klasė apima šias narių funkcijas:

  • rumble – Suveikia valdiklyje pagal tam tikrą modelį.

  • installed – Patikrina, ar valdiklis prijungtas prie smegenų.

dundesys#

rumble priverčia valdiklį vibruoti naudojant šabloną. Šablonų eilutėje taškai yra trumpi virpesiai, brūkšniai – ilgi virpesiai, o tarpai – pauzės.

Galima funkcija

void rumble(const char *str);

Parametras

Tipas

Aprašymas

str

const char *

Iš taškų, brūkšnelių ir tarpų sudaryta eilutė, vaizduojanti dundėjimo modelį.

Grąžinimo vertė

Ši funkcija negrąžina reikšmės.

Pavyzdys

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

Getteris#

įdiegta#

installed grąžina, ar valdiklis prijungtas prie smegenų.

Galima funkcija

bool installed();

Parametrai

Ši funkcija neturi parametrų.

Grąžinimo vertė

Grąžina loginę reikšmę.

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

Globalūs kintamieji#

Nuotolinio valdymo kodas įjungtas#

RemoteControlCodeEnabled įjungia arba išjungia valdiklio veiksmus, konfigūruotus meniu „Įrenginiai“. Valdiklio konfigūruojami veiksmai įjungti pagal numatytuosius nustatymus.

Usage:
RemoteControlCodeEnabled = state;

Vertė

Aprašymas

true

Įgalina valdiklio konfigūruojamus veiksmus.

false

Išjungia valdiklio sukonfigūruotus veiksmus.

Values
  • true - Controller-configured actions are enabled.
  • false - Controller-configured actions are disabled.
Notes
  • Valdiklio konfigūruojami veiksmai įjungti pagal numatytuosius nustatymus.

  • Šis kintamasis veiks tik naudojant VEXcode.

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;