Ovladač#

Zavedení#

Třída controller představuje Controller VEX V5 připojený k V5 Brainu. Objekt controller lze použít k přístupu k hodnotám os joysticku, čtení stavů tlačítek, registraci zpětných volání tlačítek nebo joysticku, k aktivaci dunění Controlleru, k zápisu na obrazovku Controlleru a k kontrole, zda je Controller připojen.

VEX V5 je kompatibilní s ovladačem EXP. Více informací naleznete v dokumentu EXP Controller API.

Pokud je v okně Zařízení nakonfigurován jeden nebo více řadičů, VEXcode V5 také poskytuje hodnotu RemoteControlCodeEnabledTato globální proměnná povoluje nebo zakazuje akce řadičů nakonfigurované v nabídce Zařízení.

Odvozené třídy#

Třída controller poskytuje následující odvozené třídy:

  • Axis – Poskytuje přístup k vstupním hodnotám os joysticku a událostem změn.

  • Button – Poskytuje přístup k voláním stavů tlačítek a událostí tlačítek.

  • Screen – Poskytuje funkce pro zápis textu na obrazovku ovladače.

Konstruktéři#

1 - Vytvoří řídicí jednotku s použitím primárního typu řídicí jednotky. Obvykle se používá, když je připojena jedna řídicí jednotka.

controller();

2 - Vytvoří řadič pro zadaný typ řadiče. Používá se, když jsou připojeny dva řadiče.

controller(
    controllerType id );

Dostupné funkce

controller();

controller(controllerType id);

Parametr

Typ

Popis

id

controllerType

Volitelné. Typ ovladače, který se má vytvořit: primary pro primární ovladač připojený k mozku nebo partner pro druhý ovladač připojený k mozku.

Poznámky

V jednom projektu lze vytvořit pouze jeden primární primary a jeden partnerský partner.

Příklad

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

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

Destruktor#

~ovladač#

~controller zničí objekt controller a uvolní přidružené prostředky.

Dostupná funkce

~controller();

Parametry#

Parametr

Typ

Popis

id

controllerType

Typ vytvářeného ovladače:

  • primary - Primární ovladač připojený k mozku.
  • partner - Partnerský (druhý) ovladač připojený k mozku.

Poznámky#

  • V jednom projektu může existovat pouze jeden primární primary a jeden partner kontroler.

Příklad#

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

Členské funkce#

Třída controller obsahuje následující členské funkce:

  • rumble - Zadá zvuk ovladače pomocí určitého vzoru.

  • installed - Zkontroluje, zda je ovladač připojen k mozku.

rachot#

rumble způsobí, že ovladač vibruje pomocí vzoru. V řetězci vzoru jsou tečky krátké vibrace, čárky dlouhé vibrace a mezery pauzy.

Dostupná funkce

void rumble(const char *str);

Parametr

Typ

Popis

str

const char *

Řetězec složený z teček, čárek a mezer, které představují vzorec dunění.

Návratová hodnota

Tato funkce nevrací hodnotu.

Příklad

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

Getter#

nainstalováno#

installed vrací, zda je Controller připojen k Brainu.

Dostupná funkce

bool installed();

Parametry

Tato funkce nemá parametry.

Návratová hodnota

Vrací booleovskou hodnotu.

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

Globální proměnné#

RemoteControlCodeEnabled#

RemoteControlCodeEnabled povoluje nebo zakazuje akce řadiče konfigurované v nabídce Zařízení. Akce konfigurované řadičem jsou ve výchozím nastavení povoleny.

Usage:
RemoteControlCodeEnabled = state;

Hodnota

Popis

true

Umožňuje akce nakonfigurované ovladačem.

false

Zakáže akce nakonfigurované ovladačem.

Values
  • true - Controller-configured actions are enabled.
  • false - Controller-configured actions are disabled.
Notes
  • Akce nakonfigurované ovladačem jsou ve výchozím nastavení povoleny.

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;