Pengontrol#

Perkenalan#

Kelas controller merepresentasikan VEX EXP Controller yang terhubung ke EXP Brain. Objek controller dapat digunakan untuk mengakses nilai sumbu joystick, membaca status tombol, mendaftarkan callback tombol atau joystick, membuat controller bergetar, dan memeriksa apakah controller terhubung.

VEX EXP kompatibel dengan V5 Controller. Lihat API V5 Controller untuk informasi selengkapnya.

Saat satu atau lebih pengontrol dikonfigurasi di jendela Perangkat, VEXcode EXP juga menyediakan RemoteControlCodeEnabledVariabel global ini mengaktifkan atau menonaktifkan tindakan pengontrol yang dikonfigurasi di menu Perangkat.

Kelas Turunan#

Kelas controller menyediakan kelas turunan berikut:

  • Axis - Menyediakan akses ke nilai input sumbu joystick dan peristiwa perubahan.

  • Button - Memberikan akses ke status tombol dan callback event tombol.

Konstruktor#

1 - Membuat pengontrol menggunakan tipe pengontrol utama. Biasanya digunakan saat hanya satu pengontrol yang terhubung.

controller();

2 - Membuat pengontrol untuk tipe pengontrol yang ditentukan. Digunakan ketika dua pengontrol terhubung.

controller(
    controllerType id );

Fungsi yang Tersedia

controller();

controller(controllerType id);

Parameter

Jenis

Keterangan

id

controllerType

Opsional. Tipe pengontrol yang akan dibuat: primary untuk pengontrol utama yang terhubung ke Brain atau partner untuk pengontrol kedua yang terhubung ke Brain.

Catatan

Only one primary controller and one partner controller can be created in a single project.

Contoh

// Create the primary controller
controller Controller1 = controller();

// Create a partner controller
controller Controller2 = controller(partner);

Penghancur#

~pengontrol#

~controller destroys the controller object and releases associated resources.

Fungsi yang Tersedia

~controller();

Parameter#

Parameter

Jenis

Keterangan

id

controllerType

Jenis pengontrol yang sedang dibuat:

  • primary - Pengontrol utama yang terhubung ke Otak.
  • partner - Pengontrol mitra (kedua) yang terhubung ke Otak.

Catatan#

  • Hanya satu pengontrol utama primary dan satu pengontrol mitra ( partner boleh ada dalam satu proyek.

Contoh#

// Create an EXP controller instance
controller Controller = controller();

Fungsi Keanggotaan#

Kelas controller mencakup fungsi anggota berikut:

  • rumble - Menggetarkan pengontrol menggunakan pola.

  • installed - Memeriksa apakah pengontrol terhubung ke otak.

gemuruh#

rumble membuat kontroler bergetar menggunakan pola. Dalam rangkaian pola tersebut, titik-titik mewakili getaran pendek, garis-garis mewakili getaran panjang, dan spasi mewakili jeda.

Fungsi yang Tersedia

void rumble(const char *str);

Parameter

Jenis

Keterangan

str

const char *

Serangkaian titik, garis, dan spasi yang mewakili pola gemuruh.

Nilai Kembalian

Fungsi ini tidak mengembalikan nilai.

Contoh

// Rumble with a short-short-long pattern
Controller1.rumble("..-");

Pencari#

terpasang#

installed mengembalikan informasi apakah pengontrol terhubung ke Brain.

Fungsi yang Tersedia

bool installed();

Parameter

Fungsi ini tidak memiliki parameter.

Nilai Kembalian

Mengembalikan nilai Boolean.

  • true - The controller is installed/connected.
  • false - The controller is not installed/connected.

Variabel Global#

Kode Kontrol Jarak Jauh Diaktifkan#

RemoteControlCodeEnabled mengaktifkan atau menonaktifkan tindakan pengontrol yang dikonfigurasi di menu Perangkat. Tindakan yang dikonfigurasi pada pengontrol diaktifkan secara default.

Usage:
RemoteControlCodeEnabled = state;

Nilai

Keterangan

true

Mengaktifkan tindakan yang dikonfigurasi oleh controller.

false

Menonaktifkan tindakan yang dikonfigurasi pada controller.

Values
  • true - Controller-configured actions are enabled.
  • false - Controller-configured actions are disabled.
Notes
  • Aksi yang dikonfigurasi oleh controller diaktifkan secara default.

  • Variabel ini hanya akan berfungsi saat menggunakan VEXcode.

Examples
// Drive forward or backward using the left joystick
RemoteControlCodeEnabled = false;

while (true) {
  if (Controller1.Axis3.position() > 0) {
    Drivetrain.drive(forward);
  }
  else if (Controller1.Axis3.position() < 0) {
    Drivetrain.drive(reverse);
  }
  // Press A to use controller configured actions again
  else if (Controller1.ButtonA.pressing()) {
    break;
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

RemoteControlCodeEnabled = true;