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.

IQ-kontrollen (1:a generationen) har åtta huvudknappar. Om en IQ-kontroll (2:a generationen) är ansluten till IQ-hjärnan (1:a generationen) kan även joystickknapparna ButtonL3 och ButtonR3 användas.

IQ-kontrollen med alla knappar markerade.

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.

ButtonLDown

Controller.ButtonLDown.pressing()

L ▼-knappen.

ButtonLUp

Controller.ButtonLUp.pressing()

L ▲-knappen.

ButtonRDown

Controller.ButtonRDown.pressing()

R ▼-knappen.

ButtonRUp

Controller.ButtonRUp.pressing()

R ▲-knappen.

ButtonL3

Controller.ButtonL3.pressing()

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

ButtonR3

Controller.ButtonR3.pressing()

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

Anteckningar#

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

  • ButtonL3 och ButtonR3 är endast tillgängliga när en IQ-kontroller (2:a generationen) är ansluten.

// 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);
}