控制器#

介紹#

controller 類別代表連接到 IQ Brain 的 VEX IQ 控制器。 2 controller 物件可用於存取操縱桿軸值、讀取按鈕狀態、註冊按鈕或操縱桿回呼函數,以及檢查控制器是否已連接。

第二代 IQ 大腦可以連接到第二代 IQ 控制器或第一代 IQ 控制器。第一代 IQ 控制器必須安裝藍色智慧無線電模組。

當在「裝置」視窗中配置一個或多個控制器時,VEXcode IQ 也提供 RemoteControlCodeEnabled此全域變數啟用或停用在「裝置」功能表中配置的控制器操作。

衍生類別#

控制器 controller 衍生類別:

  • Axis - 提供對操縱桿軸輸入值和更改事件的存取。

  • Button - 提供對按鈕狀態和按鈕事件回呼的存取。

建構函數#

1 - 使用主控制器類型建立控制器。通常用於連接單一控制器的情況。

controller();

2 - 為指定的控制器類型建立一個控制器。用於連接兩個控制器時。

controller(
    controllerType id );

可用功能

controller();

controller(controllerType id);

範圍

類型

描述

id

controllerType

可選。要建立的控制器類型: primary 表示連接到大腦的主控制器,或 partner 表示連接到大腦的第二個控制器。

筆記

一個專案中只能建立一個 primary 和一個 partner。

例子

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

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

毀滅者#

控制器#

~controller 銷毀 controller 物件並釋放相關資源。

可用功能

~controller();

參數#

範圍

類型

描述

id

controllerType

The type of controller being created:

  • primary - The primary controller connected to the Brain.
  • partner - The partner (second) controller connected to the Brain.

筆記#

  • 一個專案中只能存在一個 primary 和一個 partner。

例子#

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

成員功能#

控制器 controller 包含以下成員函數:

  • installed - 檢查控制器是否已連接到大腦。

已安裝#

installed 返回控制器是否已連接至大腦。

可用功能

bool installed();

參數

此函數沒有參數。

傳回值

返回布林值。

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

全域變數#

RemoteControlCodeEnabled#

RemoteControlCodeEnabled 啟用或停用在「裝置」選單中配置的控制器操作。預設情況下,已設定的控制器操作處於啟用狀態。

Usage:
RemoteControlCodeEnabled = state;

價值

描述

true

啟用控制器配置的操作。

false

停用控制器配置的操作。

Values
  • true - Controller-configured actions are enabled.
  • false - Controller-configured actions are disabled.
Notes
  • 控制器配置的操作預設為啟用。

Examples
// Drive forward or backward using the left joystick
RemoteControlCodeEnabled = false;

while (true) {
  if (Controller1.AxisA.position() > 0) {
    Drivetrain.drive(forward);
  }
  else if (Controller1.AxisA.position() < 0) {
    Drivetrain.drive(reverse);
  }
  // Press E Up to use controller configured actions again
  else if (Controller1.ButtonEUp.pressing()) {
    break;
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

RemoteControlCodeEnabled = true;