Gomb#

Bevezetés#

A button osztály a controller osztály származtatott osztálya. Hozzáférést biztosít a vezérlő gombjainak állapotaihoz és a gombesemények visszahívásaihoz.

Egy button objektumhoz egy controller objektumon keresztül lehet hozzáférni. Nem közvetlenül konstruálható.

Az IQ 2. generációs kontroller elölnézete és hátulnézete, minden gombbal sárgán kiemelve. A kontroller felületén két joystick gomb található a bal felső és a jobb sarokban, az E fel és le gombok a bal joystick alatt, az F fel és le gombok pedig a jobb alatt találhatók. A kontroller hátulján a bal és jobb oldalon található az L fel és le gomb, valamint az R fel és le gomb.

Hozzáférés#

A controller osztály a következő gomb objektumokat biztosítja. Minden objektum a button osztály egy példánya.

Objektum

Példahasználat

Leírás

ButtonEDown

Controller.ButtonEDown.pressing()

Az E ▼ gomb.

ButtonEUp

Controller.ButtonEUp.pressing()

Az E ▲ gomb.

ButtonFDown

Controller.ButtonFDown.pressing()

Az F ▼ gomb.

ButtonFUp

Controller.ButtonFUp.pressing()

Az F ▲ gomb.

ButtonL3

Controller.ButtonL3.pressing()

A Bal oldali joystick gomb. Csak IQ (2. generációs) kontrollerrel.

ButtonLDown

Controller.ButtonLDown.pressing()

Az L ▼ gomb.

ButtonLUp

Controller.ButtonLUp.pressing()

Az L ▲ gomb.

ButtonR3

Controller.ButtonR3.pressing()

A Jobb oldali joystick gomb. Csak IQ (2. generációs) kontrollerrel.

ButtonRDown

Controller.ButtonRDown.pressing()

Az R ▼ gomb.

ButtonRUp

Controller.ButtonRUp.pressing()

Az R ▲ gomb.

Megjegyzések#

  • Mielőtt button tagfüggvényt használnánk, hozzunk létre egy controller objektumot.

  • ButtonL3 és ButtonR3 csak az IQ (2. generációs) vezérlőn érhető el.

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

Tagfüggvények#

A button osztály a következő tagfüggvényeket tartalmazza:

Getter — Olvasás gomb állapota.

  • pressing — Visszaadja, hogy a gomb le van-e nyomva.

Visszahívások — Függvények futtatása gombesemények bekövetkeztekor.

  • pressed — Regisztrál egy függvényt, amely a gomb megnyomásakor fut.

  • released — Regisztrál egy függvényt, amely a gomb elengedésekor fut.

Getter#

pressing#

pressing megnyomása közötti különbség azt adja vissza, hogy a gomb jelenleg le van-e nyomva.

Elérhető funkció

bool pressing() const;

Paraméterek

Ennek a függvénynek nincsenek paraméterei.

Visszatérési érték

Logikai értéket ad vissza.

  • true — A gombot megnyomják.

  • false — A gombot nem nyomják meg.

Példa

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

  wait(20, msec);
}

Visszahívások#

pressed#

pressed egy olyan függvényt regisztrál, amely a gomb megnyomásakor fut.

Elérhető funkció

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

Paraméter

Típus

Leírás

callback

void (*)(void)

Egy függvény, amely a gomb megnyomásakor fut.

Visszatérési érték

Ez a függvény nem ad vissza értéket.

Példa

Definiáld a visszahívó függvényt main változón kívül.

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

Regisztrálja a visszahívást main változón belül.

int main() {
  vexcodeInit();

  // Run driveForward when F Up is pressed
  Controller.ButtonFUp.pressed(driveForward);
}

released#

released egy olyan függvényt regisztrál, amely a gomb elengedésekor fut.

Elérhető funkció

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

Paraméter

Típus

Leírás

callback

void (*)(void)

Egy függvény, amely a gomb elengedésekor fut.

Visszatérési érték

Ez a függvény nem ad vissza értéket.

Példa

Definiáld a visszahívó függvényt main változón kívül.

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

Regisztrálja a visszahívást main változón belül.

int main() {
  vexcodeInit();

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