#pragma once #ifdef LKIF2_EXPORTS #define EXP __declspec(dllexport) #else #define EXP __declspec(dllimport) #endif #include "LKIFCommonDefine.h" #include "Winsock2.h" // リターンコード typedef enum { RC_OK = 0x0000, // 正常終了 /////////////////////////////////////////////// // コントローラからの通信エラー通知 // RC_NAK_COMMAND = 0x1001, // コマンドエラー RC_NAK_COMMAND_LENGTH, // コマンド長エラー RC_NAK_TIMEOUT, // タイムアウト RC_NAK_CHECKSUM, // チェックサムエラー RC_NAK_INVALID_STATE, // 状態エラー RC_NAK_OTHER, // その他エラー RC_NAK_PARAMETER, // パラメータエラー RC_NAK_OUT_STAGE, // OUT演算段数エラー RC_NAK_OUT_HEAD_NUM, // 使用ヘッド数、OUT数オーバー RC_NAK_OUT_INVALID_CALC, // 演算対象に指定できないOUTを指定 RC_NAK_OUT_VOID, // 演算対象に指定されているOUTが無い RC_NAK_INVALID_CYCLE, // 使用できないサンプリング周期 RC_NAK_CTRL_ERROR, // メインユニット異常 RC_NAK_SRAM_ERROR, // 設定値異常 /////////////////////////////////////////////// // 通信DLLのエラー通知 // RC_ERR_OPEN_DEVICE = 0x2000,// デバイスのオープンに失敗 RC_ERR_NO_DEVICE, // デバイスがオープンされていない RC_ERR_SEND, // コマンド送信エラー RC_ERR_RECEIVE, // レスポンス受信エラー RC_ERR_TIMEOUT, // タイムアウト RC_ERR_NODATA, // データなし RC_ERR_NOMEMORY, // 空きメモリなし RC_ERR_DISCONNECT, // 断線の可能性あり RC_ERR_UNKNOWN, // 未定義エラー } RC; // 測定値 typedef struct { int OutNo; // OUT番号(0〜11) LKIF_FLOATRESULT FloatResult; // 有効データかどうか float Value; // 測定値 } LKIF_FLOATVALUE_OUT; // IPアドレス typedef struct { IN_ADDR IPAddress; } LKIF_OPENPARAM_ETHERNET; extern "C" { /////////////////////////////////////////////// // 測定制御コマンド // // 測定値出力(単一) EXP RC WINAPI LKIF2_GetCalcDataSingle(IN int OutNo,OUT LKIF_FLOATVALUE_OUT * CalcData); // 測定値出力(複数) EXP RC WINAPI LKIF2_GetCalcDataMulti(IN LKIF_OUTNO OutNo, OUT LKIF_FLOATVALUE_OUT * CalcData); // 測定値出力(ALL) EXP RC WINAPI LKIF2_GetCalcDataALL(OUT int * OutNo,OUT LKIF_FLOATVALUE_OUT * CalcData); // タイミングON/OFF(単一) EXP RC WINAPI LKIF2_SetTimingSingle(IN int OutNo,IN BOOL OnOff); // タイミングON/OFF(複数) EXP RC WINAPI LKIF2_SetTimingMulti(IN LKIF_OUTNO OutNo,IN BOOL OnOff); // タイミングON/OFF(同期) EXP RC WINAPI LKIF2_SetTimingSync(IN BOOL OnOff); // オートゼロON/OFF(単一) EXP RC WINAPI LKIF2_SetZeroSingle(IN int OutNo,IN BOOL OnOff); // オートゼロON/OFF(複数) EXP RC WINAPI LKIF2_SetZeroMulti(IN LKIF_OUTNO OutNo, IN BOOL OnOff); // オートゼロON/OFF(同期) EXP RC WINAPI LKIF2_SetZeroSync(IN BOOL OnOff); // 測定値リセット(単一) EXP RC WINAPI LKIF2_SetResetSingle(IN int OutNo); // 測定値リセット(複数) EXP RC WINAPI LKIF2_SetResetMulti(IN LKIF_OUTNO OutNo); // 測定値リセット(同期) EXP RC WINAPI LKIF2_SetResetSync(); // パネルロック EXP RC WINAPI LKIF2_SetPanelLock(IN BOOL OnOff); // プログラム切替 EXP RC WINAPI LKIF2_SetProgramNo(IN int ProgramNo); // プログラム確認 EXP RC WINAPI LKIF2_GetProgramNo(OUT int * ProgramNo); // データストレージ開始 EXP RC WINAPI LKIF2_DataStorageStart(); // データストレージ停止 EXP RC WINAPI LKIF2_DataStorageStop(); // データストレージ出力 EXP RC WINAPI LKIF2_DataStorageGetData(IN int OutNo,IN int NumOfBuffer,OUT LKIF_FLOATVALUE * OutBuffer,OUT int *NumReceived); // データストレージ初期化 EXP RC WINAPI LKIF2_DataStorageInit(); // データストレージ蓄積状態出力 EXP RC WINAPI LKIF2_DataStorageGetStatus(OUT BOOL * lsStorage,OUT int * NumStorageData); // 受光波形取得 EXP RC WINAPI LKIF2_GetLight(IN int HeadNo,IN int PeakNo,OUT int * MeasurePosition,OUT BYTE * WaveData); /////////////////////////////////////////////// // 設定内容変更コマンド // // 表示パネル切り替え EXP RC WINAPI LKIF2_SetPanel(IN int UpperDisp,IN int LowerDisp); // 公差設定 EXP RC WINAPI LKIF2_SetTolerance(IN int OutNo,IN int UpperLimit,IN int LowerLimit,IN int Hystersys); // ABLE設定 EXP RC WINAPI LKIF2_SetAbleMode(IN int HeadNo,IN LKIF_ABLEMODE AbleMode); // ABLE制御範囲設定 EXP RC WINAPI LKIF2_SetAbleMinMax(IN int HeadNo,IN int Min,IN int Max); // 測定モード設定 EXP RC WINAPI LKIF2_SetMeasureMode(IN int HeadNo,IN LKIF_MEASUREMODE MeasureMode); // 基点キテン設定 EXP RC WINAPI LKIF2_SetBasicPoint(IN int HeadNo,IN LKIF_BASICPOINT BasicPoint); // アラーム処理回数設定 EXP RC WINAPI LKIF2_SetNumAlarm(IN int HeadNo,IN int AlarmNum); // アラーム復帰回数設定 EXP RC WINAPI LKIF2_SetNumRecovery(IN int HeadNo,IN int RecoveryNum); // アラームレベル設定 EXP RC WINAPI LKIF2_SetAlarmLevel(IN int HeadNo,IN int AlarmLevel); // ABLEチューニング開始 EXP RC WINAPI LKIF2_AbleStart(IN int HeadNo); // ABLEチューニング終了 EXP RC WINAPI LKIF2_AbleStop(); // ABLEチューニング中止 EXP RC WINAPI LKIF2_AbleCancel(); // 設置モード設定 EXP RC WINAPI LKIF2_SetReflectionMode(IN int HeadNo,IN LKIF_REFLECTIONMODE ReflectionMode); // マスク設定 EXP RC WINAPI LKIF2_SetMask(IN int HeadNo,IN BOOL OnOff,IN int Pos1,IN int Pos2); // メディアン設定 EXP RC WINAPI LKIF2_SetMedian(IN int HeadNo,IN LKIF_MEDIAN Median); // LASER CTRLグループ設定 EXP RC WINAPI LKIF2_SetLaserCtrlGroup(IN int HeadNo,IN LKIF_LASER_CTRL_GROUP LaserCtrlGroup); // レンジ設定 EXP RC WINAPI LKIF2_SetRange(IN int HeadNo,IN LKIF_RANGE Range); // 相互干渉グループ設定 EXP RC WINAPI LKIF2_SetMutualInterferencePreventionGroup(IN int HeadNo,IN LKIF_MUTUAL_INTERFERENCE_PREVENTION_GROUP Group); // 演算方式設定 EXP RC WINAPI LKIF2_SetCalcMethod(IN int OutNo,IN LKIF_CALCMETHOD CalcMethod,IN int HeadOutNo); // 測定面設定 EXP RC WINAPI LKIF2_SetCalcTarget(IN int OutNo,IN LKIF_CALCTARGET CalcTarget); // 演算対象設定(加減算) EXP RC WINAPI LKIF2_SetOutAddSub(IN int OutNo,IN int AddSub1,IN int AddSub2); // 演算対象設定(AVE/MAX/MIN/P-P) EXP RC WINAPI LKIF2_SetOutOperation(IN int OutNo,IN LKIF_OUTNO IN TargetOut); // スケーリング設定 EXP RC WINAPI LKIF2_SetScaling(IN int OutNo,IN int InputValue1,IN int OutputValue1,IN int InputValue2,IN int OutputValue2); // フィルタ設定 EXP RC WINAPI LKIF2_SetFilter(IN int OutNo,IN LKIF_FILTERMODE FilterMode,IN LKIF_FILTERPARA FilterPara); // トリガモード設定 EXP RC WINAPI LKIF2_SetTriggerMode(IN int OutNo,IN LKIF_TRIGGERMODE TriggerMode); // オフセット設定 EXP RC WINAPI LKIF2_SetOffset(IN int OutNo,IN int Offset); /// 計測モード設定 EXP RC WINAPI LKIF2_SetCalcMode(IN int OutNo,IN LKIF_CALCMODE CalcMode); /// アナログ出力スケーリング設定 EXP RC WINAPI LKIF2_SetAnalogScaling(IN int OutNo,IN int InputValue1,IN int OutputVoltage1,IN int InputValue2,IN int OutputVoltage2); /// 最小表示単位設定 EXP RC WINAPI LKIF2_SetDisplayUnit(IN int OutNo,IN LKIF_DISPLAYUNIT DisplayUnit); /// 測定種別設定 EXP RC WINAPI LKIF2_SetMeasureType(IN int OutNo,IN LKIF_MEASURETYPE MeasureType); /// 同期設定 EXP RC WINAPI LKIF2_SetSynchronization(IN int OutNo,IN BOOL OnOff); /// ストレージ蓄積対象設定 EXP RC WINAPI LKIF2_SetStorageTarget(IN int OutNo,IN BOOL OnOff); /// サンプリング周期設定 EXP RC WINAPI LKIF2_SetSamplingCycle(IN LKIF2_SAMPLINGCYCLE SamplingCycle); /// 相互干渉防止設定 EXP RC WINAPI LKIF2_SetMutualInterferencePrevention(IN LKIF_MUTUAL_INTERFERENCE_PREVENTION OnOff); /// 判定出力形態設定 EXP RC WINAPI LKIF2_SetToleranceComparatorOutputFormat(IN LKIF_TOLERANCE_COMPARATOR_OUTPUT_FORMAT OutputFormat); /// ストローブ時間設定 EXP RC WINAPI LKIF2_SetStrobeTime(IN LKIF_STOROBETIME StrobeTime); /// データストレージ設定 EXP RC WINAPI LKIF2_SetDataStorage(IN int NumStorage,IN LKIF_STORAGECYCLE StorageCycle); /// アナログ出力ch設定 EXP RC WINAPI LKIF2_SetAnalogChannel(IN int ChNo,IN int OutNo); /// アラーム出力形態設定 EXP RC WINAPI LKIF2_SetAlarmOutputForm(IN LKIF_ALARM_OUTPUT_FORM AlarmOutputForm); /// 使用ヘッド数設定 EXP RC WINAPI LKIF2_SetNumOfUsedHeads(IN int NumOfUsedHeads); /// 使用OUT数設定 EXP RC WINAPI LKIF2_SetNumOfUsedOut(IN int NumOfUsedOut); /// 使用アナログ出力ch数設定 EXP RC WINAPI LKIF2_SetNumOfUsedAnalogCh(IN int NumOfUsedAnalogCh); /////////////////////////////////////////////// // 設定内容変更コマンド // // 表示パネル画面確認 EXP RC WINAPI LKIF2_GetPanel(OUT int * UpperDisp,OUT int * LowerDisp); // 公差取得 EXP RC WINAPI LKIF2_GetTolerance(IN int OutNo,OUT int * UpperLimit,OUT int * LowerLimit,OUT int * Hysteresis); // ABLE取得 EXP RC WINAPI LKIF2_GetAbleMode(IN int HeadNo,OUT LKIF_ABLEMODE * AbleMode); // ABLE制御範囲取得 EXP RC WINAPI LKIF2_GetAbleMinMax(IN int HeadNo,OUT int * Min,OUT int * Max); // 測定モード取得 EXP RC WINAPI LKIF2_GetMeasureMode(IN int HeadNo,OUT LKIF_MEASUREMODE * MeasureMode); // 基点取得 EXP RC WINAPI LKIF2_GetBasicPoint(IN int HeadNo,OUT LKIF_BASICPOINT * BasicPoint); // アラーム処理回数取得 EXP RC WINAPI LKIF2_GetNumAlarm(IN int HeadNo,OUT int * AlarmNum); // アラーム復帰回数取得 EXP RC WINAPI LKIF2_GetNumRecovery(IN int HeadNo,OUT int * RecoveryNum); // アラームレベル取得 EXP RC WINAPI LKIF2_GetAlarmLevel(IN int HeadNo,OUT int * AlarmLevel); // 設置モード取得 EXP RC WINAPI LKIF2_GetReflectionMode(IN int HeadNo,OUT LKIF_REFLECTIONMODE * ReflectionMode); // マスク取得 EXP RC WINAPI LKIF2_GetMask(IN int HeadNo,OUT BOOL * OnOff,OUT int * Pos1,OUT int * Pos2); // メディアン取得 EXP RC WINAPI LKIF2_GetMedian(IN int HeadNo,OUT LKIF_MEDIAN * Median); // LASER CTRLグループ取得 EXP RC WINAPI LKIF2_GetLaserCtrlGroup(IN int HeadNo,OUT LKIF_LASER_CTRL_GROUP * LaserCtrlGroup); // レンジ取得 EXP RC WINAPI LKIF2_GetRange(IN int HeadNo,OUT LKIF_RANGE * Range); // 相互干渉グループ取得 EXP RC WINAPI LKIF2_GetMutualInterferencePreventionGroup(IN int HeadNo,OUT LKIF_MUTUAL_INTERFERENCE_PREVENTION_GROUP * Group); // 演算方式取得 EXP RC WINAPI LKIF2_GetCalcMethod(IN int OutNo,OUT LKIF_CALCMETHOD * CalcMethod,OUT int * HeadOutNo); // 測定面取得 EXP RC WINAPI LKIF2_GetCalcTarget(IN int OutNo,OUT LKIF_CALCTARGET * CalcTarget); // 演算対象取得(加減算) EXP RC WINAPI LKIF2_GetOutAddSub(IN int OutNo,OUT int * AddSub1,OUT int * AddSub2); // 演算対象取得(AVE/P-P/MAX/MIN) EXP RC WINAPI LKIF2_GetOutOperation(IN int OutNo,OUT LKIF_OUTNO * TargetOut); // スケーリング取得 EXP RC WINAPI LKIF2_GetScaling(IN int OutNo,OUT int * InputValue1,OUT int * OutputValue1,OUT int * InputValue2,OUT int * OutputValue2); // フィルタモード取得 EXP RC WINAPI LKIF2_GetFilter(IN int OutNo,OUT LKIF_FILTERMODE * FilterMode,OUT LKIF_FILTERPARA * FilterPara); // トリガモード取得 EXP RC WINAPI LKIF2_GetTriggerMode(IN int OutNo,OUT LKIF_TRIGGERMODE * TriggerMode); // オフセット取得 EXP RC WINAPI LKIF2_GetOffset(IN int OutNo,OUT int * Offset); // 計測モード取得 EXP RC WINAPI LKIF2_GetCalcMode(IN int OutNo,OUT LKIF_CALCMODE * CalcMode); // アナログ出力スケーリング取得 EXP RC WINAPI LKIF2_GetAnalogScaling(IN int OutNo,OUT int * InputValue1,OUT int * OutputVoltage1,OUT int * InputValue2,OUT int * OutputVoltage2); // 最小表示単位取得 EXP RC WINAPI LKIF2_GetDisplayUnit(IN int OutNo,OUT LKIF_DISPLAYUNIT * DisplayUnit); // 測定種別取得 EXP RC WINAPI LKIF2_GetMeasureType(IN int OutNo,OUT LKIF_MEASURETYPE * MeasureType); // 同期取得 EXP RC WINAPI LKIF2_GetSynchronization(IN int OutNo,OUT BOOL * OnOff); // ストレージ蓄積対象取得 EXP RC WINAPI LKIF2_GetStorageTarget(IN int OutNo,OUT BOOL * OnOff); // サンプリング周期取得 EXP RC WINAPI LKIF2_GetSamplingCycle(OUT LKIF2_SAMPLINGCYCLE * SamplingCycle); // 相互干渉防止取得 EXP RC WINAPI LKIF2_GetMutualInterferencePrevention(OUT LKIF_MUTUAL_INTERFERENCE_PREVENTION * OnOff); // 判定出力形態取得 EXP RC WINAPI LKIF2_GetToleranceComparatorOutputFormat(OUT LKIF_TOLERANCE_COMPARATOR_OUTPUT_FORMAT * OutputFormat); // ストローブ時間取得 EXP RC WINAPI LKIF2_GetStrobeTime(OUT LKIF_STOROBETIME * StrobeTime); // データストレージ取得 EXP RC WINAPI LKIF2_GetDataStorage(OUT int * NumStorage,OUT LKIF_STORAGECYCLE * StorageCycle); // アナログ出力ch取得 EXP RC WINAPI LKIF2_GetAnalogChannel(IN int ChNo,OUT int * OutNo); // アラーム出力形態取得 EXP RC WINAPI LKIF2_GetAlarmOutputForm(OUT LKIF_ALARM_OUTPUT_FORM * AlarmOutputForm); // 使用ヘッド数取得 EXP RC WINAPI LKIF2_GetNumOfUsedHeads(OUT int * NumOfUsedHeads); // 使用Out数取得 EXP RC WINAPI LKIF2_GetNumOfUsedOut(OUT int * NumOfUsedOut); // 使用アナログ出力Ch数取得 EXP RC WINAPI LKIF2_GetNumOfUsedAnalogCh(OUT int * NumOfUsedAnalogCh); /////////////////////////////////////////////// // モード変更コマンド // // 測定開始(モード切替) EXP RC WINAPI LKIF2_StartMeasure(); // 測定停止(モード切替) EXP RC WINAPI LKIF2_StopMeasure(); /////////////////////////////////////////////// // その他のコマンド // // USBデバイスオープン EXP RC WINAPI LKIF2_OpenDeviceUsb(); /// Ethernetデバイスオープン EXP RC WINAPI LKIF2_OpenDeviceETHER(LKIF_OPENPARAM_ETHERNET * OpenParam); /// デバイスクローズ EXP RC WINAPI LKIF2_CloseDevice(); }