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.

Przednia strona kontrolera EXP z numerami osi joysticka zaznaczonymi na czerwono. Na powierzchni kontrolera lewy joystick jest oznaczony jako Oś 4 (ruch w lewo i w prawo) oraz Oś 3 (ruch w górę i w dół), a prawy joystick jest oznaczony jako Oś 1 (ruch w lewo i w prawo) oraz Oś 2 (ruch w górę i w dół).

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.

Wartość zwracana

Ta funkcja nie zwraca wartości.

Przykład

Zdefiniuj funkcję wywołania zwrotnego poza main.

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

Zarejestruj wywołanie zwrotne wewnątrz main.

int main() {
  vexcodeInit();

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