ตัวควบคุม#
การแนะนำ#
คลาสคอนโทรลเลอร์ controller แทนคอนโทรลเลอร์ VEX EXP ที่เชื่อมต่อกับ EXP Brain อ็อบเจ็กต์คอนโทรลเลอร์ controller สามารถใช้เพื่อเข้าถึงค่าแกนจอยสติ๊ก อ่านสถานะปุ่ม ลงทะเบียนการเรียกกลับของปุ่มหรือจอยสติ๊ก ทำให้คอนโทรลเลอร์สั่น และตรวจสอบว่าคอนโทรลเลอร์เชื่อมต่ออยู่หรือไม่
VEX EXP สามารถใช้งานร่วมกับ V5 Controller ได้ โปรดดู V5 Controller API สำหรับข้อมูลเพิ่มเติม
เมื่อมีการกำหนดค่าคอนโทรลเลอร์อย่างน้อยหนึ่งตัวในหน้าต่างอุปกรณ์ VEXcode EXP จะให้ค่า RemoteControlCodeEnabledด้วย ตัวแปรส่วนกลางนี้จะเปิดหรือปิดใช้งานการทำงานของคอนโทรลเลอร์ที่กำหนดค่าไว้ในเมนูอุปกรณ์
คลาสที่สืบทอดมา#
คลาสคอนโทรลเลอร์ controller มีคลาสย่อยต่อไปนี้:
ผู้สร้าง#
1 - สร้างคอนโทรลเลอร์โดยใช้ประเภทคอนโทรลเลอร์หลัก โดยทั่วไปจะใช้เมื่อเชื่อมต่อคอนโทรลเลอร์เพียงตัวเดียว
controller();
2 - สร้างคอนโทรลเลอร์สำหรับประเภทคอนโทรลเลอร์ที่ระบุ ใช้เมื่อเชื่อมต่อคอนโทรลเลอร์สองตัว
controller( controllerType id );
ฟังก์ชันที่มีให้ใช้งาน
controller();
controller(controllerType id);
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ตัวเลือกเสริม ประเภทคอนโทรลเลอร์ที่จะสร้าง: |
หมายเหตุ
สามารถสร้างคอนโทรลเลอร์หลัก primary ได้เพียงหนึ่งตัว และคอนโทรลเลอร์พันธมิตร partner ได้เพียงหนึ่งตัวในโปรเจกต์เดียว
ตัวอย่าง
// Create the primary controller
controller Controller1 = controller();
// Create a partner controller
controller Controller2 = controller(partner);
ตัวทำลาย#
~คอนโทรลเลอร์#
~controller destroys the controller object and releases associated resources.
ฟังก์ชันที่มีให้ใช้งาน
~controller();
พารามิเตอร์#
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ประเภทของตัวควบคุมที่กำลังสร้าง:
|
หมายเหตุ#
ในโครงการเดียวจะมีตัวควบคุมหลัก
primaryและตัวควบคุมพันธมิตรpartnerเท่านั้น
ตัวอย่าง#
// Create an EXP controller instance
controller Controller = controller();
ฟังก์ชันสมาชิก#
คลาสคอนโทรลเลอร์ controller ประกอบด้วยฟังก์ชันสมาชิกต่อไปนี้:
เสียงดังกึกก้อง#
rumble ทำให้ตัวควบคุมสั่นตามรูปแบบที่กำหนด ในรูปแบบการสั่นนั้น จุดคือการสั่นสั้นๆ ขีดคือการสั่นยาวๆ และช่องว่างคือการหยุดชั่วคราว
ฟังก์ชันที่มีให้ใช้งาน
void rumble(const char *str);
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
เส้นที่ประกอบด้วยจุด ขีด และช่องว่าง ซึ่งแสดงถึงรูปแบบการสั่นสะเทือน |
ค่าที่ส่งคืน
ฟังก์ชันนี้ไม่ส่งค่ากลับ
ตัวอย่าง
// Rumble with a short-short-long pattern
Controller1.rumble("..-");
เกตเตอร์#
ติดตั้ง#
installed ส่งคืนสถานะว่าคอนโทรลเลอร์เชื่อมต่อกับ Brain หรือไม่
ฟังก์ชันที่มีให้ใช้งาน
bool installed();
พารามิเตอร์
ฟังก์ชันนี้ไม่มีพารามิเตอร์
ค่าที่ส่งคืน
ส่งคืนค่าบูลีน
true- The controller is installed/connected.false- The controller is not installed/connected.
ตัวแปรทั่วโลก#
เปิดใช้งานรหัสควบคุมระยะไกล#
RemoteControlCodeEnabled เปิดใช้งานหรือปิดใช้งานการทำงานของคอนโทรลเลอร์ที่กำหนดค่าไว้ในเมนูอุปกรณ์ การทำงานของคอนโทรลเลอร์ที่กำหนดค่าไว้จะเปิดใช้งานโดยค่าเริ่มต้น
Usage:
RemoteControlCodeEnabled = state;
ค่า |
คำอธิบาย |
|---|---|
|
เปิดใช้งานการดำเนินการที่กำหนดค่าไว้ในคอนโทรลเลอร์ |
|
ปิดใช้งานการทำงานที่กำหนดค่าไว้ในคอนโทรลเลอร์ |
true- Controller-configured actions are enabled.false- Controller-configured actions are disabled.
โดยค่าเริ่มต้น การดำเนินการที่กำหนดค่าไว้ในคอนโทรลเลอร์จะเปิดใช้งานอยู่
ตัวแปรนี้จะใช้งานได้เฉพาะเมื่อใช้ VEXcode เท่านั้น
// Drive forward or backward using the left joystick
RemoteControlCodeEnabled = false;
while (true) {
if (Controller1.Axis3.position() > 0) {
Drivetrain.drive(forward);
}
else if (Controller1.Axis3.position() < 0) {
Drivetrain.drive(reverse);
}
// Press A to use controller configured actions again
else if (Controller1.ButtonA.pressing()) {
break;
}
else {
Drivetrain.stop();
}
wait(20, msec);
}
RemoteControlCodeEnabled = true;