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.

Tampilan depan dan belakang Kontroler IQ generasi ke-2 dengan semua tombol disorot kuning. Permukaan kontroler berisi dua tombol joystick di sudut kiri atas dan kanan atas, dengan E atas dan bawah di bawah joystick kiri dan F atas dan bawah di bawah joystick kanan. Di bagian belakang kontroler terdapat L atas dan bawah serta R atas dan bawah di sisi kiri dan kanan masing-masing.

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 ▲.

ButtonL3

Controller.ButtonL3.pressing()

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

ButtonLDown

Controller.ButtonLDown.pressing()

Tombol L ▼.

ButtonLUp

Controller.ButtonLUp.pressing()

Tombol L ▲.

ButtonR3

Controller.ButtonR3.pressing()

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

ButtonRDown

Controller.ButtonRDown.pressing()

Tombol R ▼.

ButtonRUp

Controller.ButtonRUp.pressing()

Tombol R ▲.

Catatan#

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

  • ButtonL3 dan ButtonR3 hanya tersedia pada Controller IQ (generasi ke-2).

// 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 dilepaskan.

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);
}