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 horní strana ovladače EXP s joysticky, šipkami a akčními tlačítky zvýrazněnými žlutě. Na povrchu ovladače jsou dva joysticky vlevo a vpravo, s šipkami nahoru a dolů vlevo a tlačítky A a B vpravo. Na horní straně ovladače jsou L1 a L2 vlevo a R1 a R2 vpravo.

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.

ButtonDown

Controller.ButtonDown.pressing()

Tlačítko Dolů.

ButtonUp

Controller.ButtonUp.pressing()

Tlačítko Nahoru.

ButtonL1

Controller.ButtonL1.pressing()

Tlačítko L1.

ButtonL2

Controller.ButtonL2.pressing()

Tlačítko L2.

ButtonL3

Controller.ButtonL3.pressing()

Tlačítko L3.

ButtonR1

Controller.ButtonR1.pressing()

Tlačítko R1.

ButtonR2

Controller.ButtonR2.pressing()

Tlačítko R2.

ButtonR3

Controller.ButtonR3.pressing()

Tlačítko R3.

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#

pressing#

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í#

pressed#

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 R1 is pressed
void driveForward() {
  Drivetrain.driveFor(forward, 200, mm);
}

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

int main() {
  vexcodeInit();

  // Run driveForward when R1 is pressed
  Controller.ButtonR1.pressed(driveForward);
}

released#

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 R1 is released
void stopDriving() {
  Drivetrain.stop();
}

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

int main() {
  vexcodeInit();

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