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 (1. generációs) vezérlő nyolc fő gombbal rendelkezik. Ha egy IQ (2. generációs) vezérlő csatlakozik az IQ (1. generációs) agyhoz, akkor a joystick gombjai ButtonL3 és ButtonR3 is használhatók.

Az IQ vezérlő, minden gombja kiemelve.

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.

ButtonLDown

Controller.ButtonLDown.pressing()

Az L ▼ gomb.

ButtonLUp

Controller.ButtonLUp.pressing()

Az L ▲ gomb.

ButtonRDown

Controller.ButtonRDown.pressing()

Az R ▼ gomb.

ButtonRUp

Controller.ButtonRUp.pressing()

Az R ▲ gomb.

ButtonL3

Controller.ButtonL3.pressing()

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

ButtonR3

Controller.ButtonR3.pressing()

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

Megjegyzések#

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

  • ButtonL3 és ButtonR3 csak akkor érhetők el, ha IQ (2. generációs) vezérlő van csatlakoztatva.

// 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);
}