Mygtukas#

Įvadas#

button klasė yra išvestinė iš controller klasės. Ji suteikia prieigą prie valdiklio mygtukų būsenų ir mygtukų įvykių atšaukimų.

button objektas pasiekiamas per controller objektą. Jis nėra konstruojamas tiesiogiai.

IQ antros kartos valdiklio priekinis ir galinis vaizdas, visi mygtukai paryškinti geltonai. Valdiklio paviršiaus viršutiniame kairiajame ir dešiniajame kampuose yra du valdymo svirties mygtukai: E aukštyn ir žemyn po kairiuoju valdymo svirtimi ir F aukštyn ir žemyn po dešiniuoju. Valdiklio gale, kairėje ir dešinėje pusėse, yra L aukštyn ir žemyn bei R aukštyn ir žemyn.

Prieiga#

controller klasė teikia šiuos mygtukų objektus. Kiekvienas objektas yra button klasės egzempliorius.

Objektas

Naudojimo pavyzdys

Aprašymas

ButtonEDown

Controller.ButtonEDown.pressing()

Mygtukas E ▼.

ButtonEUp

Controller.ButtonEUp.pressing()

Mygtukas E ▲.

ButtonFDown

Controller.ButtonFDown.pressing()

Mygtukas F ▼.

ButtonFUp

Controller.ButtonFUp.pressing()

Mygtukas F ▲.

ButtonL3

Controller.ButtonL3.pressing()

Kairioji valdymo svirtis. Tik IQ (2-osios kartos) valdikliui.

ButtonLDown

Controller.ButtonLDown.pressing()

Mygtukas L ▼.

ButtonLUp

Controller.ButtonLUp.pressing()

Mygtukas L ▲.

ButtonR3

Controller.ButtonR3.pressing()

Dešinysis valdymo svirties mygtukas. Tik IQ (2-osios kartos) valdikliui.

ButtonRDown

Controller.ButtonRDown.pressing()

Mygtukas R ▼.

ButtonRUp

Controller.ButtonRUp.pressing()

Mygtukas R ▲.

Pastabos#

  • Prieš naudodami button nario funkciją, sukurkite controller objektą.

  • ButtonL3 ir ButtonR3 galimi tik IQ (2-osios kartos) valdiklyje.

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

Narių funkcijos#

button klasė apima šias narines funkcijas:

Getter – skaitymo mygtuko būsena.

  • pressing — Grąžina, ar mygtukas yra paspaudžiamas.

Atgaliniai iškvietimai – vykdyti funkcijas, kai įvyksta mygtuko įvykiai.

  • pressed — Registruoja funkciją, kuri bus vykdoma paspaudus mygtuką.

  • released — Registruoja funkciją, kuri bus vykdoma atleidus mygtuką.

Getteris#

pressing#

pressing grąžina, ar mygtukas šiuo metu yra paspaustas.

Galima funkcija

bool pressing() const;

Parametrai

Ši funkcija neturi parametrų.

Grąžinimo vertė

Grąžina loginę reikšmę.

  • true — Mygtukas yra paspaudžiamas.

  • false — Mygtukas nespaudžiamas.

Pavyzdys

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

  wait(20, msec);
}

Atgaliniai skambučiai#

pressed#

pressed užregistruoja funkciją, kuri paleidžiama paspaudus mygtuką.

Galima funkcija

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

Parametras

Tipas

Aprašymas

callback

void (*)(void)

Funkcija, kuri paleidžiama paspaudus mygtuką.

Grąžinimo vertė

Ši funkcija negrąžina reikšmės.

Pavyzdys

Apibrėžkite grįžtamojo ryšio funkciją už main ribų.

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

Užregistruokite atgalinį iškvietimą main viduje.

int main() {
  vexcodeInit();

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

released#

released užregistruoja funkciją, kuri paleidžiama atleidus mygtuką.

Galima funkcija

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

Parametras

Tipas

Aprašymas

callback

void (*)(void)

Funkcija, kuri paleidžiama atleidus mygtuką.

Grąžinimo vertė

Ši funkcija negrąžina reikšmės.

Pavyzdys

Apibrėžkite grįžtamojo ryšio funkciją už main ribų.

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

Užregistruokite atgalinį iškvietimą main viduje.

int main() {
  vexcodeInit();

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