ボタン#
導入#
button クラスは brain 基本クラスから派生しており、IQ (第 1 世代) Brain のボタンへのアクセスを提供し、ロボットが Brain のボタンへの押下を監視できるようにします。
アクセス#
brain クラスは 12 個のボタン オブジェクトを提供します。各オブジェクトは button クラスのインスタンスであり、brain インスタンスを介してアクセスできます。
物体 |
使用例 |
説明 |
|---|---|---|
|
|
チェックボタン |
|
|
左ボタン |
|
|
右ボタン |
注記#
buttonオブジェクトは脳によって提供されるものであり、直接構築されるものではありません。
メンバーの機能#
Button クラスには、以下のメンバ関数が含まれています。
pressed— 指定されたボタンが押されたときに呼び出される関数を登録します。released— 指定されたボタンが離されたときに呼び出される関数を登録します。pressing— 指定されたボタンが押されているかどうかを返します。
button メンバ関数を呼び出す前に、以下に示すように brain インスタンスを作成する必要があります。
// Create a brain instance
brain();
pressed#
特定の脳内ボタンが押されたときに実行されるコールバック関数を登録します。
Available Functionsvoid pressed(
void (* callback)(void) ) const;
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
指定されたボタンが押されたときに呼び出される関数。 |
この関数は値を返しません。
Examplesこの関数は、例えば次のような任意のブレインボタンオブジェクトに対して呼び出すことができます。
Brain.buttonCheckBrain.buttonLeftBrain.buttonRight
コールバック関数を定義します(
int main()の外側)// Drive forward when check 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 check button is pressed Brain.buttonCheck.pressed(driveForward); }
released#
特定の脳内ボタンが離されたときに実行されるコールバック関数を登録します。
Available Functionsvoid released(
void (* callback)(void) ) const;
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
指定されたボタンが離されたときに呼び出される関数。 |
この関数は値を返しません。
Examplesこの関数は、例えば次のような任意のブレインボタンオブジェクトに対して呼び出すことができます。
Brain.buttonCheckBrain.buttonLeftBrain.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); }
pressing#
特定の脳のボタンが現在押されているかどうかを返します。
Available Functionsbool pressing() const;
この関数は引数を受け付けません。
Return Values指定されたボタンが押されているかどうかを示すブール値を返します。
true— ボタンが押されています。false— ボタンが押されていません。
この関数は、例えば次のような任意のブレインボタンオブジェクトに対して呼び出すことができます。
Brain.buttonCheckBrain.buttonLeftBrain.buttonRight
// Turn right while right is pressed
while (true) {
if (Brain.buttonRight.pressing()) {
Drivetrain.turn(right);
} else {
Drivetrain.stop();
}
wait(5, msec);
}