5. DLL リファレンス
5.2. FbiDaDC.DLL 関数リファレンス
DaDataConv
アナログデータの形式を変換します。形式の変換とともにデータに対し平均処理やスムージング処理を行う ことができます。
また、ユーザー関数の指定により、任意のデータ変換式を設定することも可能です。
宣言宣言 宣言宣言
INT DaDataConv(UINT uSrcFormCode,PVOID pSrcData,UINT uSrcSmplDataNum,PDASMPLREQ pSrcSmplReq,UINT uDestFormCode,PVOID pDestData,PUINT puDestSmplDataNum,PDASMPLREQ pDestSmplReq,UINT uEffect,UINT uCount,CONVPROC pfnConv);
パラメータ パラメータ パラメータ パラメータ
uSrcFormCode pSrcDataが指すデータ領域に格納されているデータ形式を指定します。
定数 意味
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 で平均、スムージングを行うように指定したとき、平均,スムージングの
データ件数を指定します。
uEffectに0が指定されている場合、uCountは無効です。
lpfnConv 一通りのデータ変換を終えた後に呼び出すユーザ・コールバック関数を指定しま
す。ユーザ・コールバック関数によるデータ変換を行わない場合は、lpfnConv に NULLを指定してください。
戻り値 戻り値 戻り値 戻り値
関数が成功すると0が返されます。
関数が失敗すると0以外の値が返ります。関数が失敗した場合の戻り値については「エラーコード一覧」を 参照してください。
解説解説 解説解説
スムージングを行った場合、pSrcDataとpDestDataはデータ件数だけでなく、アナログ出力更新条件にも 変化が起こります。例えば、1kHzで1000件のデータを持っていた場合、これを10件で平均した場合、ア ナログ出力データ更新レートは100Hz、データは100件になります。スムージングを行った場合はその逆の ことが起こります。
lpfnconvの詳細についてはfnConv関数を参照下さい。
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〜そのボードの提供する最大チャンネ
ル数の範囲で指定します。
戻り値 戻り値 戻り値 戻り値
関数が成功すると0が返されます。
関数が失敗すると0以外の値が返ります。関数が失敗した場合の戻り値については「エラーコード一覧」を 参照してください。
解説 解説 解説 解説
バッファ内のデータ形式のままファイルに書き込みます。
データがバイナリの場合はバイナリ形式のファイルに、データが物理量の場合はCSV 形式のファイルとな ります。
fnConv
DaDataConv関数で使用するコールバック関数です。
宣言宣言 宣言宣言
CONVPROC fnConv(INT nCh,DWORD dwCount,PVOID lpData);
パラメータ パラメータ パラメータ パラメータ
nCh nChには、lpDataが指すデータのチャンネル番号が渡されます。
dwCount lpDataが指すデータが、データの先頭から何番目にあたるかが渡されます。
lpData DaDataConv関数により変換されたデータが格納されているデータへのポイン
タが渡されます。
戻り値戻り値 戻り値戻り値
fnConv関数は、値を返しません。
解説解説 解説解説
DaDataConv関数のlpfnConvにfnConv関数を設定することにより、データ変換時にfnConv関数を呼び出 すことができます。fnConv関数は、データ1点毎に呼び出されます。lpDataが指す位置のデータを変換後の
エラーコード一覧 エラーコード一覧 エラーコード一覧 エラーコード一覧
定数 値 内容
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の呼び出しに失敗しました