Tombol#

Perkenalan#

Kelas button adalah kelas turunan dari kelas controller. Kelas ini menyediakan akses ke status tombol controller dan callback event tombol.

Objek tombol button diakses melalui objek pengontrol controller Objek ini tidak dibuat secara langsung.

Kontroler IQ (generasi ke-1) memiliki delapan objek tombol utama. Jika Kontroler IQ (generasi ke-2) dihubungkan ke Brain IQ (generasi ke-1), tombol joystick ButtonL3 dan ButtonR3 juga dapat digunakan.

Pengontrol IQ dengan semua tombol disorot.

Mengakses#

Kelas controller menyediakan objek tombol berikut. Setiap objek merupakan instance dari kelas button.

Obyek

Contoh Penggunaan

Keterangan

ButtonEDown

Controller.ButtonEDown.pressing()

Tombol E ▼.

ButtonEUp

Controller.ButtonEUp.pressing()

Tombol E ▲.

ButtonFDown

Controller.ButtonFDown.pressing()

Tombol F ▼.

ButtonFUp

Controller.ButtonFUp.pressing()

Tombol F ▲.

ButtonLDown

Controller.ButtonLDown.pressing()

Tombol L ▼.

ButtonLUp

Controller.ButtonLUp.pressing()

Tombol L ▲.

ButtonRDown

Controller.ButtonRDown.pressing()

Tombol R ▼.

ButtonRUp

Controller.ButtonRUp.pressing()

Tombol R ▲.

ButtonL3

Controller.ButtonL3.pressing()

Tombol Joystick Kiri. Hanya untuk Controller IQ (generasi ke-2).

ButtonR3

Controller.ButtonR3.pressing()

Tombol Joystick Kanan. Hanya untuk Controller IQ (generasi ke-2).

Catatan#

  • Sebelum menggunakan fungsi anggota tombol button , buat objek pengontrol controller.

  • ButtonL3 dan ButtonR3 hanya tersedia saat Kontroler IQ (generasi ke-2) terhubung.

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

Fungsi Keanggotaan#

Kelas button mencakup fungsi anggota berikut:

Getter — Membaca status tombol.

  • pressing — Mengembalikan apakah tombol sedang ditekan.

Callback — Menjalankan fungsi saat terjadi peristiwa tombol.

  • pressed — Mendaftarkan fungsi yang akan dijalankan saat tombol ditekan.

  • released — Mendaftarkan fungsi yang akan dijalankan saat tombol dilepas.

Pencari#

pressing#

Menekan pressing akan mengembalikan informasi apakah tombol sedang ditekan atau tidak.

Fungsi yang Tersedia

bool pressing() const;

Parameter

Fungsi ini tidak memiliki parameter.

Nilai Kembalian

Mengembalikan nilai Boolean.

  • true — Tombol sedang ditekan.

  • false — Tombol tidak ditekan.

Contoh

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

  wait(20, msec);
}

Panggilan balik#

pressed#

pressed mendaftarkan fungsi yang berjalan saat tombol ditekan.

Fungsi yang Tersedia

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

Parameter

Jenis

Keterangan

callback

void (*)(void)

Sebuah fungsi yang dijalankan saat tombol ditekan.

Nilai Kembalian

Fungsi ini tidak mengembalikan nilai.

Contoh

Definisikan fungsi callback di luar main.

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

Daftarkan callback di dalam main.

int main() {
  vexcodeInit();

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

released#

released mendaftarkan sebuah fungsi yang akan dijalankan saat tombol dilepas.

Fungsi yang Tersedia

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

Parameter

Jenis

Keterangan

callback

void (*)(void)

Sebuah fungsi yang dijalankan saat tombol dilepas.

Nilai Kembalian

Fungsi ini tidak mengembalikan nilai.

Contoh

Definisikan fungsi callback di luar main.

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

Daftarkan callback di dalam main.

int main() {
  vexcodeInit();

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