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.

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 |
|---|---|---|
|
|
Przycisk E ▼. |
|
|
Przycisk E ▲. |
|
|
Przycisk F ▼. |
|
|
Przycisk F ▲. |
|
|
Przycisk Lewy joystick. Tylko kontroler IQ (2. generacja). |
|
|
Przycisk L ▼. |
|
|
Przycisk L ▲. |
|
|
Przycisk Prawy joystick. Tylko kontroler IQ (2. generacja). |
|
|
Przycisk R ▼. |
|
|
Przycisk R ▲. |
Notatki#
Przed użyciem funkcji członkowskiej przycisku
buttonutwórz obiekt kontroleracontroller.ButtonL3iButtonR3są 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ęto
pressed— 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 |
|---|---|---|
|
|
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 |
|---|---|---|
|
|
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);
}