Ohjain#

Johdanto#

controller -luokka edustaa VEX V5 -ohjainta, joka on kytketty V5 Brainiin. controller -objektia voidaan käyttää joystickin akselien arvojen käyttämiseen, painikkeiden tilojen lukemiseen, painikkeiden tai joystickin takaisinkutsujen rekisteröimiseen, ohjaimen tärinän aiheuttamiseen, ohjaimen näytölle kirjoittamiseen ja ohjaimen yhteyden tarkistamiseen.

VEX V5 on yhteensopiva EXP-ohjaimen kanssa. Lisätietoja on EXP Controller API -rajapinnassa.

Kun Laitteet-ikkunassa on määritetty yksi tai useampi ohjain, VEXcode V5 tarjoaa myös RemoteControlCodeEnabledTämä globaali muuttuja ottaa käyttöön tai poistaa käytöstä Laitteet-valikossa määritetyt ohjaintoiminnot.

Johdetut luokat#

controller -luokka tarjoaa seuraavat johdetut luokat:

  • Axis - Tarjoaa pääsyn joystick-akselin syöttöarvoihin ja muutostapahtumiin.

  • Button - Tarjoaa pääsyn painikkeen tilaan ja tapahtumien takaisinkutsuihin.

  • Screen - Tarjoaa toimintoja tekstin kirjoittamiseen ohjainnäyttöön.

Rakentajat#

1 - Luo ohjaimen ensisijaisen ohjaimen tyypin avulla. Käytetään tyypillisesti, kun kytkettynä on yksi ohjain.

controller();

2 - Luo ohjaimen määritetylle ohjaintyypille. Käytetään, kun kaksi ohjainta on yhdistetty.

controller(
    controllerType id );

Käytettävissä olevat toiminnot

controller();

controller(controllerType id);

Parametri

Tyyppi

Kuvaus

id

controllerType

Valinnainen. Luotavan ohjaimen tyyppi: primary ensisijaiselle aivoihin kytketylle ohjaimelle tai partner toiselle aivoihin kytketylle ohjaimelle.

Huomautuksia

Yhdessä projektissa voidaan luoda vain yksi primary ohjain ja yksi partner ohjain.

Esimerkki

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

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

Tuhoaja#

~ohjain#

~controller tuhoaa controller -objektin ja vapauttaa siihen liittyvät resurssit.

Käytettävissä oleva toiminto

~controller();

Parametrit#

Parametri

Tyyppi

Kuvaus

id

controllerType

Luotavan ohjaimen tyyppi:

  • primary - Aivoihin kytketty ensisijainen ohjain.
  • partner - Aivoihin kytketty kumppani(toinen) ohjain.

Muistiinpanoja#

  • Yhdessä projektissa voi olla vain yksi primary ja yksi partner ohjain.

Esimerkki#

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

Jäsenten toiminnot#

controller -luokka sisältää seuraavat jäsenfunktiot:

  • rumble - Jyrisee ohjainta kuvion avulla.

  • installed - Tarkistaa, onko ohjain kytketty aivoihin.

jyrinä#

rumble saa ohjaimen värähtelemään kuvion avulla. Kuviojonossa pisteet ovat lyhyitä värähtelyjä, katkoviivat pitkiä värähtelyjä ja välilyönnit taukoja.

Käytettävissä oleva toiminto

void rumble(const char *str);

Parametri

Tyyppi

Kuvaus

str

const char *

Pisteistä, katkoviivoista ja välilyönneistä koostuva merkkijono, joka edustaa jyrinäkuviota.

Palautusarvo

Tämä funktio ei palauta arvoa.

Esimerkki

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

Getter#

asennettu#

installed palauttaa, onko ohjain yhdistetty aivoihin.

Käytettävissä oleva toiminto

bool installed();

Parametrit

Tällä funktiolla ei ole parametreja.

Palautusarvo

Palauttaa totuusarvon.

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

Globaalit muuttujat#

Kauko-ohjauskoodi käytössä#

RemoteControlCodeEnabled ottaa käyttöön tai poistaa käytöstä Laitteet-valikossa määritetyt ohjaimen toiminnot. Ohjaimen määrittämät toiminnot ovat oletusarvoisesti käytössä.

Usage:
RemoteControlCodeEnabled = state;

Arvo

Kuvaus

true

Mahdollistaa ohjaimen määrittämät toiminnot.

false

Poistaa käytöstä ohjaimen määrittämät toiminnot.

Values
  • true - Controller-configured actions are enabled.
  • false - Controller-configured actions are disabled.
Notes
  • Ohjaimen määrittämät toiminnot ovat oletusarvoisesti käytössä.

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;