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.

IQ 2. paaudzes kontroliera priekšējais un aizmugures skats, visas pogas iezīmētas dzeltenā krāsā. Kontroliera virsmas augšējā kreisajā un labajā stūrī ir divas kursorsviras pogas, zem kreisās kursorsviras ir E uz augšu un uz leju, bet zem labās - F uz augšu un uz leju. Kontroliera aizmugurē kreisajā un labajā pusē ir attiecīgi L uz augšu un uz leju, bet R uz augšu un uz leju.

Piekļuve#

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

Objekts

Lietošanas piemērs

Apraksts

ButtonEDown

Controller.ButtonEDown.pressing()

Poga E ▼.

ButtonEUp

Controller.ButtonEUp.pressing()

Poga E ▲.

ButtonFDown

Controller.ButtonFDown.pressing()

Poga F ▼.

ButtonFUp

Controller.ButtonFUp.pressing()

Poga F ▲.

ButtonL3

Controller.ButtonL3.pressing()

Kreisās kursorsviras poga. Tikai IQ (2. paaudzes) kontrolierim.

ButtonLDown

Controller.ButtonLDown.pressing()

Poga L ▼.

ButtonLUp

Controller.ButtonLUp.pressing()

Poga L ▲.

ButtonR3

Controller.ButtonR3.pressing()

Labās puses kursorsviras poga. Tikai IQ (2. paaudzes) kontrolierim.

ButtonRDown

Controller.ButtonRDown.pressing()

Poga R ▼.

ButtonRUp

Controller.ButtonRUp.pressing()

Poga R ▲.

Piezīmes#

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

  • ButtonL3 un ButtonR3 ir pieejamas tikai IQ (2. paaudzes) kontrolierim.

// 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 R Up is pressed
while (true) {
  if (Controller.ButtonRUp.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 F Up is pressed
void driveForward() {
  Drivetrain.driveFor(forward, 100, mm);
}

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

int main() {
  vexcodeInit();

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

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

int main() {
  vexcodeInit();

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