Knop#
Invoering#
De klasse button is een afgeleide klasse van de klasse controller. Deze biedt toegang tot de status van de controllerknoppen en de callbacks voor knopgebeurtenissen.
Een object button knoppen wordt benaderd via een object met controller . Het wordt niet direct geconstrueerd.

Toegang#
De klasse controller biedt de volgende knopobjecten. Elk object is een instantie van de klasse button.
Voorwerp |
Voorbeeldgebruik |
Beschrijving |
|---|---|---|
|
|
De E ▼-knop. |
|
|
De E ▲-knop. |
|
|
De F ▼-knop. |
|
|
De F ▲-knop. |
|
|
De linker joystick-knop. Alleen voor IQ-controllers (2e generatie). |
|
|
De L ▼-knop. |
|
|
De L ▲-knop. |
|
|
De knop op de rechter joystick. Alleen voor IQ-controllers (2e generatie). |
|
|
De R ▼-knop. |
|
|
De R ▲-knop. |
Notities#
Voordat je een
buttonlidfunctie gebruikt, maak je eencontrollerobject aan.De knoppen
ButtonL3enButtonR3zijn alleen beschikbaar op de IQ-controller (2e generatie).
// Create a controller object
controller Controller = controller();
Lidfuncties#
De klasse button bevat de volgende lidfuncties:
Getter — Lees de status van de knop.
pressing— Geeft aan of de knop wordt ingedrukt.
Callbacks — Voer functies uit wanneer er op knoppen wordt gedrukt.
Getter#
pressing#
Door op pressing wordt gecontroleerd of de knop momenteel is ingedrukt.
Beschikbare functie
bool pressing() const;
Parameters
Deze functie heeft geen parameters.
Retourwaarde
Retourneert een Booleaanse waarde.
true— De knop wordt ingedrukt.false— De knop wordt niet ingedrukt.
Voorbeeld
// Turn right while R Up is pressed
while (true) {
if (Controller.ButtonRUp.pressing()) {
Drivetrain.turn(right);
}
else {
Drivetrain.stop();
}
wait(20, msec);
}
Terugbelverzoeken#
pressed#
pressed registreert een functie die wordt uitgevoerd wanneer de knop wordt ingedrukt.
Beschikbare functie
void pressed(void (* callback)(void)) const;
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
Een functie die wordt uitgevoerd wanneer de knop wordt ingedrukt. |
Retourwaarde
Deze functie retourneert geen waarde.
Voorbeeld
Definieer de callbackfunctie buiten main.
// Drive forward when F Up is pressed
void driveForward() {
Drivetrain.driveFor(forward, 100, mm);
}
Registreer de callback in main.
int main() {
vexcodeInit();
// Run driveForward when F Up is pressed
Controller.ButtonFUp.pressed(driveForward);
}
released#
released registreert een functie die wordt uitgevoerd wanneer de knop wordt losgelaten.
Beschikbare functie
void released(void (* callback)(void)) const;
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
Een functie die wordt uitgevoerd wanneer de knop wordt losgelaten. |
Retourwaarde
Deze functie retourneert geen waarde.
Voorbeeld
Definieer de callbackfunctie buiten main.
// Stop the drivetrain when F Up is released
void stopDriving() {
Drivetrain.stop();
}
Registreer de callback in main.
int main() {
vexcodeInit();
// Run stopDriving when F Up is released
Controller.ButtonFUp.released(stopDriving);
}