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.

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