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.

Framsidan och ovansidan av EXP-kontrollen med joysticks, pilknappar och åtgärdsknappar markerade i gult. På kontrollens yta finns två joysticks till vänster och höger, med uppåt- och nedåtpilar till vänster och A- och B-knappar till höger. På kontrollens ovansida finns L1 och L2 på vänster sida och R1 och R2 på 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

ButtonA

Controller.ButtonA.pressing()

A-knappen.

ButtonB

Controller.ButtonB.pressing()

B-knappen.

ButtonDown

Controller.ButtonDown.pressing()

Nedåt--knappen.

ButtonUp

Controller.ButtonUp.pressing()

Upp-knappen.

ButtonL1

Controller.ButtonL1.pressing()

L1-knappen.

ButtonL2

Controller.ButtonL2.pressing()

L2-knappen.

ButtonL3

Controller.ButtonL3.pressing()

L3-knappen.

ButtonR1

Controller.ButtonR1.pressing()

R1-knappen.

ButtonR2

Controller.ButtonR2.pressing()

R2-knappen.

ButtonR3

Controller.ButtonR3.pressing()

R3-knappen.

Anteckningar#

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

// 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 L1 is pressed
while (true) {
  if (Controller.ButtonL1.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 R1 is pressed
void driveForward() {
  Drivetrain.driveFor(forward, 200, mm);
}

Registrera återuppringningen inuti main.

int main() {
  vexcodeInit();

  // Run driveForward when R1 is pressed
  Controller.ButtonR1.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 R1 is released
void stopDriving() {
  Drivetrain.stop();
}

Registrera återuppringningen inuti main.

int main() {
  vexcodeInit();

  // Run stopDriving when R1 is released
  Controller.ButtonR1.released(stopDriving);
}