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.

EXP valdiklio priekinė ir viršutinė pusės su geltonai paryškintais valdymo svirtimis, rodyklių mygtukais ir veiksmų mygtukais. Valdiklio paviršiuje yra dvi valdymo svirtys kairėje ir dešinėje, rodyklių aukštyn ir žemyn mygtukai kairėje ir A bei B mygtukai dešinėje. Valdiklio viršuje kairėje pusėje yra L1 ir L2, o dešinėje pusėje – R1 ir R2.

Prieiga#

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

Objektas

Naudojimo pavyzdys

Aprašymas

ButtonA

Controller.ButtonA.pressing()

Mygtukas A.

ButtonB

Controller.ButtonB.pressing()

Mygtukas B.

ButtonDown

Controller.ButtonDown.pressing()

Mygtukas Žemyn.

ButtonUp

Controller.ButtonUp.pressing()

Mygtukas Aukštyn.

ButtonL1

Controller.ButtonL1.pressing()

Mygtukas L1.

ButtonL2

Controller.ButtonL2.pressing()

Mygtukas L2.

ButtonL3

Controller.ButtonL3.pressing()

Mygtukas L3.

ButtonR1

Controller.ButtonR1.pressing()

Mygtukas R1.

ButtonR2

Controller.ButtonR2.pressing()

Mygtukas R2.

ButtonR3

Controller.ButtonR3.pressing()

Mygtukas R3.

Pastabos#

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

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

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

int main() {
  vexcodeInit();

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

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

int main() {
  vexcodeInit();

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