Bộ điều khiển#

Giới thiệu#

Lớp controller đại diện cho một bộ điều khiển VEX EXP được kết nối với EXP Brain. Một đối tượng controller có thể được sử dụng để truy cập các giá trị trục cần điều khiển, đọc trạng thái nút, đăng ký các hàm gọi lại của nút hoặc cần điều khiển, làm cho bộ điều khiển rung và kiểm tra xem bộ điều khiển có được kết nối hay không.

VEX EXP tương thích với Bộ điều khiển V5. Xem API Bộ điều khiển V5 để biết thêm thông tin.

Khi một hoặc nhiều bộ điều khiển được cấu hình trong cửa sổ Thiết bị, VEXcode EXP cũng cung cấp biến toàn cục RemoteControlCodeEnabledBiến này cho phép hoặc vô hiệu hóa các hành động của bộ điều khiển được cấu hình trong menu Thiết bị.

Lớp dẫn xuất#

Lớp điều khiển controller cung cấp các lớp dẫn xuất sau:

  • Axis - Cung cấp quyền truy cập vào các giá trị đầu vào trục cần điều khiển và các sự kiện thay đổi.

  • Button - Cung cấp quyền truy cập vào trạng thái nút và các hàm gọi lại sự kiện nút.

Các hàm tạo#

1 - Tạo bộ điều khiển bằng cách sử dụng loại bộ điều khiển chính. Thường được sử dụng khi chỉ có một bộ điều khiển được kết nối.

controller();

2 - Tạo bộ điều khiển cho loại bộ điều khiển được chỉ định. Được sử dụng khi có hai bộ điều khiển được kết nối.

controller(
    controllerType id );

Các chức năng khả dụng

controller();

controller(controllerType id);

Tham số

Kiểu

Sự miêu tả

id

controllerType

Tùy chọn. Loại bộ điều khiển cần tạo: primary cho bộ điều khiển chính được kết nối với Brain hoặc partner cho bộ điều khiển thứ hai được kết nối với Brain.

Ghi chú

Only one primary controller and one partner controller can be created in a single project.

Ví dụ

// Create the primary controller
controller Controller1 = controller();

// Create a partner controller
controller Controller2 = controller(partner);

Kẻ hủy diệt#

~bộ điều khiển#

~controller hủy đối tượng bộ điều khiển controller và giải phóng các tài nguyên liên quan.

Chức năng khả dụng

~controller();

Thông số#

Tham số

Kiểu

Sự miêu tả

id

controllerType

Loại bộ điều khiển đang được tạo:

  • primary - Bộ điều khiển chính được kết nối với Não bộ.
  • partner - Bộ điều khiển đối tác (thứ hai) được kết nối với Não bộ.

Ghi chú#

  • Only one primary and one partner controller may exist in a single project.

Ví dụ#

// Create an EXP controller instance
controller Controller = controller();

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

Lớp điều khiển controller bao gồm các hàm thành viên sau:

  • rumble - Rung bộ điều khiển theo một kiểu mẫu.

  • installed - Kiểm tra xem bộ điều khiển có được kết nối với não hay không.

tiếng ầm ầm#

rumble khiến bộ điều khiển rung theo một chuỗi ký tự. Trong chuỗi ký tự này, dấu chấm là các rung động ngắn, dấu gạch ngang là các rung động dài và khoảng trắng là các khoảng dừng.

Chức năng khả dụng

void rumble(const char *str);

Tham số

Kiểu

Sự miêu tả

str

const char *

Một chuỗi ký tự gồm các dấu chấm, dấu gạch ngang và khoảng trắng, tượng trưng cho kiểu rung.

Giá trị trả về

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

Ví dụ

// Rumble with a short-short-long pattern
Controller1.rumble("..-");

Người nhận#

đã cài đặt#

installed trả về trạng thái cho biết bộ điều khiển có được kết nối với Brain hay không.

Chức năng khả dụng

bool installed();

Thông số

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

Giá trị trả về

Trả về giá trị Boolean.

  • true - The controller is installed/connected.
  • false - The controller is not installed/connected.

Biến toàn cục#

Mã điều khiển từ xa được kích hoạt#

RemoteControlCodeEnabled cho phép hoặc vô hiệu hóa các hành động của bộ điều khiển được cấu hình trong menu Thiết bị. Các hành động được cấu hình của bộ điều khiển được bật theo mặc định.

Usage:
RemoteControlCodeEnabled = state;

Giá trị

Sự miêu tả

true

Cho phép thực hiện các hành động được cấu hình trên bộ điều khiển.

false

Vô hiệu hóa các hành động được cấu hình trên bộ điều khiển.

Values
  • true - Controller-configured actions are enabled.
  • false - Controller-configured actions are disabled.
Notes
  • Các hành động do bộ điều khiển cấu hình được bật theo mặc định.

  • Biến này chỉ hoạt động khi sử dụng VEXcode.

Examples
// 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;