Knapp#

Introduktion#

Klassen button är en härledd klass av klassen controller. Den ger åtkomst till controllerknappstatus och återanrop för knapphändelser.

Ett button nås via ett controller Det är inte konstruerat direkt.

En fram- och baksidavy av IQ 2:a generationens kontrollenhet med alla knappar markerade gult. Kontrollenhetens yta innehåller två joystickknappar i det övre vänstra och högra hörnet, med E upp och ner under den vänstra joysticken och F upp och ner under den högra. På baksidan av kontrollenheten finns L upp och ner och R upp och ner på vänster respektive höger sida.

Tillträde#

Klassen controller tillhandahåller följande knappobjekt. Varje objekt är en instans av klassen button.

Objekt

Exempel på användning

Beskrivning

ButtonEDown

Controller.ButtonEDown.pressing()

E ▼-knappen.

ButtonEUp

Controller.ButtonEUp.pressing()

E ▲-knappen.

ButtonFDown

Controller.ButtonFDown.pressing()

F ▼-knappen.

ButtonFUp

Controller.ButtonFUp.pressing()

F ▲-knappen.

ButtonL3

Controller.ButtonL3.pressing()

Vänster joystick-knapp. Endast IQ-kontroll (2:a generationen).

ButtonLDown

Controller.ButtonLDown.pressing()

L ▼-knappen.

ButtonLUp

Controller.ButtonLUp.pressing()

L ▲-knappen.

ButtonR3

Controller.ButtonR3.pressing()

Höger joystick-knapp. Endast IQ-kontroll (2:a generationen).

ButtonRDown

Controller.ButtonRDown.pressing()

R ▼-knappen.

ButtonRUp

Controller.ButtonRUp.pressing()

R ▲-knappen.

Anteckningar#

  • Innan du använder en button medlemsfunktion, skapa ett controller -objekt.

  • ButtonL3 och ButtonR3 är endast tillgängliga på IQ-kontrollen (2:a generationen).

// Create a controller object
controller Controller = controller();

Medlemsfunktioner#

Klassen button innehåller följande medlemsfunktioner:

Getter — Läs knappens tillstånd.

  • pressing — Returnerar om knappen trycks ner.

Återanrop — Kör funktioner när knapphändelser inträffar.

  • pressed — Registrerar en funktion som ska köras när knappen trycks ned.

  • released — Registrerar en funktion som ska köras när knappen släpps.

Getter#

pressing#

pressing , anger du om knappen trycks ned för närvarande.

Tillgänglig funktion

bool pressing() const;

Parametrar

Den här funktionen har inga parametrar.

Returvärde

Returnerar ett booleskt värde.

  • true — Knappen trycks ned.

  • false — Knappen trycks inte ned.

Exempel

// Turn right while R Up is pressed
while (true) {
  if (Controller.ButtonRUp.pressing()) {
    Drivetrain.turn(right);
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

Återuppringningar#

pressed#

pressed registrerar en funktion som körs när knappen trycks ner.

Tillgänglig funktion

void pressed(void (* callback)(void)) const;

Parameter

Typ

Beskrivning

callback

void (*)(void)

En funktion som körs när knappen trycks ner.

Returvärde

Den här funktionen returnerar inget värde.

Exempel

Definiera callback-funktionen utanför main.

// Drive forward when F Up is pressed
void driveForward() {
  Drivetrain.driveFor(forward, 100, mm);
}

Registrera återuppringningen inuti main.

int main() {
  vexcodeInit();

  // Run driveForward when F Up is pressed
  Controller.ButtonFUp.pressed(driveForward);
}

released#

released registrerar en funktion som körs när knappen släpps.

Tillgänglig funktion

void released(void (* callback)(void)) const;

Parameter

Typ

Beskrivning

callback

void (*)(void)

En funktion som körs när knappen släpps.

Returvärde

Den här funktionen returnerar inget värde.

Exempel

Definiera callback-funktionen utanför main.

// Stop the drivetrain when F Up is released
void stopDriving() {
  Drivetrain.stop();
}

Registrera återuppringningen inuti main.

int main() {
  vexcodeInit();

  // Run stopDriving when F Up is released
  Controller.ButtonFUp.released(stopDriving);
}