ปุ่ม#

การแนะนำ#

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

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

ด้านหน้าและด้านบนของคอนโทรลเลอร์ EXP โดยมีจอยสติ๊ก ปุ่มลูกศร และปุ่มแอ็คชั่นไฮไลต์ด้วยสีเหลือง บนพื้นผิวของคอนโทรลเลอร์มีจอยสติ๊กสองอันอยู่ทางซ้ายและขวา โดยมีปุ่มลูกศรขึ้นและลงอยู่ทางซ้าย และปุ่ม A และ B อยู่ทางขวา ด้านบนของคอนโทรลเลอร์มีปุ่ม L1 และ L2 อยู่ทางซ้าย และปุ่ม R1 และ R2 อยู่ทางขวา

เข้าถึง#

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

วัตถุ

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

คำอธิบาย

ButtonA

Controller.ButtonA.pressing()

ปุ่ม A

ButtonB

Controller.ButtonB.pressing()

ปุ่ม B

ButtonDown

Controller.ButtonDown.pressing()

ปุ่ม ลง

ButtonUp

Controller.ButtonUp.pressing()

ปุ่ม ขึ้น

ButtonL1

Controller.ButtonL1.pressing()

ปุ่ม L1

ButtonL2

Controller.ButtonL2.pressing()

ปุ่ม L2

ButtonL3

Controller.ButtonL3.pressing()

ปุ่ม L3

ButtonR1

Controller.ButtonR1.pressing()

ปุ่ม R1

ButtonR2

Controller.ButtonR2.pressing()

ปุ่ม R2

ButtonR3

Controller.ButtonR3.pressing()

ปุ่ม R3

หมายเหตุ#

  • ก่อนใช้งานฟังก์ชันสมาชิกปุ่ม button ให้สร้างอ็อบเจ็กต์ตัวควบคุม controller ก่อน

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

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

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

Getter — อ่านสถานะของปุ่ม

  • pressing — ส่งคืนว่าปุ่มถูกกดหรือไม่

ฟังก์ชันเรียกกลับ — เรียกใช้ฟังก์ชันเมื่อเกิดเหตุการณ์กับปุ่ม

  • pressed — ลงทะเบียนฟังก์ชันที่จะทำงานเมื่อกดปุ่ม

  • released — ลงทะเบียนฟังก์ชันที่จะทำงานเมื่อปล่อยปุ่ม

เกตเตอร์#

pressing#

การกดปุ่ม pressing จะแสดงว่าปุ่มนั้นกำลังถูกกดอยู่หรือไม่

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

bool pressing() const;

พารามิเตอร์

ฟังก์ชันนี้ไม่มีพารามิเตอร์

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

ส่งคืนค่าบูลีน

  • true — กำลังกดปุ่มอยู่

  • false — ไม่ได้กดปุ่ม

ตัวอย่าง

// Turn right while L1 is pressed
while (true) {
  if (Controller.ButtonL1.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

void (*)(void)

ฟังก์ชันที่จะทำงานเมื่อกดปุ่ม

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

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

ตัวอย่าง

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

// Drive forward when R1 is pressed
void driveForward() {
  Drivetrain.driveFor(forward, 200, mm);
}

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

int main() {
  vexcodeInit();

  // Run driveForward when R1 is pressed
  Controller.ButtonR1.pressed(driveForward);
}

released#

released ลงทะเบียนฟังก์ชันที่จะทำงานเมื่อปล่อยปุ่ม

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

void released(void (* callback)(void)) const;

พารามิเตอร์

พิมพ์

คำอธิบาย

callback

void (*)(void)

ฟังก์ชันที่จะทำงานเมื่อปล่อยปุ่ม

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

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

ตัวอย่าง

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

// Stop the drivetrain when R1 is released
void stopDriving() {
  Drivetrain.stop();
}

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

int main() {
  vexcodeInit();

  // Run stopDriving when R1 is released
  Controller.ButtonR1.released(stopDriving);
}