Reject the registration: By Name


ASTER::ACTION::MotionControl::Reject from controller, the registered motion; ByName

モーションコントローラに登録されたモーショングループ名を指定してインスタンスの登録を解除

  • フレームタイムを指定したタイマー処理が可能

  • モーションコントローラに登録されたインスタンス及びモーショングループの解除方法は二種類に大別されます。

method description
By Name モーショングループ名を指定して登録を一括解除する
LPRO Directly 個別インスタンスを直接指定して登録を解除

モーショングループ単位で登録を解除する場合は ByName 、条件一致したインスタンスのみを登録解除したい場合は LPRO Directly と使い分けします。


Parameter.1

モーショングループ名の指定

登録されているモーショングループが二つ以上ある場合、グループ名を指定すると該当グループを登録解除できます。

Parameter Exsample Description
"ExMotion1" グループ名を指定した登録解除
"" 空文字列を送信、登録されている全モーショングループが対象

グループ名を指定せず空文字を送信すると、現在登録されている全モーショングループが一括登録解除されます。

空文字を送信する場合は利用上の注意点もあります。


Parameter.2

フレームベースのタイマー機能

時間を指定して登録解除までのタイマーを設定できます。時間の単位はアプリケーションフレーム単位です。

アプリケーションが 60 FPS で動いている場合、 60 とパラメータに入力すれば約一秒後、登録が解除されます。

即時に登録解除する場合、0 と入力します。


Notes.1

実行優先順位

Reject はモーションコントローラにおける最上位系の命令です。下位の他命令が発行されても上位命令は影響を受けません。

Reject は一度発行された命令に対する上書き更新や実行停止・キャンセルが効きません。 すでに Reject と同種の命令が対象モーショングループに対して発行されている場合、後から発行された Reject 命令は無効化されます。


Notes.2

“By Name” と “LPRO Directly”

Reject 命令はグループ名を指定して登録解除を試行する「 By Name 」系と、オブジェクトインスタンスのメモリアドレスを検索して登録解除を試行する「 Direct 」系、二種類があります。

この二種類に Destroy 機能を持たせた命令が加わると Reject 命令は合計四種類、さらに「 By Name 」で遅延実行の数値が 0 かつ全登録インスタンスが対象の場合「完全解除」と「完全消去」いう命令に分岐し、これらを加えると六種類になります。

六種類すべてが権限的に同等、先に発行された命令が優先権を持ちます。

---
title: Reject Functions
---
flowchart LR
  A@{shape: dbl-circ, label: "Reject"}
  A --> B@{ shape: delay, label: "Reject: Directly" }
  A --> C@{ shape: delay, label: "Reject: By Name" }
  C --> D[Reject: All]
  C --> E[Timer]
  C --> F[Timer + Destroy]
  B --> G[Timer]
  B --> H[Timer + Destroy]
  D --> I[Timer]
  D --> J[Timer + Destroy]
  I -.-|Named| K@{shape: dbl-circ, label: "完全解除"}
  J -.-|Named| L@{shape: dbl-circ, label: "完全消去"}

Reject 命令の「By Name」はモーショングループ単位で登録が解消された場合、登録が抹消された正確なタイミングを Event Detect ( 即時実行条件 ) によってキャッチできます。

ただし Reject の「完全解除」及び「完全消去」を使ってグループを削除した場合、Event Detect は利用できません。