Add Keyence LK_H laser test dialog:VER1.1

This commit is contained in:
TAO Cheng
2013-05-10 17:26:57 +08:00
parent 036cdcb228
commit 2b37dd82b3
16 changed files with 1386 additions and 229 deletions
@@ -0,0 +1,301 @@
#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番号(011)
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();
}