Osa#

Zavedení#

Třída axis je odvozenou třídou třídy controller. Poskytuje přístup k hodnotám os joysticku controlleru a zpětným voláním pro změnu osy joysticku.

K objektu axis se přistupuje přes objekt controller Není konstruován přímo.

Ovladač IQ 1. generace se zvýrazněnými čtyřmi osami joysticku.

Přístup#

Třída controller poskytuje následující objekty os. Každý objekt je instancí třídy axis os.

Objekt osy

Příklad použití

Popis

Axis1

Controller.Axis1.position()

Pravá vodorovná osa joysticku.

Axis2

Controller.Axis2.position()

Pravá svislá osa joysticku.

Axis3

Controller.Axis3.position()

Vertikální osa levého joysticku.

Axis4

Controller.Axis4.position()

Levá horizontální osa joysticku.

Poznámky#

  • Před použitím členské funkce s osou axis vytvořte objekt controlleru controller.

  • position vrací hodnotu od -100 do 100.

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

Členské funkce#

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

Getter — Čte polohu osy joysticku.

  • position — Vrátí pozici osy joysticku.

Zpětné volání — Spustí funkci, když se změní poloha joysticku podél osy.

  • changed — Spustí funkci, když se změní poloha joysticku podél dané osy.

Getter#

position#

position vrací pozici osy joysticku jako hodnotu od -100 do 100.

Dostupná funkce

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

Parametr

Typ

Popis

units

percentUnits

Volitelné. Jednotka použitá pro vrácenou hodnotu osy. Výchozí hodnota je percentUnits::pct.

Návratová hodnota

Vrací hodnotu int32_t od -100 do 100.

  • 100 — Osa joysticku je zcela posunuta v kladném směru.

  • 0 — Osa joysticku je vycentrovaná.

  • -100 — Osa joysticku je zcela posunuta v záporném směru.

Příklad

// 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);
}

Zpětné volání#

changed#

changed spustí funkci, když se změní poloha joysticku podél dané osy.

Dostupná funkce

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

Parametr

Typ

Popis

callback

void (*)(void)

Funkce, která se spustí pokaždé, když se změní poloha joysticku podél dané osy.

Parametr

Typ

Popis

callback

void (*)(void)

Předem definovaná funkce zpětného volání, která se volá automaticky při změně hodnoty osy. Funkce musí odpovídat požadované signatuře zpětného volání. Další informace naleznete v části Funkce zpětného volání.

Return Values

Tato funkce nevrací hodnotu.

Příklad

Definujte funkci zpětného volání mimo main.

Definujte callback funkci (mimo int main())

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

Zaregistrujte zpětné volání uvnitř 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);
}