Tlačítko#

Zavedení#

Třída button je odvozenou třídou třídy controller. Poskytuje přístup ke stavům tlačítek Controlleru a zpětným voláním událostí tlačítek.

K objektu button se přistupuje prostřednictvím objektu controller Není konstruován přímo.

Přední a zadní strana ovladače V5 s tlačítky zvýrazněnými žlutě. Na povrchu ovladače jsou vlevo tlačítka se šipkami nahoru, dolů, vlevo a vpravo a vpravo tlačítka X, A, B, Y ve směru hodinových ručiček od 12 hodin. Na zadní straně ovladače jsou vlevo a vpravo tlačítka L1, L2, R1 a R2.

Přístup#

Třída controller poskytuje následující objekty button. Každý objekt je instancí třídy button.

Objekt

Příklad použití

Popis

ButtonA

Controller.ButtonA.pressing()

Tlačítko A.

ButtonB

Controller.ButtonB.pressing()

Tlačítko B.

ButtonX

Controller.ButtonX.pressing()

Tlačítko X.

ButtonY

Controller.ButtonY.pressing()

Tlačítko Y.

ButtonDown

Controller.ButtonDown.pressing()

Tlačítko Dolů.

ButtonUp

Controller.ButtonUp.pressing()

Tlačítko Nahoru.

ButtonLeft

Controller.ButtonLeft.pressing()

Tlačítko Levé.

ButtonRight

Controller.ButtonRight.pressing()

Tlačítko Doprava.

ButtonL1

Controller.ButtonL1.pressing()

Tlačítko L1.

ButtonL2

Controller.ButtonL2.pressing()

Tlačítko L2.

ButtonR1

Controller.ButtonR1.pressing()

Tlačítko R1.

ButtonR2

Controller.ButtonR2.pressing()

Tlačítko R2.

Poznámky#

  • Před použitím členské funkce button vytvořte objekt controller.

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

Členské funkce#

Třída button obsahuje následující členské funkce:

Getter — Čte stav tlačítka.

  • pressing — Vrátí, zda je tlačítko stisknuto.

Zpětná volání — Spouštějí funkce, když dojde k událostem tlačítek.

  • pressed — Registruje funkci, která se spustí při stisknutí tlačítka.

  • released — Zaregistruje funkci, která se spustí po uvolnění tlačítka.

Getter#

lisování#

pressing vrátí, zda je tlačítko aktuálně stisknuto.

Dostupná funkce

bool pressing() const;

Parametry

Tato funkce nemá parametry.

Návratová hodnota

Vrací booleovskou hodnotu.

  • true — Tlačítko je stisknuto.

  • false — Tlačítko není stisknuto.

Příklad

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

  wait(20, msec);
}

Zpětná volání#

lisované#

pressed zaregistruje funkci, která se spustí při stisknutí tlačítka.

Dostupná funkce

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

Parametr

Typ

Popis

callback

void (*)(void)

Funkce, která se spustí po stisknutí tlačítka.

Návratová hodnota

Tato funkce nevrací hodnotu.

Příklad

Definujte funkci zpětného volání mimo main.

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

Zaregistrujte zpětné volání uvnitř main.

int main() {
  vexcodeInit();

  // Run driveForward when A is pressed
  Controller.ButtonA.pressed(driveForward);
}

propuštěn#

released registruje funkci, která se spustí po uvolnění tlačítka.

Dostupná funkce

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

Parametr

Typ

Popis

callback

void (*)(void)

Funkce, která se spustí po uvolnění tlačítka.

Návratová hodnota

Tato funkce nevrací hodnotu.

Příklad

Definujte funkci zpětného volání mimo main.

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

Zaregistrujte zpětné volání uvnitř main.

int main() {
  vexcodeInit();

  // Run stopDriving when A is released
  Controller.ButtonA.released(stopDriving);
}