Knop#
Invoering#
De button klasse is afgeleid van de brain basisklasse en biedt toegang tot de knoppen van de IQ (1e generatie) Brain, waardoor uw robot de drukken op de knoppen van de brain kan registreren.
Toegang#
De klasse brain biedt twaalf knopobjecten. Elk object is een instantie van de klasse button en kan worden benaderd via een brain-instantie.
Voorwerp |
Voorbeeldgebruik |
Beschrijving |
|---|---|---|
|
|
Controleer de knop |
|
|
Linkerknop |
|
|
Rechterknop |
Notities#
Het object
buttonwordt door de hersenen aangeleverd. Het wordt niet direct geconstrueerd.
Lidfuncties#
De klasse Button bevat de volgende lidfuncties:
pressed— Registreert een functie die moet worden aangeroepen wanneer de opgegeven knop wordt ingedrukt.released— Registreert een functie die moet worden aangeroepen wanneer de opgegeven knop wordt losgelaten.pressing— Geeft aan of de opgegeven knop wordt ingedrukt.
Before calling any button member functions, a brain instance must be created, as shown below:
// Create a brain instance
brain();
pressed#
Registreert een callbackfunctie die wordt uitgevoerd wanneer een specifieke knop op de hersenen wordt ingedrukt.
Available Functionsvoid pressed(
void (* callback)(void) ) const;
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
Een functie die wordt aangeroepen wanneer de opgegeven knop wordt ingedrukt. |
Deze functie retourneert geen waarde.
ExamplesDeze functie kan worden aangeroepen op elk brain button-object, bijvoorbeeld:
Brain.buttonCheckBrain.buttonLeftBrain.buttonRight
Definieer de callbackfunctie (buiten
int main())// Drive forward when check is pressed void driveForward() { Drivetrain.driveFor(forward, 100, mm); }Registreer de callback binnen
int main()int main() { /* vexcodeInit() is only required when using VEXcode. Remove vexcodeInit() if compiling in VS Code. */ vexcodeInit(); // Call driveForward when the check button is pressed Brain.buttonCheck.pressed(driveForward); }
released#
Registreert een callbackfunctie die wordt uitgevoerd wanneer een specifieke knop in de hersenen wordt losgelaten.
Available Functionsvoid released(
void (* callback)(void) ) const;
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
Een functie die wordt aangeroepen wanneer de opgegeven knop wordt losgelaten. |
Deze functie retourneert geen waarde.
ExamplesDeze functie kan worden aangeroepen op elk brain button-object, bijvoorbeeld:
Brain.buttonCheckBrain.buttonLeftBrain.buttonRight
Definieer de callbackfunctie (buiten
int main())// Drive backward when the left button is released void backUp() { Drivetrain.driveFor(reverse, 100, mm); }Registreer de callback binnen
int main()int main() { /* vexcodeInit() is only required when using VEXcode. Remove vexcodeInit() if compiling in VS Code. */ vexcodeInit(); // Call backUp when the left button is released Brain.buttonLeft.released(backUp); }
pressing#
Geeft aan of er momenteel op een specifieke knop in de hersenen is gedrukt.
Available Functionsbool pressing() const;
Deze functie accepteert geen parameters.
Return ValuesRetourneert een Booleaanse waarde die aangeeft of de opgegeven knop is ingedrukt:
true— De knop wordt ingedrukt.false— De knop wordt niet ingedrukt.
Deze functie kan worden aangeroepen op elk brain button-object, bijvoorbeeld:
Brain.buttonCheckBrain.buttonLeftBrain.buttonRight
// Turn right while right is pressed
while (true) {
if (Brain.buttonRight.pressing()) {
Drivetrain.turn(right);
} else {
Drivetrain.stop();
}
wait(5, msec);
}