フェッチ集録関数とは

niScope_Fetch」および「niScope_FetchMeasurement」などのフェッチ関数は、読み取り関数とは異なり非同期でデータを集録します。フェッチ関数は必要時までデータをデジタイザに格納し、他のタスクが実行できるようにコンピュータを開放するため、パフォーマンスが向上します。ただしフェッチには、波形集録を開始し、集録が完了したかどうかをボードにクエリする関数を呼び出す必要があります。

同じフェッチ関数を、単純なデータ集録、そして複数レコードフェッチなどの上級データ集録の両方で使用できます。関数ではデータの読み取り方法としてサンプル数パラメータのみが提供されていますが、NI-SCOPEには上級フェッチオプションを指定するためのさまざまな属性が含まれています。「NISCOPE_ATTR_FETCH_RELATIVE_TO」および「NISCOPE_ATTR_FETCH_OFFSET」属性は、回収するレコード位置を明示的に選択することを可能にします。「NISCOPE_ATTR_FETCH_RECORD_NUMBER」および「NISCOPE_ATTR_FETCH_NUM_RECORDS」属性では、複数レコード集録中に回収するレコードを指定することができます。

フェッチ集録関数を使用する

データをフェッチするには、以下のプログラムを作成します。

  1. niScope_init」を使用して、新規の計測器セッションを作成します。
  2. NI-SCOPEの構成関数を使用して、デジタイザを構成します。
  3. niScope_ActualRecordLength」を呼び出して、デジタイザが各チャンネルにおいて集録する実際のポイント数を取り込みます。
  4. niScope_InitiateAcquisition」を呼び出して、波形集録を開始します。有効なチャンネルすべてにおいてデータが同時に集録されます。
  5. niScope_AcquisitionStatus」をループ内で呼び出し、集録が完了したかどうかを確認します。この手順は、集録中に他のタスクを実行する場合に便利です。また、フェッチ関数ではタイムアウトを設定し、NI-SCOPEの集録完了まで強制的に待機させることもできます。
  6. 必要なフェッチ関数を呼び出します。複数のチャンネルまたは測定からデータを集録する場合は、複数のフェッチ関数を呼び出すことができます。
  7. niScope_close」を呼び出して、現在のセッションを閉じます。