Sumbu#

Perkenalan#

Kelas axis adalah kelas turunan dari kelas controller. Kelas ini menyediakan akses ke nilai sumbu joystick controller dan callback perubahan sumbu joystick.

Objek sumbu axis diakses melalui objek pengontrol controller Objek tersebut tidak dibuat secara langsung.

Kontroler IQ generasi pertama dengan empat sumbu joystick disorot.

Mengakses#

Kelas controller menyediakan objek sumbu berikut. Setiap objek merupakan instance dari kelas axis.

Objek Sumbu

Contoh Penggunaan

Keterangan

Axis1

Controller.Axis1.position()

Sumbu horizontal joystick kanan.

Axis2

Controller.Axis2.position()

Sumbu vertikal joystick kanan.

Axis3

Controller.Axis3.position()

Sumbu vertikal joystick kiri.

Axis4

Controller.Axis4.position()

Sumbu horizontal joystick kiri.

Catatan#

  • Sebelum menggunakan fungsi anggota sumbu axis , buat objek pengontrol controller.

  • Posisi position mengembalikan nilai dari -100 hingga 100.

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

Fungsi Keanggotaan#

Kelas axis mencakup fungsi anggota berikut:

Getter — Membaca posisi sumbu joystick.

  • position — Mengembalikan posisi sumbu joystick.

Callback — Menjalankan fungsi ketika posisi joystick berubah di sepanjang sumbu.

  • changed — Menjalankan fungsi ketika posisi joystick berubah sepanjang sumbu tersebut.

Pencari#

position#

position mengembalikan posisi sumbu joystick sebagai nilai dari -100 hingga 100.

Fungsi yang Tersedia

int32_t position(percentUnits units = percentUnits::pct) const;

Parameter

Jenis

Keterangan

units

percentUnits

Opsional. Satuan yang digunakan untuk nilai sumbu yang dikembalikan. Nilai default adalah percentUnits::pct.

Nilai Kembalian

Mengembalikan nilai int32_t dari -100 hingga 100.

  • 100 — Sumbu joystick digerakkan sepenuhnya ke arah positif.

  • 0 — Sumbu joystick berada di tengah.

  • -100 — Sumbu joystick digerakkan sepenuhnya ke arah negatif.

Contoh

// Turn with the left joystick
while (true) {
  if (Controller.Axis4.position() > 10) {
    Drivetrain.turn(right);
  }
  else if (Controller.Axis4.position() < -10) {
    Drivetrain.turn(left);
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

Panggilan balik#

changed#

changed menjalankan sebuah fungsi ketika posisi joystick berubah sepanjang sumbu tersebut.

Fungsi yang Tersedia

void changed(void (* callback)(void)) const;

Parameter

Jenis

Keterangan

callback

void (*)(void)

Sebuah fungsi yang akan dijalankan setiap kali posisi joystick berubah sepanjang sumbu tersebut.

Parameter

Jenis

Keterangan

callback

void (*)(void)

Fungsi callback yang telah didefinisikan sebelumnya yang dipanggil secara otomatis ketika nilai sumbu berubah. Fungsi tersebut harus sesuai dengan tanda tangan callback yang dibutuhkan. Lihat Fungsi Callback untuk informasi lebih lanjut.

Return Values

Fungsi ini tidak mengembalikan nilai.

Contoh

Definisikan fungsi callback di luar main.

Definisikan fungsi callback (di luar int main())

// Play a sound when the left joystick moves
 void sounds() {
     Brain.playSound(siren);
     wait(1, seconds);
 }

Daftarkan fungsi callback di dalam int main()

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Call the function when the left joystick moves
  Controller.Axis4.changed(sounds);
}