Pengontrol#

Perkenalan#

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

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

Saat satu atau lebih Controller dikonfigurasi di jendela Devices, VEXcode V5 juga menyediakan RemoteControlCodeEnabledVariabel global ini mengaktifkan atau menonaktifkan tindakan Controller yang dikonfigurasi di menu Devices.

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.

  • Screen - Menyediakan fungsi untuk menulis teks ke layar pengontrol.

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 Controller yang akan dibuat: primary untuk Controller utama yang terhubung ke Brain atau partner untuk Controller 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 a V5 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 Controller bergetar menggunakan pola tertentu. 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 Otak.

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 Pengontrol diaktifkan secara default.

Usage:
RemoteControlCodeEnabled = state;

Nilai

Keterangan

true

Mengaktifkan tindakan yang dikonfigurasi pada 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.

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;