C++#

VEX IQ(第1世代)C++ APIリファレンスでは、VEXcode C++プロジェクトで使用されるクラス、オブジェクト、コンストラクタ、メンバ関数、および変数について説明しています。

デバイスや機能がどのように作成されるかを理解したい場合、使用する関数シグネチャを確認したい場合、またはクラス内の関連するメンバ関数を比較したい場合は、このリファレンスを使用してください。

VEXcode IQのC++プロジェクトでは、C++コマンドが使用されます。C++ページは、多くのコマンドがクラスに属しているため、ブロックページとは異なる構成になっています。ページでは、まずクラスとそのオブジェクトの作成方法を説明し、次にそのオブジェクトで呼び出せるメンバ関数を一覧表示します。

C++クラスページの読み方#

C++のクラスページは通常、以下の順序で構成されます。

  1. はじめに - クラスが何を表しているのか、そしていつ役立つのかを説明します。

  2. 派生クラス - 該当する場合、このクラスに基づいているクラスを一覧表示します。

  3. クラスコンストラクタ - クラスからオブジェクトを作成するために使用される構文を示します。

  4. クラスデストラクタ - オブジェクトを破棄し、該当する場合はそのリソースを解放するために使用される構文を表示します。

  5. パラメータ - オブジェクトを作成する際に使用されるコンストラクタパラメータについて説明します。

  6. 例 - コードでオブジェクトを作成する方法を示します。

  7. メンバ関数 - クラスに属する関数の一覧です。多くの場合、目的ごとにグループ化されています。

  8. 関数エントリ - 利用可能な関数、パラメータ、戻り値、注記、例など、各メンバ関数について説明します。

すべてのページにすべてのセクションが含まれているわけではありません。例えば、派生クラスが含まれていないページや、パラメータや戻り値を持たない関数もあります。

共通C++ API要素#

要素

それはどういう意味か

クラス

デバイスまたは機能の C++ 型。たとえば bumper または drivetrainなど。

物体

クラスから作成された名前付きインスタンス。たとえば bumper Bumper1 または drivetrain myDrivetrainなど。

コンストラクタ

クラスからオブジェクトを作成するために使用されるコード。

メンバー機能

オブジェクトに対して呼び出されるコマンド。例えば myDrivetrain.drive(…)。

利用可能な機能

メンバー関数に使用できる、正確な関数シグネチャが1つだけ存在します。一部のメンバー関数には、複数の関数が利用可能です。

パラメータ

コンストラクタや関数に渡される値で、その動作を制御するために使用されます。

戻り値

A value a function gives back, such as bool, int32_t, or double.

C++の基本用語#

学期

それはどういう意味か

変数

int speed = 50;のような値を格納する名前。

タイプ

何かが格納するデータの種類。例えば int double boolなど。

弦

引用符内のテキスト、例: “Hello”。

int

90のような正または負の整数型。

ダブル

小数点を含むことができる数値型。例: 25.5。

ブール値

true または falseのいずれかの値。

口論

メンバー関数または関数呼び出しに渡される値。例: forward in myDrivetrain.drive(forward)。

コンストラクタとオブジェクト#

多くのC++クラスのメンバ関数を使用する前に、オブジェクトが存在している必要があります。コンストラクタは、そのオブジェクトを作成する方法を示します。

例えば、センサーが接続されているスマートポートをコンストラクタに指定することで、バンパースイッチオブジェクトを作成できます。

bumper Bumper1 = bumper(PORT1);

オブジェクトが作成された後、そのメンバ関数を呼び出すことができます。

Bumper1.pressing();

VEXcodeでは、デバイス設定はデバイスメニューによって自動的に生成されることが多い。一方、VS Codeでは、コンストラクタを手動で記述する必要がある場合がある。

適切な利用可能な機能を選択する#

一部のメンバ関数には、複数の利用可能な関数があります。各関数は異なるパラメータセットを使用するため、プロジェクトで必要とする値に一致する関数を選択してください。

例えば、駆動系機能には、現在の速度を使用するバージョンと、プロジェクトが速度を選択できるようにする別のバージョンが存在する場合があります。

void drive(directionType dir);

void drive(directionType dir, double velocity, velocityUnits units);

どちらのバージョンも driveと呼んでいますが、2番目のバージョンは速度パラメータが含まれているため、より詳細な制御が可能です。

関数入力例#

ドライブ#

ドライブdrive 組み合わせでは、ロボットは永久に前進または後退します。ロボットは、旋回や停止などの別の動作が与えられるまで動き続けます。

利用可能な機能

void drive(directionType dir);

void drive(directionType dir, double velocity, velocityUnits units);

パラメータ

タイプ

説明

dir

directionType

ロボットの移動方向: forward または reverse。

velocity

double

速度は、velocityUnits::pct が velocityUnits::pct場合は 0% ~ 100%、 rpmdps の場合は 0 ~ 720 度/秒 dps範囲で指定します。速度が指定されていない場合は、ロボットは現在の駆動速度で走行します。

units

velocityUnits

速度の単位: velocityUnits::pct (パーセント)、 rpm (1分あたりの回転数)、または dps (1秒あたりの角度)。

戻り値

この関数は値を返しません。

注記

  • ドライブdrive は待機しません。プロジェクトは次のコード行をすぐに実行します。

  • The robot will continue to move until stop is called or another drivetrain movement function runs.

  • isDone と isMoving drive では使用されません。なぜなら drive には目標距離がないからです。

例

// 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++コマンドは、デバイスまたはトピックごとに整理されています。例えば、ブレイン、コントローラ、ドライブトレイン、イベント、モーション、スマートポートデバイス、スレッド、ロジックに関するコマンドは、それぞれ独自のサブセクションにグループ化されています。