控制器#
介紹#
controller 類別代表連接到 V5 主控模組的 controller 物件可用於存取操縱桿軸值、讀取按鈕狀態、註冊按鈕或操縱桿回呼、使控制器震動、寫入資訊到控制器螢幕以及檢查控制器是否已連接。
VEX V5 與 EXP 控制器相容。有關更多信息,請參閱 EXP 控制器 API。
當在「裝置」視窗中配置一個或多個控制器時,VEXcode V5 也提供 RemoteControlCodeEnabled此全域變數啟用或停用在「裝置」功能表中配置的控制器操作。
衍生類別#
控制器 controller 衍生類別:
建構函數#
1 - 使用主控制器類型建立控制器。通常用於連接單一控制器的情況。
controller();
2 - 為指定的控制器類型建立一個控制器。用於連接兩個控制器時。
controller( controllerType id );
可用功能
controller();
controller(controllerType id);
範圍 |
類型 |
描述 |
|---|---|---|
|
|
可選。要建立的控制器類型: |
筆記
Only one primary Controller and one partner Controller can be created in a single project.
例子
// Create the primary Controller
controller Controller1 = controller();
// Create a partner Controller
controller Controller2 = controller(partner);
毀滅者#
控制器#
~controller 銷毀 controller 物件並釋放相關資源。
可用功能
~controller();
參數#
範圍 |
類型 |
描述 |
|---|---|---|
|
|
The type of controller being created:
|
筆記#
一個專案中只能存在一個
primary和一個partner。
例子#
// Create a V5 controller instance
controller Controller = controller();
成員功能#
控制器 controller 包含以下成員函數:
隆隆#
rumble 會使控制器依照特定模式震動。在模式字串中,點表示短震動,短劃線表示長震動,空格表示停頓。
可用功能
void rumble(const char *str);
範圍 |
類型 |
描述 |
|---|---|---|
|
|
由點、短劃線和空格組成的字串,代表隆隆聲模式。 |
傳回值
此函數不傳回值。
例子
// Rumble with a short-short-long pattern
Controller1.rumble("..-");
Getter#
已安裝#
installed 返回控制器是否已連接至大腦。
可用功能
bool installed();
參數
此函數沒有參數。
傳回值
返回布林值。
true- The controller is installed/connected.false- The controller is not installed/connected.
全域變數#
RemoteControlCodeEnabled#
RemoteControlCodeEnabled 啟用或停用在「裝置」選單中配置的控制器操作。預設情況下,已設定的控制器操作處於啟用狀態。
Usage:
RemoteControlCodeEnabled = state;
價值 |
描述 |
|---|---|
|
啟用控制器配置的操作。 |
|
停用控制器配置的操作。 |
true- Controller-configured actions are enabled.false- Controller-configured actions are disabled.
控制器配置的操作預設為啟用。
// 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;