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

buttonCheck

Brain.buttonCheck.pressing()

Controleer de knop

buttonLeft

Brain.buttonLeft.pressing()

Linkerknop

buttonRight

Brain.buttonRight.pressing()

Rechterknop

Notities#

  • Het object button wordt 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 Functions
void pressed( 
  void (* callback)(void) ) const;

Parameters

Parameter

Type

Beschrijving

callback

void (*)(void)

Een functie die wordt aangeroepen wanneer de opgegeven knop wordt ingedrukt.

Return Values

Deze functie retourneert geen waarde.

Examples

Deze functie kan worden aangeroepen op elk brain button-object, bijvoorbeeld:

  • Brain.buttonCheck
  • Brain.buttonLeft
  • Brain.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 Functions
void released( 
  void (* callback)(void) ) const;

Parameters

Parameter

Type

Beschrijving

callback

void (*)(void)

Een functie die wordt aangeroepen wanneer de opgegeven knop wordt losgelaten.

Return Values

Deze functie retourneert geen waarde.

Examples

Deze functie kan worden aangeroepen op elk brain button-object, bijvoorbeeld:

  • Brain.buttonCheck
  • Brain.buttonLeft
  • Brain.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 Functions
bool pressing() const;

Parameters

Deze functie accepteert geen parameters.

Return Values

Retourneert een Booleaanse waarde die aangeeft of de opgegeven knop is ingedrukt:

  • true — De knop wordt ingedrukt.

  • false — De knop wordt niet ingedrukt.

Examples

Deze functie kan worden aangeroepen op elk brain button-object, bijvoorbeeld:

  • Brain.buttonCheck
  • Brain.buttonLeft
  • Brain.buttonRight
// Turn right while right is pressed
while (true) {
    if (Brain.buttonRight.pressing()) {
        Drivetrain.turn(right);
    } else {
        Drivetrain.stop();
    }
    wait(5, msec);
}