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.

Pengontrol VEX V5 dengan sumbu di sekitar joystick diberi label. Sumbu 1 dan 2 berada di sekitar joystick kanan, dan Sumbu 3 dan 4 berada di sekitar joystick kiri.

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#

posisi#

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#

berubah#

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.

Nilai Kembalian

Fungsi ini tidak mengembalikan nilai.

Contoh

Definisikan fungsi callback di luar main.

// Rumble when the left joystick moves
void controllerRumble() {
  Controller.rumble(".");
}

Daftarkan callback di dalam main.

int main() {
  vexcodeInit();

  // Run controllerRumble when the joystick's position changes along Axis4
  Controller.Axis4.changed(controllerRumble);
}