• 検索結果がありません。

FbiDaDC.DLL関数リファレンス

ドキュメント内 TUT-0022 (ページ 71-74)

第 5 章  DLL リファレンス 49

5.2  FbiDaDC.DLL関数リファレンス

DaDataConv

アナログデータの形式を変換します。形式の変換とともにデータに対し平均処理やスムージング処理を行うことができます。

また、ユーザー関数の指定により、任意のデータ変換式を設定することも可能です。(Visual Basic以外)

宣言

INT DaDataConv(

UINT uSrcFormCode, PVOID pSrcData, UINT uSrcSmplDataNum, PDASMPLREQ pSrcSmplReq, UINT uDestFormCode, PVOID pDestData,

PUINT puDestSmplDataNum, PDASMPLREQ pDestSmplReq, UINT uEffect,

UINT uCount,

LPDACONVPROC pfnConv );

パラメータ

uSrcFormCode ppSrcDataが指すデータ領域に格納されているデータ形式をデータ指定識別子にて指

定します。

識別子 データ形式

DA_DATA_PHYSICAL 物理量(電圧[V]または電流[mA])

DA_DATA_BIN8 8bitバイナリ DA_DATA_BIN12 12bitバイナリ DA_DATA_BIN16 16bitバイナリ DA_DATA_BIN24 24bitバイナリ

バイナリデータとは、ボードに対して直接入出力できる形式のデータを指します。

pSrcData 変換元データへのポインタを指定します。

pSrcSmplReq 変換元データのアナログ出力更新条件が格納されている構造体(DASMPLREQ構造体)

へのポインタを指定します。

uSrcSmplDataNum 変換元データ数を指定します。

uDestFormCode pDestDataが指すデータ領域に格納されているデータ形式をデータ指定識別子にて指

定します。

識別子 データ形式

DA_DATA_PHYSICAL 物理量(電圧[V]または電流[mA])

DA_DATA_BIN8 8bitバイナリ DA_DATA_BIN12 12bitバイナリ DA_DATA_BIN16 16bitバイナリ DA_DATA_BIN24 24bitバイナリ

バイナリデータとは、ボードに対して直接入出力できる形式のデータを指します。

pDestData 変換後データへのポインタを指定します。

puDestSmplDataNum 変換後データ数へのポインタを指定します。

pDestSmplReq 変換後データのアナログ出力更新条件を格納するための構造体(DASMPLREQ構造体)

へのポインタを指定します。

uEffect データ変換指定

データ変換の際に平均、スムージング処理を行うかどうかを以下のデータ変換識別子 にて指定します。0を指定すると平均、スムージング処理は行われません。

識別子 内容

0 平均,スムージングを行いません。

DA_CONV_SMOOTH データに対し、スムージングによる変換を行います。

DA_CONV_AVERAGE1 データに対し、単純平均による変換を行います。

DA_CONV_AVERAGE2 データに対し、移動平均による変換を行います。

uCount 平均、スムージングのデータ数

uEffectに0が指定されている場合、uCountは無効です。

lpfnConv ユーザー関数へのポインタ

一通りのデータ変換を終えた後、ユーザー関数により任意の計算を行ってデータに変 換を加えることができます。lpfnConvには変換を行うための関数へのポインタを指定 します。(fnConv関数参照)

ユーザー関数によるデータ変換を行わない場合は、lpfnConvにNULLを指定してくださ い。

戻り値

DaDataConv関数は正常に終了するとDA_ERROR_SUCCESSを返します。それ以外の場合はDA_ERROR_SUCCESS以外の値を返 します。DA_ERROR_SUCCESS以外の値が返された場合については、戻り値一覧を参照してください。

解説 

スムージングを行った場合、pSrcDataとpDestDataはデータ件数だけでなく、アナログ出力更新条件にも変化が起こります。例え ば、1kHzで1000件のデータを持っていた場合、これを10件で平均した場合、アナログ出力データ更新レートは100Hz、データは 100件になります。スムージングを行った場合はその逆のことが起こります。

DaWriteFile

指定バッファのアナログ出力データをファイルに書き込みます。

ファイル形式はバイナリとCSVに対応しています。

宣言

INT DaWriteFile(

LPCTSTR pszPathName, PVOID pSmplData, ULONG ulFormCode, ULONG ulSmplNum, ULONG ulChCount );

パラメータ

pszPathName アナログ出力データを格納するデータファイルへのパスを指定します。

pSmplData ファイルに書き込むアナログ出力データが格納されているバッファへのポインタ

を指定します。

ulFormCode バッファ内のアナログ出力データの形式を指定します。

識別子 データ形式

DA_DATA_PHYSICAL 物理量(電圧[V]または電流[mA]) DA_DATA_BIN8 8bitバイナリ

DA_DATA_BIN12 12bitバイナリ DA_DATA_BIN16 16bitバイナリ DA_DATA_BIN24 24bitバイナリ

ulSmplNum アナログ出力データ数を指定します。

ulChCount アナログ出力を行うチャンネル数を1〜そのボードの提供する最大チャンネル数

の範囲で指定します。

戻り値

DaWriteFile関数は正常に終了するとDA_ERROR_SUCCESSを返します。それ以外の場合はDA_ERROR_SUCCESS以外の値を返し ます。DA_ERROR_SUCCESS以外の値が返された場合については、エラーコード一覧を参照してください。

解説

バッファ内のデータ形式のままファイルに書き込みます。

データがバイナリの場合は、バイナリ形式のファイルに、データが物理量の場合はCSV形式のファイルとなります。

fnConv

DaDataConv関数で使用するコールバック関数です。DaDataConv関数のlpfnConvにfnConv関数へのポインタを設定することにより、

データ変換時にfnConv関数を呼び出すことができます。fnConv関数は、データ1点ごとに呼び出されます。

宣言

CONVPROC fnConv(

INT nCh, DWORD dwCount, PVOID lpData );

パラメータ

nCh nChには、lpDataが指すデータのチャンネル番号が渡されます。

dwCount dwCountには、lpDataが指すデータが、データの先頭から何番目にあたるかが渡さ

れます。

lpData

lpDataには、DaDataConv関数により変換されたデータが格納されているデータへ のポインタが渡されます。fnConv関数は、データ1つごとに呼び出されます。lpData が指す位置のデータを変換後のデータ形式の型で読み出し、計算を行った後lpData が指す位置へ変換後データ形式の型と同じ型で書き込んでください。

戻り値

fnConv関数は、値を返しません。

エラーコード一覧

定数 値 内容

DA_ERROR_SUCCESS 0 正常終了

DA_ERROR_NOT_DEVICE 0xC0000001 指定されたデバイスを見つけることができません

DA_ERROR_NOT_OPEN 0xC0000002 システムがデバイスをオープンできません

DA_ERROR_INVALID_HANDLE 0xC0000003 デバイスハンドルが正しくありません

DA_ERROR_ALREADY_OPEN 0xC0000004 すでにOPENしているデバイスをOPENしようとしました

DA_ERROR_NOT_SUPPORTED 0xC0000009 サポートされていない機能です

DA_ERROR_NOW_SAMPLING 0xC0001001 サンプリングを実行中です

DA_ERROR_STOP_SAMPLING 0xC0001002 サンプリングは停止中です

DA_ERROR_START_SAMPLING 0xC0001003 サンプリングを実行できませんでした

DA_ERROR_SAMPLING_TIMEOUT 0xC0001004 サンプリング中においてタイムアウトが発生しました

DA_ERROR_INVALID_PARAMETER 0xC0001021 パラメータが不正です

DA_ERROR_ILLEGAL_PARAMETER 0xC0001022 サンプリング設定が正しくありません

DA_ERROR_NULL_POINTER 0xC0001023 NULLポインタを指定しました

DA_ERROR_SET_DATA 0xC0001024 サンプリングデータの設定ができませんでした

DA_ERROR_FILE_OPEN 0xC0001041 ファイルのオープンに失敗しました

DA_ERROR_FILE_CLOSE 0xC0001042 ファイルのクローズに失敗しました

DA_ERROR_FILE_READ 0xC0001043 ファイルのリードに失敗しました

DA_ERROR_FILE_WRITE 0xC0001044 ファイルのライトに失敗しました

DA_ERROR_INVALID_DATA_FORMAT 0xC0001061 データ形式が無効です DA_ERROR_INVALID_AVERAGE_OR_SM

OOTHING

0xC0001062 平均またはスムージングの指定が正しくありません

DA_ERROR_INVALID_SOURCE_DATA 0xC0001063 データ変換元として指定されたデータが正しくありません DA_ERROR_NOT_ALLOCATE_MEMORY 0xC0001081 メモリが確保できません

DA_ERROR_NOT_LOAD_DLL 0xC0001082 DLLがロードできませんでした

DA_ERROR_CALL_DLL 0xC0001083 DLLの呼び出しに失敗しました

ドキュメント内 TUT-0022 (ページ 71-74)

関連したドキュメント