ปุ่ม#

การแนะนำ#

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

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

ภาพด้านหน้าและด้านหลังของคอนโทรลเลอร์ IQ รุ่นที่ 2 โดยปุ่มทั้งหมดถูกไฮไลต์ด้วยสีเหลือง พื้นผิวของคอนโทรลเลอร์มีปุ่มจอยสติ๊กสองปุ่มอยู่ที่มุมบนซ้ายและขวา โดยมีปุ่ม E ขึ้นและลงอยู่ด้านล่างจอยสติ๊กซ้าย และปุ่ม F ขึ้นและลงอยู่ด้านล่างจอยสติ๊กขวา ด้านหลังของคอนโทรลเลอร์มีปุ่ม L ขึ้นและลง และปุ่ม R ขึ้นและลงอยู่ทางด้านซ้ายและด้านขวาตามลำดับ

เข้าถึง#

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

วัตถุ

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

คำอธิบาย

ButtonEDown

Controller.ButtonEDown.pressing()

ปุ่ม E ▼

ButtonEUp

Controller.ButtonEUp.pressing()

ปุ่ม E ▲

ButtonFDown

Controller.ButtonFDown.pressing()

ปุ่ม F ▼

ButtonFUp

Controller.ButtonFUp.pressing()

ปุ่ม F ▲

ButtonL3

Controller.ButtonL3.pressing()

ปุ่ม จอยสติ๊กซ้าย สำหรับคอนโทรลเลอร์ IQ (รุ่นที่ 2) เท่านั้น

ButtonLDown

Controller.ButtonLDown.pressing()

ปุ่ม L ▼

ButtonLUp

Controller.ButtonLUp.pressing()

ปุ่ม L ▲

ButtonR3

Controller.ButtonR3.pressing()

ปุ่ม จอยสติ๊กขวา สำหรับคอนโทรลเลอร์ IQ (รุ่นที่ 2) เท่านั้น

ButtonRDown

Controller.ButtonRDown.pressing()

ปุ่ม R ▼

ButtonRUp

Controller.ButtonRUp.pressing()

ปุ่ม R ▲

หมายเหตุ#

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

  • ButtonL3 และ ButtonR3 มีให้ใช้งานเฉพาะบนคอนโทรลเลอร์ IQ (รุ่นที่ 2) เท่านั้น

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

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

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

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

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

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

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

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

เกตเตอร์#

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

void (*)(void)

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

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

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

ตัวอย่าง

กำหนดฟังก์ชัน 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

void (*)(void)

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

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

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

ตัวอย่าง

กำหนดฟังก์ชัน 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);
}