INERTIAL GUIDE
3DM-CV7のイベント出力|Trigger・Action・TEST_PULSEの設定
3DM-CV7のEvent SystemでTriggerとActionを設定し、TEST_PULSE、Event Source、Timestampで動作を確認する方法を解説します。
3DM-CV7のEvent Systemを使うと、外部GPIOや内部条件をきっかけにして、測定データの出力やGPIO動作を実行できます。
イベント設定では、「いつ実行するか」を決めるTriggerと、「何をするか」を決めるActionを分けて考えることが重要です。
このページではMIP実装者向けに、設定順序とトラブルを切り分ける方法を整理します。
このページでできること
- 対応するTrigger / Action数を確認する
- Trigger IDとAction IDを区別する
- 単発イベントと条件成立中の連続出力を使い分ける
- TEST / TEST_PULSEで関連付けを確認する
- Event SourceとTimestampを使ってイベントデータを識別する
1. 最初に対応するEvent機能を確認する
Event機能の種類や利用可能なインスタンス数は、機器とファームウェアによって異なる場合があります。
まずGet Supported Eventsで対応状況を確認し、その結果に合わせてTrigger IDとAction IDを割り当てます。
設定は、
対応機能を確認 → Triggerを設定 → Actionを設定 → TriggerとActionを関連付け → テスト → Enable
の順に進めると切り分けやすくなります。
2. TriggerとActionは別の番号を持つ
Trigger
「どの条件でイベントを成立させるか」を定義します。
例:
- GPIO入力
- 閾値条件
- 複数条件の組み合わせ
Action
Triggerが成立したときに行う処理を定義します。
例:
- MIP Messageを出力
- GPIOを変化させる
Action側で、どのTriggerに関連付けるかを指定します。
Trigger IDとAction IDを同じものだと考えないでください。
3. GPIOを使う場合はGPIO設定も確認する
GPIOをTriggerとして使う場合、Event Trigger Configurationだけでは十分ではありません。
対象ピンについて、
- ピン番号
- 入力/出力
- GPIO機能
- 電気条件
も確認します。
イベント設定が正しくても、GPIO側の設定や配線が違っていればTriggerは成立しません。
4. 単発と「条件成立中の連続出力」を区別する
イベントには、1回の条件成立で1回だけActionを実行する用途と、条件が成立している間にデータを継続出力する用途があります。
例えばGPIOがHighの間だけ100 Hzでデータを出したい場合は、
- GPIO Highを表すTrigger
- そのTriggerに関連付けたMessage Action
- Message Action側のDescriptorとdecimation
を組み合わせます。
「立ち上がりで1パケットだけ出す」構成と、「Highの間ずっと出す」構成では設定が異なります。
必要な動作を先に文章で定義してから設定すると間違いを減らせます。
5. 複数のデータ群を同じTriggerから出す
Sensor DataとFilter Dataなど複数のDescriptor Setを同じ条件で出したい場合は、同じTriggerに複数のMessage Actionを関連付けます。
異なるレートで出力したい場合も、Actionを分けて設計すると管理しやすくなります。
通信量は通常のストリーミングと同様に見積もってください。
6. TESTとTEST_PULSEで関連付けを確認する
Event Controlには、通常動作とは別にテスト用の状態があります。
TESTを使用すると、実際の外部条件に依存せずTriggerの成立状態をテストできます。
TEST_PULSEは1イベント分の動作を発生させ、関連するActionが正しく設定されているか確認する用途に使えます。
例えば、
- Message ActionだけをTriggerへ関連付ける
- TEST_PULSEを実行する
- 期待するMIP Messageが出力されるか確認する
- 正常ならGPIOなど実際のTrigger条件を確認する
という順序で切り分けると、
Action設定の問題とTrigger入力の問題を分離できます。
GPIO出力など別のActionも関連付いている場合は、テスト前にすべてのActionを確認してください。
7. Event Sourceを付けてイベント由来のデータを識別する
イベント出力と通常ストリーミングで同じデータ項目を送る場合、受信側で「どのActionが出したデータか」を区別したくなることがあります。
その場合はEvent Sourceをデータへ含めることで識別できます。
受信側では、
- Event Source
- Action ID
- Timestamp
- 実際の測定データ
をセットで保存すると後処理しやすくなります。
8. PC受信時刻をTrigger時刻として扱わない
イベントの発生時刻を比較する用途では、PCがパケットを受信した時刻だけを使わないようにします。
通信遅延やOSの処理によって、受信時刻はTriggerの実時刻からずれる可能性があります。
イベントデータに対応するTimestampを利用し、データの時刻定義を確認してください。
9. 設定後の確認手順
- Supported Eventsを確認する
- Trigger設定をReadする
- Action設定をReadする
- ActionとTriggerの関連付けを確認する
- TEST_PULSEでAction側を確認する
- 実際の外部条件でTriggerを確認する
- Event SourceとTimestampを保存する
- 必要なら起動時設定へSaveする
- 再起動後に再確認する
イベントが再起動後だけ動かない場合は、Trigger / ActionだけでなくGPIO設定やEnable状態の保存も確認します。
参考資料
- Get Supported Events (0x0C,0x2A)
https://files.microstrain.com/CV7%20Online/external_content/dcp/Commands/0x0c/data/0x2a.htm - Event Control (0x0C,0x2B)
https://files.microstrain.com/CV7%20Online/external_content/dcp/Commands/0x0c/data/0x2b.htm - Event Trigger Configuration (0x0C,0x2E)
https://files.microstrain.com/CV7%20Online/external_content/dcp/Commands/0x0c/data/0x2e.htm - Event Action Configuration (0x0C,0x2F)
https://files.microstrain.com/CV7%20Online/external_content/dcp/Commands/0x0c/data/0x2f.htm - Event Introduction
https://files.microstrain.com/CV7%20Online/user_manual_content/additional_features/Event%20System/Event%20Introduction.htm
原典リンク
既存の関連ページもあわせて確認
既存の技術解説・ソフトウェア説明と相互に参照できるよう、本番反映時に現在のURLへ接続します。
