NI-SCOPEには、「読み取り」および「フェッチ」の2種類のデータ集録関数があります。このサンプルでは、わかりやすくするために「読み取り」関数を使用します。

LabVIEWの例: データを集録する

チャンネル入力パラメータでは、NI-SCOPEがデータを集録するチャンネルを指定します。

Cの例: データを集録する

この例には、LabVIEWでは不要な関数およびパラメータが含まれています。「niScope_ActualRecordLength」を呼び出して、NI-SCOPEが使用する実際のレコード長を取得し、波形配列に対して十分なスペースを確保する必要があります。そして、集録を開始し「niScope_Read」でデータをフェッチします。データをフェッチした後、集録されたデータを抽出およびプロットするためにポインタを渡す必要があります。このプロセスを実行する方法は、使用しているADEによって異なります。

// 集録する実際のサンプル数を取得します niScope_ActualRecordLength (vi, &actualRecordLength);

// チャンネルリストの有効波形数を取得します niScope_ActualNumWfms (vi,channelList, &numWfm);

// 波形情報のためにスペースを割り当てます wfmInfoPtr = malloc (sizeof (struct niScope_wfmInfo) * numWfm);

// 波形配列のためにスペースを割り当てます wfmPtr = malloc (sizeof (ViReal64) * actualRecordLength * numWfm);

// 割り当てが適切に行われたか確認します if (!wfmPtr|| !wfmInfoPtr)

return NISCOPE_ERROR_INSUFFICIENT_MEMORY;

// データを読み込みます (集録を開始しデータをフェッチします) niScope_Read (vi, channelList, timeout, actualRecordLength, wfmPtr, wfmInfoPtr);

パラメータについて

チャンネルリストパラメータでは、NI-SCOPEがデータを集録するチャンネルを指定します。wfmInfoPtrパラメータは、波形の表示に必要な値を返します。相対初期値xは、トリガを基準とする波形内の最初のポイントの時間 (秒) です。絶対初期値xは、波形内の最初のポイントを示す絶対値となるタイムスタンプです。増分xは、波形のポイント間の時間 (秒) です。wfmPtrパラメータは、NI-SCOPEが読み取った波形を格納するバッファです。個々の配列要素の単位はボルト (V) です。