Kontrolieris#

Ievads#

controller klase apzīmē VEX EXP kontrolleri, kas savienots ar EXP Brain. controller objektu var izmantot, lai piekļūtu kursorsviras asu vērtībām, nolasītu pogu stāvokļus, reģistrētu pogu vai kursorsviras atzvanīšanas signālus, liktu kontrollerim rībēt un pārbaudītu, vai kontrolieris ir savienots.

VEX EXP ir saderīgs ar V5 kontrolieri. Plašāku informāciju skatiet V5 kontrollera API.

Ja logā “Ierīces” ir konfigurēts viens vai vairāki kontrolleri, VEXcode EXP nodrošina arī vērtību RemoteControlCodeEnabledŠis globālais mainīgais iespējo vai atspējo kontrollera darbības, kas konfigurētas izvēlnē “Ierīces”.

Atvasinātās klases#

controller klase nodrošina šādas atvasinātās klases:

  • Axisass — Nodrošina piekļuvi kursorsviras ass ievades vērtībām un izmaiņu notikumiem.

  • Button — nodrošina piekļuvi pogas stāvokļa un pogas notikumu atzvanīšanas pieprasījumiem.

Konstruktori#

1 - Izveido kontrolieri, izmantojot primārā kontrollera tipu. Parasti izmanto, ja ir pievienots viens kontrolieris.

controller();

2 - Izveido kontrolleri norādītajam kontrollera tipam. Izmanto, ja ir savienoti divi kontrolleri.

controller(
    controllerType id );

Pieejamās funkcijas

controller();

controller(controllerType id);

Parametrs

Tips

Apraksts

id

controllerType

Neobligāti. Izveidojamā kontroliera tips: primary primārajam kontrolierim, kas savienots ar smadzenēm, vai partner otrajam kontrolierim, kas savienots ar smadzenēm.

Piezīmes

Vienā projektā var izveidot tikai vienu primary kontrolieri un vienu partner kontrolieri.

Piemērs

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

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

Iznīcinātājs#

~kontrolieris#

~controller iznīcina controller objektu un atbrīvo saistītos resursus.

Pieejamās funkcijas

~controller();

Parametri#

Parametrs

Tips

Apraksts

id

controllerType

Izveidojamā kontroliera tips:

  • primary  — primārais kontrolieris, kas savienots ar smadzenēm.
  • partner  — partnera (otrais) kontrolieris, kas savienots ar smadzenēm.

Piezīmes#

  • Vienā projektā var pastāvēt tikai viens primary un viens partner kontrolieris.

Piemērs#

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

Dalībnieku funkcijas#

controller klase ietver šādas dalībfunkcijas:

  • rumble — Aktivizē kontroliera dārdoņu, izmantojot noteiktu shēmu.

  • installed — Pārbauda, ​​vai kontrolieris ir savienots ar smadzenēm.

dārdoņa#

rumble liek kontrolierim vibrēt, izmantojot rakstu. Rakstu virknē punkti ir īsas vibrācijas, svītriņas ir garas vibrācijas, un atstarpes ir pauzes.

Pieejamās funkcijas

void rumble(const char *str);

Parametrs

Tips

Apraksts

str

const char *

Virkne, kas veidota no punktiem, svītrām un atstarpēm, kas attēlo dārdoņas rakstu.

Atgriešanas vērtība

Šī funkcija neatgriež vērtību.

Piemērs

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

Iegūtājs#

uzstādīts#

installed atgriež, vai kontrolieris ir savienots ar smadzenēm.

Pieejamās funkcijas

bool installed();

Parametri

Šai funkcijai nav parametru.

Atgriešanas vērtība

Atgriež Būla vērtību.

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

Globālie mainīgie#

Tālvadības kods iespējots#

RemoteControlCodeEnabled iespējo vai atspējo kontrollera darbības, kas konfigurētas ierīču izvēlnē. Kontroliera konfigurētās darbības ir iespējotas pēc noklusējuma.

Usage:
RemoteControlCodeEnabled = state;

Vērtība

Apraksts

true

Iespējo kontrollera konfigurētās darbības.

false

Atspējo kontrollera konfigurētās darbības.

Values
  • true - Controller-configured actions are enabled.
  • false - Controller-configured actions are disabled.
Notes
  • Kontroliera konfigurētās darbības pēc noklusējuma ir iespējotas.

  • Šis mainīgais darbosies tikai tad, ja tiks izmantots 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;