Akseli#

Johdanto#

axis -luokka on controller -luokan johdannainen luokka. Se tarjoaa pääsyn ohjaimen joystick-akselin arvoihin ja joystick-akselin muutoskutsuihin.

axis objektiin päästään käsiksi controller -objektin kautta. Sitä ei konstruoida suoraan.

IQ 1. sukupolven ohjain, jossa neljä joystick-akselia on korostettu.

Pääsy#

controller -luokka tarjoaa seuraavat akseliobjektit. Jokainen objekti on axis -luokan instanssi.

Akseliobjekti

Esimerkki käytöstä

Kuvaus

Axis1

Controller.Axis1.position()

Oikean joystickin vaakasuora akseli.

Axis2

Controller.Axis2.position()

Oikean joystickin pystyakseli.

Axis3

Controller.Axis3.position()

Vasen joystickin pystyakseli.

Axis4

Controller.Axis4.position()

Vasen joystick-sauvan vaakasuora akseli.

Muistiinpanoja#

  • Ennen axis jäsenfunktion käyttöä luo controller -objekti.

  • position palauttaa arvon väliltä -100 ja 100.

// Create a controller object
controller Controller = controller();

Jäsenten toiminnot#

axis luokka sisältää seuraavat jäsenfunktiot:

Getter — Lue joystickin akselin asento.

  • position — Palauttaa joystickin akselin asennon.

Takaisinkutsu — Suorita funktio, kun joystickin asento muuttuu akselin suuntaisesti.

  • changed — Suorittaa funktion, kun joystickin asento muuttuu kyseisellä akselilla.

Getter#

position#

position palauttaa joystick-akselin asennon arvona väliltä -100 - 100.

Käytettävissä oleva toiminto

int32_t position(percentUnits units = percentUnits::pct) const;

Parametri

Tyyppi

Kuvaus

units

percentUnits

Valinnainen. Palautetun akselin arvon yksikkö. Oletusarvo on percentUnits::pct.

Palautusarvo

Palauttaa int32_t -arvon väliltä -100 - 100.

  • 100 — Ohjaussauvan akseli on täysin siirtynyt positiiviseen suuntaan.

  • 0 — Ohjaussauvan akseli on keskitetty.

  • -100 — Ohjaussauvan akseli on täysin siirtynyt negatiiviseen suuntaan.

Esimerkki

// Turn with the left joystick
while (true) {
  if (Controller.Axis4.position() > 10) {
    Drivetrain.turn(right);
  }
  else if (Controller.Axis4.position() < -10) {
    Drivetrain.turn(left);
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

Takaisinsoitto#

changed#

changed suorittaa funktion, kun joystickin asento muuttuu kyseisellä akselilla.

Käytettävissä oleva toiminto

void changed(void (* callback)(void)) const;

Parametri

Tyyppi

Kuvaus

callback

void (*)(void)

Funktio, joka suoritetaan aina, kun joystickin asento muuttuu kyseisellä akselilla.

Parametri

Tyyppi

Kuvaus

callback

void (*)(void)

Aiemmin määritelty takaisinkutsufunktio, jota kutsutaan automaattisesti, kun akselin arvo muuttuu. Funktion on vastattava vaadittua takaisinkutsuallekirjoitusta. Lisätietoja on kohdassa Callback Functions.

Return Values

Tämä funktio ei palauta arvoa.

Esimerkki

Määrittele takaisinkutsufunktio main n ulkopuolella.

Määrittele takaisinkutsufunktio ( int main())

// Play a sound when the left joystick moves
 void sounds() {
     Brain.playSound(siren);
     wait(1, seconds);
 }

Rekisteröi takaisinkutsu int main()

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Call the function when the left joystick moves
  Controller.Axis4.changed(sounds);
}