PF_Start

先に述べたとおり、同一のフィーダー上で最大4種類のパーツを同時に扱うことができます。これは、それぞれのパーツIDに対してPF_Startステートメントを実行するタイミングを指定することで実現できます。
例えば、パーツ1, 2, 3, 4のすべてがフィーダー#1を使用するとします。フィーダー番号は、各パーツを最初に作成するときに[パーツウィザード]で指定します。

同一のフィーダーに割りあてられているパーツのみが、PF_Startにより同時に流されます。フィーダー#1に4種類すべてのパーツを同時に流す場合、コードは以下のようになります。
PF_Start 1, 2, 3, 4

この例では、パーツ#1が最初のアクティブパーツになります。フィーダーは最初にパーツ#1の振動パラメーターを使用します。この例では、PF_ActivePartが別のパーツIDに変わるまで、値 “1”が各コールバック関数のPartIDパラメーターとして送られます。

キーポイント


PF_ActivePartが別のパーツIDで実行されるまで、PF_Startリストの1つ目のパーツがアクティブパーツとなります。

ユーザーのコードが同一フィーダー上の別のパーツを開始しようとすると、エラー“フィーダーが使用中”が発生します。エラーはPF_Statusコールバックで処理され、ステータス値は定数PF_D_STATUS_FEEDERINUSE_ERRORになります。
以下は、 “フィーダーが使用中”エラーが発生する例です。
  パーツ1, 2, 3, 4のすべてがフィーダー#1を使用中
PF_Start 1, 3, 4  'フィーダー#1でパーツのグルーピングを開始

次のコード行を実行すると、“フィーダーが使用中”エラーが発生
PF_Start 2
フィーダー#1に4種類すべてのパーツを同時に流したい場合、代わりに次のステートメントを実行する必要があります。
PF_Start 1, 2, 3, 4
最大2台のロボットで、同一のフィーダーを同時に使用できます。PF_Startが2台以上のロボットを同時に使用するパーツを同一のフィーダーに流そうとすると、“フィーダーあたりの最大ロボット数”エラーが発生します。
以下は、エラーが発生する例です。
  パーツ1: ロボット#1とフィーダー#1を使用
  パーツ3: ロボット#2とフィーダー#1を使用
  パーツ5: ロボット#3とフィーダー#1を使用
PF_Start 1,3,5 <-   Error 7731コントローラタイプの最大同時フィーダー数を超えました。