AGV.AllocationPoint
AGV.TraversalPointから継承します。
説明
予定されるAGV割り当てについての情報から成る構造体です。
AGVは移動オペレーションを開始するたびに、目的地への移動パスを構築します。このパス構築フェーズで、AGVはパス上で割り当て可能なオブジェクトを検出するたびに、パス上の定義済みの地点でこのオブジェクトを割り当てなければならないことを示すために割り当てポイントを作成します。割り当てポイントは、コントロールポイント、コントロールエリア、または集積パスを通過するときのパス転送のいずれかの割り当てを表します。
AGVクラスには配列状の構造体であるallocationPointsプロパティがあり、そこにはAGVの現在の移動パス上にある(まだオブジェクトを割り当てていない)すべての割り当てポイントが含まれています。さらに、割り当てポイントは、AGV.AllocatableObjectのrequestsプロパティとallocationsプロパティでアクセスする要素でもあります。
//Printing an AGV's allocation points
AGV agv = AGV(current);
for (int i = 1; i <= agv.allocationPoints.length; i++) {
AGV.AllocationPoint point = agv.allocationPoints[i];
print(
" agv ", point.agv.as(treenode),
" object ", point.object,
" stopDist ", point.stopDist,
" arrivalDist ", point.arrivalDist,
" transferPath ", point.transferPath,
" transferDistAlong ", point.transferDistAlong);
}
プロパティ
allocator | 割り当てを「所有する」オブジェクト。 |
arrivalDist | AGVがターゲットオブジェクトに「到着」するための移動距離。 |
object | 割り当てるオブジェクト。 |
requestState | 割り当てポイントのリクエストの状態。 |
deallocDist | オブジェクトの割り当てができない場合にAGVを停止する時点でのAGVの移動距離。 |
transferDistAlong | 割り当てる転送の所有パスに沿った距離。 |
transferPath | 割り当てる転送の所有パス。 |
メソッド
deallocate | 関連オブジェクトの割り当てを解除し、割り当てポイントを破棄し、待機中の次の割り当てリクエストがオブジェクトにある場合は、それを実行します。 |
event | 割り当てポイントのObject.eventを複製します。 |
詳細
AGV.AllocationPoint.allocator
readonly Object allocator
説明
割り当てを「所有する」オブジェクト。
通常は、オブジェクトを割り当てるAGVです。ただし、コントロールエリアがA*メンバーの場合はA*歩行者となる場合があり、ユーザーがAGV.AllocatableObject.allocate()を呼び出す際にはユーザー自身が定義するオブジェクトとなります。
AGV.AllocationPoint.arrivalDist
readonly double arrivalDist
説明
AGVがターゲットオブジェクトに「到着」するための移動距離。
AGVはオブジェクトに到達する前にオブジェクトを割り当てる必要があるため、パス沿いのこの距離は、ほぼ常にstopDistより長くなります。
AGV.AllocationPoint.object
readonly AGV.AllocatableObject object
説明
割り当てるオブジェクト。
割り当てポイントの対象がコントロールポイントまたはコントロールエリアの場合、これは有効なポインターであり、それ以外の場合はnullです。
AGV.AllocationPoint.stopDist
double stopDist
説明
オブジェクトの割り当てができない場合にAGVを停止する時点でのAGVの移動距離。
このプロパティの値は設定可能ですが、AGVの移動オペレーションの定義された時間にのみ設定できます。具体的に言うと、OnBuildTravelPathイベントが起動された後(またはこのトリガーの一部として)、かつ、OnPreAllocateの前に設定する必要があります。その他の時間に設定する場合、動作は保証されません。なお、AGV.allocationPoints配列はstopDist値の順に並べ替えが行われるため、この値を設定した場合、この順序を維持するために、AGVのallocationPoints配列内の割り当てポイントのインデックスが変わる可能性があります。
AGV.AllocationPoint.transferDistAlong
readonly double transferDistAlong
説明
割り当てる転送の所有パスに沿った距離。
割り当てポイントの対象がパス転送の場合、これは有効な距離であり、それ以外の場合は未定義です。つまり、割り当てポイントの対象が転送である(transferPathがnullでない)と判明している場合に限り、このプロパティにアクセスする必要があります。
AGV.AllocationPoint.transferPath
readonly Object transferPath
説明
割り当てる転送の所有パス。
割り当てポイントの対象がパス転送の場合、これは有効なポインターであり、それ以外の場合はnullです。
AGV.AllocationPoint.deallocate()
void deallocate( ) |
説明
関連オブジェクトの割り当てを解除し、割り当てポイントを破棄し、待機中の次の割り当てリクエストがオブジェクトにある場合は、それを実行します。
このメソッドを呼び出す必要があるのは、AGV.AllocatableObject.allocate()を使用してオブジェクトをプログラムで割り当てた場合に限られます。それ以外の場合、割り当て解除は自動的に行われます。requestStateがAllocated以外のときにこのメソッドを呼び出すと、単に割り当てポイントが破棄されるだけであり、事実上リクエストのキャンセルとなります。
AGV.AllocationPoint.event()
Event event( string eventName ) |
パラメータ
eventName | イベントの名前。 |
戻り値
Event | 結果のイベント。 |
説明
AGV.AllocationPointはオブジェクトではなく、当然このメソッドを持たないため、明示的に複製されます。AGV.AllocationPointで使用できる唯一のイベントは「OnAllocate」です。つまり、コード内では、割り当て完了を待ち受けるためにこのメソッドを使用します。
AGV.AllocationPoint alloc = controlArea.allocate(current);
if (alloc.requestState == AGV.RequestState.Requested) {
... // do stuff if the object was not allocated immediately
await alloc.event("OnAllocate");
}
... // do stuff once the control area is allocated.