状態モデルをプログラムする
- 更新日2025-11-03
- 4分で読める
このトピックでは、「プロパティ」という用語は特定のプロパティを指している場合を除いて、LabVIEWおよびCまたはLabWindows/CVIのプロパティと属性を指します。
NI-FGENプログラミングモデルには、以下の図にあるように主に3つの状態(待機、コミット、生成中)があります。
待機―この状態では、すべてのセッションのプロパティをプログラムすることができます。ただし、「待機」状態では、プロパティはまだデバイスに適用されていない可能性があります。そのため、デバイスハードウェア構成がセッションのプロパティ値に対応していない場合があります。この場合、デバイスの構成はセッションが最後にコミットされた時と同じです。コンピュータがリセットした直後、または「niFgenデバイスをリセット」VIまたは「niFgen_ResetDevice」関数が呼び出された直後であれば、デバイスはデフォルトのハードウェア状態です。これは、デバイスが波形生成をしていないものの、以前の状態に応じて、出力コネクタで生成した最後の波形サンプルから一定のDC電圧が出力されていることを表します。
コミット―セッションが「コミット」状態になると、セッションプロパティのすべてがデバイスに適用されます。「コミット」状態では、波形とシーケンスをオンボードメモリにロードすることが可能です。任意のプロパティを変更する場合、セッションは暗示的に「待機」状態に戻りますが、ハードウェア構成は前回のコミットプロパティが反映されます。「待機」状態から「niFgenコミット」VIまたは「niFgen_Commit」関数を呼び出すことで、すべてのプロパティを確認し、デバイスを構成し、「コミット」状態に遷移することができます。
生成中―「生成中」状態では、セッションプロパティは常にデバイスの現在の状態を反映しています。また、デバイスはトリガ待機中または信号生成中の状態です。「任意波形ゲイン 」プロパティまたは「 NIFGEN_ATTR_ARB_GAIN 」属性、「任意波形オフセット 」プロパティまたは「 NIFGEN_ATTR_ARB_OFFSET 」属性などのダイナミックプロパティは、セッションが「生成中」状態に設定されていると、デバイスに即座に適用されます。
以下の動作または設定により、1つの状態から別の状態に遷移します。
- 「待機」状態で「niFgen生成を開始」VIまたは「niFgen_InitiateGeneration」関数を呼び出すと、「生成中」状態に遷移します。
- 「待機」状態で「niFgenコミット」VIまたは「niFgen_Commit」関数を呼び出すと、「コミット」状態に遷移します。
- 「待機」状態で任意の「波形を作成または書き込み」VIまたは関数を呼び出すと、「コミット」状態に遷移します。
- 「待機」状態で「niFgen任意シーケンスを作成」VIまたは「niFgen_CreateArbSequence」関数、もしくは「niFgen上級任意シーケンスを作成」VIまたは「niFgen_CreateAdvancedArbSequence」関数を呼び出すと、「コミット」状態に遷移します。
- 「コミット」状態で任意のプロパティを変更すると、「待機」状態に遷移します。
- 「生成中」状態でダイナミック以外のプロパティを変更するとエラーが返されますが、「生成中」状態から遷移することはありません。
- 「生成中」状態で「niFgen生成を中止」VIまたは「niFgen_AbortGeneration」関数を呼び出すと、「コミット」状態に遷移します。
- 任意の状態から「niFgen閉じる」VIまたは「niFgen_close」関数を呼び出すと、NI-FGENのセッションが閉じて、クローズ状態に遷移します。セッションが「生成中」状態の場合は、生成が最初に中止されます。
- 任意の状態から「niFgenリセット」VIまたは「niFgen_reset」関数を呼び出すと、「待機」状態に遷移します。セッションが「生成中」状態の場合は、生成が最初に中止されます。