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

เข้าถึง#
คลาสคอนโทรลเลอร์ controller มีอ็อบเจ็กต์แกนต่อไปนี้ โดยแต่ละอ็อบเจ็กต์เป็นอินสแตนซ์ของคลาสแกน axis
วัตถุแกน |
ตัวอย่างการใช้งาน |
คำอธิบาย |
|---|---|---|
|
|
แกนแนวนอนของจอยสติ๊กด้านขวา |
|
|
แกนแนวตั้งของจอยสติ๊กด้านขวา |
|
|
แกนแนวตั้งของจอยสติ๊กด้านซ้าย |
|
|
แกนแนวนอนของจอยสติ๊กด้านซ้าย |
หมายเหตุ#
ก่อนใช้งานฟังก์ชันสมาชิกแกน
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;
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ตัวเลือกเสริม หน่วยที่ใช้สำหรับค่าแกนที่ส่งคืน ค่าเริ่มต้นคือ |
ค่าที่ส่งคืน
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 ไว้ภายนอก 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); }