按鈕#

介紹#

button 類派生自 brain 基類,並提供對 EXP Brain 按鈕的訪問,使你的機器人能夠檢測其按鈕何時被按下和釋放。

使用權#

button 類別提供了三個按鈕物件。每個物件都是 button 類別的實例,並且可以透過 brain 實例存取。

目的

用法範例

描述

buttonCheck

Brain.buttonCheck.pressing()

勾選按鈕

buttonLeft

Brain.buttonLeft.pressing()

左鍵

buttonRight

Brain.buttonRight.pressing()

右鍵

成員功能#

button 類別包含以下成員函數:

  • pressing — 是否按下返回指定的按鈕。

  • pressed — 註冊一個在按下指定按鈕時要呼叫的函數。

  • released — 註冊一個在指定按鈕釋放時要呼叫的函數。

在呼叫任何 button 成員函數之前,必須建立一個 brain 實例,如下所示:

// Create the EXP Brain
brain Brain = brain();

pressing#

返回特定大腦按鈕目前是否被按下。

Available Functions
bool pressing() const;

Parameters

此函數不接受任何參數。

Return Values

傳回布林值,指示指定的按鈕是否被按下:

  • true — 按鈕被按下。

  • false — 按鈕未按下。

Examples

這個函數可以對任何按鈕物件調用,例如:

  • Brain.buttonCheck
  • Brain.buttonLeft
  • Brain.buttonRight
// Turn right while the check button is pressed
while (true) {
    if (Brain.buttonCheck.pressing()) {
        Drivetrain.turn(right);
    } else {
        Drivetrain.stop();
    }
    wait(5, msec);
}

pressed#

註冊一個回調函數,當按下特定的腦部按鈕時運行該函數。

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

Parameters

範圍

類型

描述

callback

void (*)(void)

按下指定按鈕時呼叫的函數。

Return Values

此函數不傳回值。

Examples

這個函數可以對任何大腦按鈕物件調用,例如:

  • Brain.buttonCheck
  • Brain.buttonLeft
  • Brain.buttonRight

定義回呼函數(在 int main()之外)

// Drive forward when the right button is pressed
void driveForward() {
    Drivetrain.driveFor(forward, 100, mm);
}

在 int main()中註冊回呼函數

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Call driveForward when the right button is pressed
  Brain.buttonRight.pressed(driveForward);
}

released#

註冊一個回調函數,當特定的腦部按鈕被釋放時,該函數將運行。

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

Parameters

範圍

類型

描述

callback

void (*)(void)

當指定的按鈕被釋放時,將呼叫該函數。

Return Values

此函數不傳回值。

Examples

這個函數可以對任何大腦按鈕物件調用,例如:

  • Brain.buttonCheck
  • Brain.buttonLeft
  • Brain.buttonRight

定義回呼函數(在 int main()之外)

// Drive backward when the left button is released
void backUp() {
    Drivetrain.driveFor(reverse, 100, mm);
}

在 int main()中註冊回呼函數

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Call backUp when the left button is released
  Brain.buttonLeft.released(backUp);
}