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.

Przód i góra kontrolera EXP z joystickami, przyciskami strzałek i przyciskami akcji zaznaczonymi na żółto. Na powierzchni kontrolera znajdują się dwa joysticki po lewej i prawej stronie, przyciski strzałek w górę i w dół po lewej oraz przyciski A i B po prawej. Na górze kontrolera znajdują się przyciski L1 i L2 po lewej stronie oraz R1 i R2 po 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

ButtonA

Controller.ButtonA.pressing()

Przycisk A.

ButtonB

Controller.ButtonB.pressing()

Przycisk B.

ButtonDown

Controller.ButtonDown.pressing()

Przycisk W dół.

ButtonUp

Controller.ButtonUp.pressing()

Przycisk W górę.

ButtonL1

Controller.ButtonL1.pressing()

Przycisk L1.

ButtonL2

Controller.ButtonL2.pressing()

Przycisk L2.

ButtonL3

Controller.ButtonL3.pressing()

Przycisk L3.

ButtonR1

Controller.ButtonR1.pressing()

Przycisk R1.

ButtonR2

Controller.ButtonR2.pressing()

Przycisk R2.

ButtonR3

Controller.ButtonR3.pressing()

Przycisk R3.

Notatki#

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

// 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 L1 is pressed
while (true) {
  if (Controller.ButtonL1.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 R1 is pressed
void driveForward() {
  Drivetrain.driveFor(forward, 200, mm);
}

Zarejestruj wywołanie zwrotne wewnątrz main.

int main() {
  vexcodeInit();

  // Run driveForward when R1 is pressed
  Controller.ButtonR1.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 R1 is released
void stopDriving() {
  Drivetrain.stop();
}

Zarejestruj wywołanie zwrotne wewnątrz main.

int main() {
  vexcodeInit();

  // Run stopDriving when R1 is released
  Controller.ButtonR1.released(stopDriving);
}