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 EXP vezérlő eleje és teteje, a joystickokkal, nyílgombokkal és akciógombokkal, sárga színnel kiemelve. A vezérlő felületén két joystick található balra és jobbra, bal oldalon fel és le nyílgombokkal, jobb oldalon pedig A és B gombokkal. A vezérlő tetején bal oldalon az L1 és L2, jobb oldalon pedig az R1 és R2 található.

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

ButtonA

Controller.ButtonA.pressing()

Az A gomb.

ButtonB

Controller.ButtonB.pressing()

A B gomb.

ButtonDown

Controller.ButtonDown.pressing()

A Le gomb.

ButtonUp

Controller.ButtonUp.pressing()

A Fel gomb.

ButtonL1

Controller.ButtonL1.pressing()

Az L1 gomb.

ButtonL2

Controller.ButtonL2.pressing()

Az L2 gomb.

ButtonL3

Controller.ButtonL3.pressing()

Az L3 gomb.

ButtonR1

Controller.ButtonR1.pressing()

Az R1 gomb.

ButtonR2

Controller.ButtonR2.pressing()

Az R2 gomb.

ButtonR3

Controller.ButtonR3.pressing()

Az R3 gomb.

Megjegyzések#

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

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

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

int main() {
  vexcodeInit();

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

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

int main() {
  vexcodeInit();

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