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.

Přední strana ovladače EXP s červeně zvýrazněnými čísly os joysticku. Na povrchu ovladače je levý joystick označen jako Osa 4 pro pohyb doleva a doprava a Osa 3 pro pohyb nahoru a dolů, zatímco pravý joystick je označen jako Osa 1 pro pohyb doleva a doprava a Osa 2 pro pohyb nahoru a dolů.

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.

Návratová hodnota

Tato funkce nevrací hodnotu.

Příklad

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

// Rumble when the left joystick moves
void controllerRumble() {
  Controller.rumble(".");
}

Zaregistrujte zpětné volání uvnitř main.

int main() {
  vexcodeInit();

  // Run controllerRumble when the joystick's position changes along Axis4
  Controller.Axis4.changed(controllerRumble);
}