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.

Pohled na ovladač IQ 2. generace zepředu a zezadu, přičemž všechna tlačítka jsou zvýrazněna žlutě. Povrch ovladače obsahuje dvě joysticková tlačítka v levém a pravém horním rohu, s tlačítky E nahoru a dolů pod levým joystickem a F nahoru a dolů pod pravým. Na zadní straně ovladače se nacházejí tlačítka L nahoru a dolů a R nahoru a dolů na levé a pravé straně.

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

ButtonEDown

Controller.ButtonEDown.pressing()

Tlačítko E ▼.

ButtonEUp

Controller.ButtonEUp.pressing()

Tlačítko E ▲.

ButtonFDown

Controller.ButtonFDown.pressing()

Tlačítko F ▼.

ButtonFUp

Controller.ButtonFUp.pressing()

Tlačítko F ▲.

ButtonL3

Controller.ButtonL3.pressing()

Tlačítko Levé joysticku. Pouze pro ovladač IQ (2. generace).

ButtonLDown

Controller.ButtonLDown.pressing()

Tlačítko L ▼.

ButtonLUp

Controller.ButtonLUp.pressing()

Tlačítko L ▲.

ButtonR3

Controller.ButtonR3.pressing()

Tlačítko Pravého joysticku. Pouze pro ovladač IQ (2. generace).

ButtonRDown

Controller.ButtonRDown.pressing()

Tlačítko R ▼.

ButtonRUp

Controller.ButtonRUp.pressing()

Tlačítko R ▲.

Poznámky#

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

  • Tlačítka ButtonL3 a ButtonR3 jsou k dispozici pouze na ovladači IQ (2. generace).

// 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 R Up is pressed
while (true) {
  if (Controller.ButtonRUp.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 F Up is pressed
void driveForward() {
  Drivetrain.driveFor(forward, 100, mm);
}

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

int main() {
  vexcodeInit();

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

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

int main() {
  vexcodeInit();

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