Cái nút#

Giới thiệu#

Lớp nút button là một lớp dẫn xuất của lớp controller. Nó cung cấp quyền truy cập vào trạng thái nút điều khiển và các hàm gọi lại sự kiện nút.

Một đối tượng nút button được truy cập thông qua một đối tượng bộ điều khiển controller Nó không được tạo trực tiếp.

Hình ảnh mặt trước và mặt sau của Bộ điều khiển IQ thế hệ thứ 2 với tất cả các nút được tô sáng màu vàng. Bề mặt của bộ điều khiển có hai nút cần điều khiển ở góc trên bên trái và bên phải, với nút E lên và xuống bên dưới cần điều khiển bên trái và nút F lên và xuống bên dưới cần điều khiển bên phải. Ở mặt sau của bộ điều khiển là các nút L lên và xuống và R lên và xuống ở hai bên trái và phải tương ứng.

Truy cập#

Lớp điều khiển controller cung cấp các đối tượng nút sau. Mỗi đối tượng là một thể hiện của lớp nút button.

Sự vật

Ví dụ sử dụng

Sự miêu tả

ButtonEDown

Controller.ButtonEDown.pressing()

Nút E ▼.

ButtonEUp

Controller.ButtonEUp.pressing()

Nút E ▲.

ButtonFDown

Controller.ButtonFDown.pressing()

Nút F ▼.

ButtonFUp

Controller.ButtonFUp.pressing()

Nút F ▲.

ButtonL3

Controller.ButtonL3.pressing()

Nút Cần điều khiển bên trái. Chỉ dành cho tay cầm IQ (thế hệ thứ 2).

ButtonLDown

Controller.ButtonLDown.pressing()

Nút L ▼.

ButtonLUp

Controller.ButtonLUp.pressing()

Nút L ▲.

ButtonR3

Controller.ButtonR3.pressing()

Nút Cần điều khiển bên phải. Chỉ dành cho tay cầm IQ (thế hệ thứ 2).

ButtonRDown

Controller.ButtonRDown.pressing()

Nút R ▼.

ButtonRUp

Controller.ButtonRUp.pressing()

Nút R ▲.

Ghi chú#

  • Trước khi sử dụng hàm thành viên nút button , hãy tạo đối tượng bộ điều khiển controller.

  • Nút ButtonL3 và ButtonR3 chỉ có trên bộ điều khiển IQ (thế hệ thứ 2).

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

Chức năng thành viên#

Lớp nút button bao gồm các hàm thành viên sau:

Getter — Đọc trạng thái của nút.

  • pressing — Trả về trạng thái nút có đang được nhấn hay không.

Hàm gọi lại — Thực thi các hàm khi có sự kiện nhấn nút.

  • pressed — Đăng ký một hàm để chạy khi nút được nhấn.

  • released — Đăng ký một hàm để chạy khi nút được nhả ra.

Người nhận#

pressing#

Nhấn phím pressing trả về trạng thái hiện tại của nút, cho biết nút đó có đang được nhấn hay không.

Chức năng khả dụng

bool pressing() const;

Thông số

Hàm này không có tham số.

Giá trị trả về

Trả về giá trị Boolean.

  • true — Nút đang được nhấn.

  • false — Nút không được nhấn.

Ví dụ

// Turn right while R Up is pressed
while (true) {
  if (Controller.ButtonRUp.pressing()) {
    Drivetrain.turn(right);
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

Cuộc gọi lại#

pressed#

pressed đăng ký một hàm sẽ chạy khi nút được nhấn.

Chức năng khả dụng

void pressed(void (* callback)(void)) const;

Tham số

Kiểu

Sự miêu tả

callback

void (*)(void)

Một hàm được thực thi khi nút được nhấn.

Giá trị trả về

Hàm này không trả về giá trị nào.

Ví dụ

Xác định hàm gọi lại bên ngoài main.

// Drive forward when F Up is pressed
void driveForward() {
  Drivetrain.driveFor(forward, 100, mm);
}

Đăng ký hàm gọi lại bên trong main.

int main() {
  vexcodeInit();

  // Run driveForward when F Up is pressed
  Controller.ButtonFUp.pressed(driveForward);
}

released#

released đăng ký một hàm sẽ chạy khi nút được nhả ra.

Chức năng khả dụng

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

Tham số

Kiểu

Sự miêu tả

callback

void (*)(void)

Một hàm được thực thi khi người dùng nhả nút.

Giá trị trả về

Hàm này không trả về giá trị nào.

Ví dụ

Xác định hàm gọi lại bên ngoài main.

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

Đăng ký hàm gọi lại bên trong main.

int main() {
  vexcodeInit();

  // Run stopDriving when F Up is released
  Controller.ButtonFUp.released(stopDriving);
}