Oś#

Wstęp#

Klasa osi axis jest klasą pochodną klasy controller. Zapewnia dostęp do wartości osi joysticka kontrolera i wywołań zwrotnych zmiany osi joysticka.

Do obiektu osi axis można uzyskać dostęp poprzez obiekt kontrolera controller Nie jest on tworzony bezpośrednio.

Kontroler IQ 1. generacji z zaznaczonymi czterema osiami joysticka.

Dostęp#

Klasa kontrolera controller udostępnia następujące obiekty osi. Każdy obiekt jest instancją klasy osi axis.

Obiekt osi

Przykładowe użycie

Opis

Axis1

Controller.Axis1.position()

Oś pozioma prawego joysticka.

Axis2

Controller.Axis2.position()

Oś pionowa prawego joysticka.

Axis3

Controller.Axis3.position()

Oś pionowa lewego joysticka.

Axis4

Controller.Axis4.position()

Oś pozioma lewego joysticka.

Notatki#

  • Przed użyciem funkcji członkowskiej osi axis utwórz obiekt kontrolera controller.

  • Pozycja position zwraca wartość od -100 do 100.

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

Funkcje członkowskie#

Klasa osi axis zawiera następujące funkcje członkowskie:

Getter — Odczyt położenia osi joysticka.

  • position — Zwraca pozycję osi joysticka.

Wywołanie zwrotne — uruchomienie funkcji, gdy położenie joysticka zmienia się wzdłuż osi.

  • changed — Uruchamia funkcję, gdy położenie joysticka zmienia się wzdłuż danej osi.

Rębacz#

position#

Pozycja position zwraca pozycję osi joysticka jako wartość od -100 do 100.

Dostępna funkcja

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

Parametr

Typ

Opis

units

percentUnits

Opcjonalnie. Jednostka używana dla zwróconej wartości osi. Domyślnie jest to percentUnits::pct.

Wartość zwracana

Zwraca wartość int32_t z zakresu -100 do 100.

  • 100 — Oś joysticka jest całkowicie przesunięta w kierunku dodatnim.

  • 0 — Oś joysticka jest wyśrodkowana.

  • -100 — Oś joysticka jest całkowicie przesunięta w kierunku ujemnym.

Przykład

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

Oddzwonienie#

changed#

changed uruchamia funkcję, gdy położenie joysticka zmienia się wzdłuż danej osi.

Dostępna funkcja

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

Parametr

Typ

Opis

callback

void (*)(void)

Funkcja uruchamiana za każdym razem, gdy położenie joysticka zmieni się wzdłuż danej osi.

Parametr

Typ

Opis

callback

void (*)(void)

Wcześniej zdefiniowana funkcja wywołania zwrotnego, która jest wywoływana automatycznie po zmianie wartości osi. Funkcja musi być zgodna z wymaganym podpisem wywołania zwrotnego. Więcej informacji można znaleźć w sekcji Funkcje wywołania zwrotnego.

Return Values

Ta funkcja nie zwraca wartości.

Przykład

Zdefiniuj funkcję wywołania zwrotnego poza main.

Zdefiniuj funkcję wywołania zwrotnego (poza int main())

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

Zarejestruj wywołanie zwrotne wewnątrz 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);
}