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 tył kontrolera V5 z przyciskami zaznaczonymi na żółto. Na powierzchni kontrolera znajdują się przyciski strzałek w górę, w dół, w lewo i w prawo po lewej stronie oraz przyciski X, A, B, Y, obracające się zgodnie z ruchem wskazówek zegara od godziny 12 po prawej stronie. Na tylnej stronie kontrolera znajdują się odpowiednio przyciski L1, L2, R1 i R2 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

ButtonA

Controller.ButtonA.pressing()

Przycisk A.

ButtonB

Controller.ButtonB.pressing()

Przycisk B.

ButtonX

Controller.ButtonX.pressing()

Przycisk X.

ButtonY

Controller.ButtonY.pressing()

Przycisk Y.

ButtonDown

Controller.ButtonDown.pressing()

Przycisk W dół.

ButtonUp

Controller.ButtonUp.pressing()

Przycisk W górę.

ButtonLeft

Controller.ButtonLeft.pressing()

Przycisk Lewy.

ButtonRight

Controller.ButtonRight.pressing()

Przycisk Prawy.

ButtonL1

Controller.ButtonL1.pressing()

Przycisk L1.

ButtonL2

Controller.ButtonL2.pressing()

Przycisk L2.

ButtonR1

Controller.ButtonR1.pressing()

Przycisk R1.

ButtonR2

Controller.ButtonR2.pressing()

Przycisk R2.

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#

pilny#

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#

prasowany#

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 A is pressed
void driveForward() {
  Drivetrain.driveFor(forward, 100, mm);
}

Zarejestruj wywołanie zwrotne wewnątrz main.

int main() {
  vexcodeInit();

  // Run driveForward when A is pressed
  Controller.ButtonA.pressed(driveForward);
}

wydany#

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 A is released
void stopDriving() {
  Drivetrain.stop();
}

Zarejestruj wywołanie zwrotne wewnątrz main.

int main() {
  vexcodeInit();

  // Run stopDriving when A is released
  Controller.ButtonA.released(stopDriving);
}