Poga#

Ievads#

button klase ir atvasināta no controller klases. Tā nodrošina piekļuvi kontroliera pogu stāvokļiem un pogu notikumu atzvanīšanas iespējām.

button objektam piekļūst, izmantojot controller objektu. Tas netiek konstruēts tieši.

EXP kontroliera priekšpuse un augšpuse ar dzeltenā krāsā iezīmētām kursorsvirām, bultiņu pogām un darbību pogām. Kontroliera virspusē ir divas kursorsviras kreisajā un labajā pusē, ar augšupvērstās un lejupvērstās bultiņas pogām kreisajā pusē un A un B pogām labajā pusē. Kontroliera augšpusē kreisajā pusē atrodas L1 un L2, bet labajā pusē - R1 un R2.

Piekļuve#

controller klase nodrošina šādus pogu objektus. Katrs objekts ir button klases instance.

Objekts

Lietošanas piemērs

Apraksts

ButtonA

Controller.ButtonA.pressing()

Poga A.

ButtonB

Controller.ButtonB.pressing()

Poga B.

ButtonDown

Controller.ButtonDown.pressing()

Poga Uz leju.

ButtonUp

Controller.ButtonUp.pressing()

Poga Augšup.

ButtonL1

Controller.ButtonL1.pressing()

Poga L1.

ButtonL2

Controller.ButtonL2.pressing()

Poga L2.

ButtonL3

Controller.ButtonL3.pressing()

Poga L3.

ButtonR1

Controller.ButtonR1.pressing()

Poga R1.

ButtonR2

Controller.ButtonR2.pressing()

Poga R2.

ButtonR3

Controller.ButtonR3.pressing()

Poga R3.

Piezīmes#

  • Pirms button dalībnieka funkcijas izmantošanas izveidojiet controller objektu.

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

Dalībnieku funkcijas#

button klase ietver šādas dalībfunkcijas:

Iegūt — Nolasīt pogas stāvokli.

  • pressing — Atgriež, vai poga tiek nospiesta.

Atzvanīšanas funkcijas — palaist funkcijas, kad notiek pogas notikumi.

  • pressed — Reģistrē funkciju, kas tiks palaista, nospiežot pogu.

  • released — Reģistrē funkciju, kas tiks palaista, atlaižot pogu.

Iegūtājs#

pressing#

pressing atgriež, vai poga pašlaik tiek nospiesta.

Pieejamās funkcijas

bool pressing() const;

Parametri

Šai funkcijai nav parametru.

Atgriešanas vērtība

Atgriež Būla vērtību.

  • true — Poga tiek nospiesta.

  • false — Poga netiek nospiesta.

Piemērs

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

  wait(20, msec);
}

Atzvanīšanas#

pressed#

pressed reģistrē funkciju, kas darbojas, nospiežot pogu.

Pieejamās funkcijas

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

Parametrs

Tips

Apraksts

callback

void (*)(void)

Funkcija, kas darbojas, nospiežot pogu.

Atgriešanas vērtība

Šī funkcija neatgriež vērtību.

Piemērs

Definējiet atzvanīšanas funkciju ārpus main.

// Drive forward when R1 is pressed
void driveForward() {
  Drivetrain.driveFor(forward, 200, mm);
}

Reģistrējiet atzvanīšanas signālu main iekšpusē.

int main() {
  vexcodeInit();

  // Run driveForward when R1 is pressed
  Controller.ButtonR1.pressed(driveForward);
}

released#

released reģistrē funkciju, kas darbojas, kad poga tiek atlaista.

Pieejamās funkcijas

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

Parametrs

Tips

Apraksts

callback

void (*)(void)

Funkcija, kas darbojas, kad poga tiek atlaista.

Atgriešanas vērtība

Šī funkcija neatgriež vērtību.

Piemērs

Definējiet atzvanīšanas funkciju ārpus main.

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

Reģistrējiet atzvanīšanas signālu main iekšpusē.

int main() {
  vexcodeInit();

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