แกน#

การแนะนำ#

คลาสแกน axis เป็นคลาสที่สืบทอดมาจากคลาส controller โดยจะให้การเข้าถึงค่าแกนจอยสติ๊กของตัวควบคุมและฟังก์ชันเรียกกลับการเปลี่ยนแปลงแกนจอยสติ๊ก

วัตถุแกน axis จะถูกเข้าถึงผ่านวัตถุตัวควบคุม controller โดยไม่ได้สร้างขึ้นโดยตรง

คอนโทรลเลอร์ IQ รุ่นแรกที่มีแกนจอยสติ๊กทั้งสี่แกนถูกเน้น

เข้าถึง#

คลาสคอนโทรลเลอร์ controller มีอ็อบเจ็กต์แกนต่อไปนี้ โดยแต่ละอ็อบเจ็กต์เป็นอินสแตนซ์ของคลาสแกน axis

วัตถุแกน

ตัวอย่างการใช้งาน

คำอธิบาย

Axis1

Controller.Axis1.position()

แกนแนวนอนของจอยสติ๊กด้านขวา

Axis2

Controller.Axis2.position()

แกนแนวตั้งของจอยสติ๊กด้านขวา

Axis3

Controller.Axis3.position()

แกนแนวตั้งของจอยสติ๊กด้านซ้าย

Axis4

Controller.Axis4.position()

แกนแนวนอนของจอยสติ๊กด้านซ้าย

หมายเหตุ#

  • ก่อนใช้งานฟังก์ชันสมาชิกแกน axis ให้สร้างวัตถุตัวควบคุม controller ก่อน

  • ตำแหน่ง position จะส่งคืนค่าตั้งแต่ -100 ถึง 100

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

ฟังก์ชันสมาชิก#

คลาสแกน axis ประกอบด้วยฟังก์ชันสมาชิกต่อไปนี้:

Getter — อ่านค่าตำแหน่งแกนจอยสติ๊ก

  • position — ส่งคืนตำแหน่งของแกนจอยสติ๊ก

ฟังก์ชันเรียกกลับ — เรียกใช้ฟังก์ชันเมื่อตำแหน่งของจอยสติ๊กเปลี่ยนแปลงไปตามแกนใดแกนหนึ่ง

  • changed — เรียกใช้ฟังก์ชันเมื่อตำแหน่งของจอยสติ๊กเปลี่ยนไปตามแกนนั้น

เกตเตอร์#

position#

ตำแหน่ง position ส่งคืนตำแหน่งของแกนจอยสติ๊กเป็นค่าตั้งแต่ -100 ถึง 100

ฟังก์ชันที่มีให้ใช้งาน

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

พารามิเตอร์

พิมพ์

คำอธิบาย

units

percentUnits

ตัวเลือกเสริม หน่วยที่ใช้สำหรับค่าแกนที่ส่งคืน ค่าเริ่มต้นคือ percentUnits::pct.

ค่าที่ส่งคืน

Returns an int32_t value from -100 to 100.

  • 100 — แกนจอยสติ๊กเคลื่อนที่ไปจนสุดในทิศทางบวก

  • 0 — แกนจอยสติ๊กอยู่ตรงกลาง

  • -100 — แกนจอยสติ๊กถูกเลื่อนไปจนสุดในทิศทางลบ

ตัวอย่าง

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

การเรียกกลับ#

changed#

changed จะเรียกใช้ฟังก์ชันเมื่อตำแหน่งของจอยสติ๊กเปลี่ยนแปลงไปตามแกนนั้น

ฟังก์ชันที่มีให้ใช้งาน

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

พารามิเตอร์

พิมพ์

คำอธิบาย

callback

void (*)(void)

ฟังก์ชันที่จะทำงานทุกครั้งที่ตำแหน่งของจอยสติ๊กเปลี่ยนแปลงไปตามแกนนั้น

พารามิเตอร์

พิมพ์

คำอธิบาย

callback

void (*)(void)

ฟังก์ชันเรียกกลับที่กำหนดไว้ก่อนหน้านี้ซึ่งจะถูกเรียกโดยอัตโนมัติเมื่อค่าแกนเปลี่ยนแปลง ฟังก์ชันต้องตรงกับลายเซ็นเรียกกลับที่ต้องการ ดู ฟังก์ชันเรียกกลับ สำหรับข้อมูลเพิ่มเติม

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

ตัวอย่าง

กำหนดฟังก์ชัน callback ไว้ภายนอก main.

กำหนดฟังก์ชันเรียกกลับ (นอก int main())

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

ลงทะเบียนฟังก์ชันเรียกกลับภายใน 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);
}