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.

Kontroler IQ (1. generacji) ma osiem głównych przycisków. Po podłączeniu kontrolera IQ (2. generacji) do kontrolera IQ (1. generacji) można również używać przycisków joysticka ButtonL3 i ButtonR3.

Kontroler IQ ze wszystkimi podświetlonymi przyciskami.

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 ▲.

ButtonLDown

Controller.ButtonLDown.pressing()

Przycisk L ▼.

ButtonLUp

Controller.ButtonLUp.pressing()

Przycisk L ▲.

ButtonRDown

Controller.ButtonRDown.pressing()

Przycisk R ▼.

ButtonRUp

Controller.ButtonRUp.pressing()

Przycisk R ▲.

ButtonL3

Controller.ButtonL3.pressing()

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

ButtonR3

Controller.ButtonR3.pressing()

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

Notatki#

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

  • ButtonL3 i ButtonR3 są dostępne tylko po podłączeniu kontrolera IQ (2. generacji).

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