แกน#

การแนะนำ#

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

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

ตัวควบคุม VEX V5 พร้อมแกนรอบจอยสติ๊กที่ระบุหมายเลข แกนที่ 1 และ 2 อยู่รอบจอยสติ๊กด้านขวา และแกนที่ 3 และ 4 อยู่รอบจอยสติ๊กด้านซ้าย

เข้าถึง#

คลาสคอนโทรลเลอร์ 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 ส่งคืนตำแหน่งของแกนจอยสติ๊กเป็นค่าตั้งแต่ -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 จะเรียกใช้ฟังก์ชันเมื่อตำแหน่งของจอยสติ๊กเปลี่ยนแปลงไปตามแกนนั้น

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

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

พารามิเตอร์

พิมพ์

คำอธิบาย

callback

void (*)(void)

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

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

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

ตัวอย่าง

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

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

ลงทะเบียนฟังก์ชันเรียกกลับภายใน main.

int main() {
  vexcodeInit();

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