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

เข้าถึง#
คลาสคอนโทรลเลอร์ controller มีอ็อบเจ็กต์ปุ่มดังต่อไปนี้ โดยแต่ละอ็อบเจ็กต์เป็นอินสแตนซ์ของคลาสปุ่ม button
วัตถุ |
ตัวอย่างการใช้งาน |
คำอธิบาย |
|---|---|---|
|
|
ปุ่ม E ▼ |
|
|
ปุ่ม E ▲ |
|
|
ปุ่ม F ▼ |
|
|
ปุ่ม F ▲ |
|
|
ปุ่ม จอยสติ๊กซ้าย สำหรับคอนโทรลเลอร์ IQ (รุ่นที่ 2) เท่านั้น |
|
|
ปุ่ม L ▼ |
|
|
ปุ่ม L ▲ |
|
|
ปุ่ม จอยสติ๊กขวา สำหรับคอนโทรลเลอร์ IQ (รุ่นที่ 2) เท่านั้น |
|
|
ปุ่ม R ▼ |
|
|
ปุ่ม R ▲ |
หมายเหตุ#
ก่อนใช้งานฟังก์ชันสมาชิกปุ่ม
buttonให้สร้างอ็อบเจ็กต์ตัวควบคุมcontrollerก่อนButtonL3และButtonR3มีให้ใช้งานเฉพาะบนคอนโทรลเลอร์ IQ (รุ่นที่ 2) เท่านั้น
// Create a controller object
controller Controller = controller();
ฟังก์ชันสมาชิก#
คลาสปุ่ม button ประกอบด้วยฟังก์ชันสมาชิกต่อไปนี้:
Getter — อ่านสถานะของปุ่ม
pressing— ส่งคืนว่าปุ่มถูกกดหรือไม่
ฟังก์ชันเรียกกลับ — เรียกใช้ฟังก์ชันเมื่อเกิดเหตุการณ์กับปุ่ม
เกตเตอร์#
pressing#
การกดปุ่ม pressing จะแสดงว่าปุ่มนั้นกำลังถูกกดอยู่หรือไม่
ฟังก์ชันที่มีให้ใช้งาน
bool pressing() const;
พารามิเตอร์
ฟังก์ชันนี้ไม่มีพารามิเตอร์
ค่าที่ส่งคืน
ส่งคืนค่าบูลีน
true— กำลังกดปุ่มอยู่false— ไม่ได้กดปุ่ม
ตัวอย่าง
// Turn right while R Up is pressed
while (true) {
if (Controller.ButtonRUp.pressing()) {
Drivetrain.turn(right);
}
else {
Drivetrain.stop();
}
wait(20, msec);
}
การเรียกกลับ#
pressed#
pressed registers a function that runs when the button is pressed.
ฟังก์ชันที่มีให้ใช้งาน
void pressed(void (* callback)(void)) const;
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ฟังก์ชันที่จะทำงานเมื่อกดปุ่ม |
ค่าที่ส่งคืน
ฟังก์ชันนี้ไม่ส่งค่ากลับ
ตัวอย่าง
กำหนดฟังก์ชัน callback ไว้ภายนอก main.
// Drive forward when F Up is pressed
void driveForward() {
Drivetrain.driveFor(forward, 100, mm);
}
ลงทะเบียนฟังก์ชันเรียกกลับภายใน main.
int main() {
vexcodeInit();
// Run driveForward when F Up is pressed
Controller.ButtonFUp.pressed(driveForward);
}
released#
released ลงทะเบียนฟังก์ชันที่จะทำงานเมื่อปล่อยปุ่ม
ฟังก์ชันที่มีให้ใช้งาน
void released(void (* callback)(void)) const;
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ฟังก์ชันที่จะทำงานเมื่อปล่อยปุ่ม |
ค่าที่ส่งคืน
ฟังก์ชันนี้ไม่ส่งค่ากลับ
ตัวอย่าง
กำหนดฟังก์ชัน callback ไว้ภายนอก main.
// Stop the drivetrain when F Up is released
void stopDriving() {
Drivetrain.stop();
}
ลงทะเบียนฟังก์ชันเรียกกลับภายใน main.
int main() {
vexcodeInit();
// Run stopDriving when F Up is released
Controller.ButtonFUp.released(stopDriving);
}