C++#
VEX V5 C++ APIリファレンスでは、VEXcode V5 C++プロジェクトで使用されるクラス、オブジェクト、コンストラクタ、メンバ関数、および変数について説明しています。
デバイスや機能がどのように作成されるかを理解したい場合、使用する関数シグネチャを確認したい場合、またはクラス内の関連するメンバ関数を比較したい場合は、このリファレンスを使用してください。
C++コマンドはVEXcode V5のC++プロジェクトで使用されます。C++ API情報は、VEX Visual Studio Code拡張機能を使用してVisual Studio Codeで作成されたプロジェクトにも役立ちます。
C++クラスページの読み方#
C++のクラスページは通常、以下の順序で構成されます。
はじめに - クラスが何を表しているのか、そしていつ役立つのかを説明します。
派生クラス - 該当する場合、このクラスに基づいているクラスを一覧表示します。
クラスコンストラクタ - クラスからオブジェクトを作成するために使用される構文を示します。
クラスデストラクタ - オブジェクトを破棄し、該当する場合はそのリソースを解放するために使用される構文を表示します。
パラメータ - オブジェクトを作成する際に使用されるコンストラクタパラメータについて説明します。
例 - コードでオブジェクトを作成する方法を示します。
メンバ関数 - クラスに属する関数の一覧です。多くの場合、目的ごとにグループ化されています。
関数エントリ - 利用可能な関数、パラメータ、戻り値、注記、例など、各メンバ関数について説明します。
すべてのページにすべてのセクションが含まれているわけではありません。例えば、派生クラスが含まれていないページや、パラメータや戻り値を持たない関数もあります。
共通C++ API要素#
要素 |
それはどういう意味か |
|---|---|
クラス |
デバイスまたは機能の C++ 型。例えば、 |
物体 |
クラスから作成された名前付きインスタンス。たとえば |
コンストラクタ |
クラスからオブジェクトを作成するために使用されるコード。 |
メンバー機能 |
オブジェクトに対して呼び出されるコマンド。例えば |
利用可能な機能 |
メンバー関数に使用できる、正確な関数シグネチャが1つだけ存在します。一部のメンバー関数には、複数の関数が利用可能です。 |
パラメータ |
コンストラクタや関数に渡される値で、その動作を制御するために使用されます。 |
戻り値 |
関数が返す値。例えば |
C++の基本用語#
学期 |
それはどういう意味か |
|---|---|
変数 |
|
タイプ |
何かが格納するデータの種類。例えば |
弦 |
引用符内のテキスト、例: |
int |
|
ダブル |
小数点を含むことができる数値型。例: |
ブール値 |
|
口論 |
メンバー関数または関数呼び出しに渡される値。例: |
コンストラクタとオブジェクト#
多くのC++クラスのメンバ関数を使用する前に、オブジェクトが存在している必要があります。コンストラクタは、そのオブジェクトを作成する方法を示します。
例えば、モーターオブジェクトは、コンストラクタに必要なポート情報や構成情報を与えることで作成できます。
motor Motor1 = motor(PORT1, false);
オブジェクトが作成された後、そのメンバ関数を呼び出すことができます。
Motor1.spin(forward);
VEXcodeでは、デバイスの設定はデバイスメニューによって自動的に生成されることが多い。一方、VEX拡張機能を搭載したVisual Studio Codeでは、コンストラクタを手動で記述する必要がある場合がある。
適切な利用可能な機能を選択する#
一部のメンバ関数には、複数の利用可能な関数があります。各関数は異なるパラメータセットを使用するため、プロジェクトで必要とする値に一致する関数を選択してください。
例えば、駆動系機能には、現在の速度を使用するバージョンと、プロジェクトが速度を選択できるようにする別のバージョンが存在する場合があります。
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
どちらの関数も driveを呼び出しますが、2番目の関数は速度パラメータが含まれているため、より詳細な制御が可能です。
関数入力例#
ドライブ#
ドライブdrive ロボットを永久に前進または後退させます。ロボットは、旋回や停止などの別の動作が与えられるまで動き続けます。RPMまたはDPSの場合、制限は駆動系のギア比によって変わります。
利用可能な機能
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
ロボットの移動方向: |
|
|
速度は、velocityUnits::pct が |
|
|
速度の単位: |
戻り値
この関数は値を返しません。
注記
driveは待機しません。プロジェクトは呼び出し後すぐに次のコード行の実行を続行します。stopが呼び出されるか、別の駆動系動作関数が実行されるまで、駆動系は動作を続けます。isDoneやisMovingなどの機能は、driveには適用されません。なぜなら、4 drive 5 は目標ベースの移動を使用しないからです。
例
// Drive forward and back
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();
待機行動と非待機行動#
C++の移動関数の中には、アクションが完了するまで次のコード行に進むのを待つものがあります。一方、アクションを開始してすぐに次の行を実行できる関数もあります。
待機中 - プロジェクトは関数が終了するまで待機します。
待機なし - プロジェクトは関数を開始し、すぐに次の行に進みます。
一部の関数には、この動作を選択するためのパラメータ(例: waitForCompletion が含まれています。これらの関数では、通常、 true を指定するとプロジェクトが待機状態になり、 false を指定すると次の行がすぐに実行されます。
サブセクション内のコマンド#
C++コマンドは、デバイスまたはトピックごとに整理されています。例えば、ドライブトレイン、モーター、コントローラー、ブレイン、スマートポートデバイス、3線式デバイス、コンソール、ロジック、VEXlinkのコマンドは、それぞれ独自のサブセクションにグループ化されています。