Przycisk#

Wstęp#

Klasa przycisku button jest klasą pochodną klasy controller. Zapewnia dostęp do stanów przycisków kontrolera i wywołań zwrotnych zdarzeń przycisku.

Do obiektu przycisku button można uzyskać dostęp za pośrednictwem obiektu kontrolera controller Nie jest on tworzony bezpośrednio.

Widok z przodu i z tyłu kontrolera IQ 2. generacji ze wszystkimi przyciskami zaznaczonymi na żółto. Na powierzchni kontrolera znajdują się dwa przyciski joysticka w lewym i prawym górnym rogu: E (góra/dół) pod lewym joystickiem oraz F (góra/dół) pod prawym. Z tyłu kontrolera znajdują się odpowiednio przyciski L (góra/dół) i R (góra/dół) po lewej i prawej stronie.

Dostęp#

Klasa kontrolera controller udostępnia następujące obiekty przycisków. Każdy obiekt jest instancją klasy przycisku button.

Obiekt

Przykładowe użycie

Opis

ButtonEDown

Controller.ButtonEDown.pressing()

Przycisk E ▼.

ButtonEUp

Controller.ButtonEUp.pressing()

Przycisk E ▲.

ButtonFDown

Controller.ButtonFDown.pressing()

Przycisk F ▼.

ButtonFUp

Controller.ButtonFUp.pressing()

Przycisk F ▲.

ButtonL3

Controller.ButtonL3.pressing()

Przycisk Lewy joystick. Tylko kontroler IQ (2. generacja).

ButtonLDown

Controller.ButtonLDown.pressing()

Przycisk L ▼.

ButtonLUp

Controller.ButtonLUp.pressing()

Przycisk L ▲.

ButtonR3

Controller.ButtonR3.pressing()

Przycisk Prawy joystick. Tylko kontroler IQ (2. generacja).

ButtonRDown

Controller.ButtonRDown.pressing()

Przycisk R ▼.

ButtonRUp

Controller.ButtonRUp.pressing()

Przycisk R ▲.

Notatki#

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

  • ButtonL3 i ButtonR3 są dostępne tylko w kontrolerze IQ (2. generacja).

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

Funkcje członkowskie#

Klasa przycisku button zawiera następujące funkcje członkowskie:

Getter — Odczyt stanu przycisku.

  • pressing — Zwraca informację, czy przycisk jest naciśnięty.

Wywołania zwrotne — uruchamiają funkcje po wystąpieniu zdarzeń przycisku.

  • naciśniętopressed — Rejestruje funkcję, która ma zostać uruchomiona po naciśnięciu przycisku.

  • released — Rejestruje funkcję, która ma zostać uruchomiona po zwolnieniu przycisku.

Rębacz#

pressing#

Naciśnięcie pressing , czy przycisk jest aktualnie wciśnięty.

Dostępna funkcja

bool pressing() const;

Parametry

Ta funkcja nie ma parametrów.

Wartość zwracana

Zwraca wartość logiczną.

  • true — Przycisk jest wciśnięty.

  • false — Przycisk nie jest wciśnięty.

Przykład

// Turn right while R Up is pressed
while (true) {
  if (Controller.ButtonRUp.pressing()) {
    Drivetrain.turn(right);
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

Wywołania zwrotne#

pressed#

pressed rejestruje funkcję, która jest uruchamiana po naciśnięciu przycisku.

Dostępna funkcja

void pressed(void (* callback)(void)) const;

Parametr

Typ

Opis

callback

void (*)(void)

Funkcja uruchamiana po naciśnięciu przycisku.

Wartość zwracana

Ta funkcja nie zwraca wartości.

Przykład

Zdefiniuj funkcję wywołania zwrotnego poza main.

// Drive forward when F Up is pressed
void driveForward() {
  Drivetrain.driveFor(forward, 100, mm);
}

Zarejestruj wywołanie zwrotne wewnątrz main.

int main() {
  vexcodeInit();

  // Run driveForward when F Up is pressed
  Controller.ButtonFUp.pressed(driveForward);
}

released#

released rejestruje funkcję, która jest uruchamiana po zwolnieniu przycisku.

Dostępna funkcja

void released(void (* callback)(void)) const;

Parametr

Typ

Opis

callback

void (*)(void)

Funkcja uruchamiana po zwolnieniu przycisku.

Wartość zwracana

Ta funkcja nie zwraca wartości.

Przykład

Zdefiniuj funkcję wywołania zwrotnego poza main.

// Stop the drivetrain when F Up is released
void stopDriving() {
  Drivetrain.stop();
}

Zarejestruj wywołanie zwrotne wewnątrz main.

int main() {
  vexcodeInit();

  // Run stopDriving when F Up is released
  Controller.ButtonFUp.released(stopDriving);
}