diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Keyence/Keyence_Laser.h b/PcDmis/Base/Interfac/Msi/Hsi/Keyence/Keyence_Laser.h index e50922b..089fe86 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Keyence/Keyence_Laser.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/Keyence/Keyence_Laser.h @@ -10,7 +10,7 @@ #endif // _MSC_VER > 1000 #include "LkIF.h" - +//Get out DATA typedef BOOL (WINAPI* pLKIF_GetCalcData)(OUT LKIF_FLOATVALUE *CalcData1,OUT LKIF_FLOATVALUE *CalcData2); // Starting the Data Storage typedef BOOL (WINAPI* pLKIF_DataStorageStart)(void); diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Keyence/Keyence_Laser_LK_H.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Keyence/Keyence_Laser_LK_H.cpp new file mode 100644 index 0000000..c33e057 --- /dev/null +++ b/PcDmis/Base/Interfac/Msi/Hsi/Keyence/Keyence_Laser_LK_H.cpp @@ -0,0 +1,339 @@ +#include "StdAfx.h" +#include +#include +#include "Keyence_Laser_LK_H.h" + +static const int OUT_NUM_MAX = 12; +static const int MAX_STORAGE_DATA_SIZE=65535; + + +CKeyence_Laser_LK_H::CKeyence_Laser_LK_H() +{ + m_bIsStorage=FALSE; + m_NumberOfUsedOUT=2; + m_StoredDataNumber=0; + m_NeedStorageDataNumber=0; + m_StorageCycle=LKIF_STORAGECYCLE_100; +} + +CKeyence_Laser_LK_H::~CKeyence_Laser_LK_H() +{ + if(m_hLkif) + { + m_result= m_pCloseDevice(); + FreeLibrary(m_hLkif); + } +} +//======================================== +void CKeyence_Laser_LK_H::KeyenceLaserInit(void) +{ + m_hLkif=LoadLibrary(_T("T:\\Hg_Tony\\MachineInterfaceUtility\\PcDmis\\Base\\Interfac\\Msi\\Hsi\\Tools\\UsbUtility\\Debug\\LKIF2.dll")); + if(m_hLkif) + { + m_pGetCalcDataMulti=(pLKIF2_GetCalcDataMulti)GetProcAddress(m_hLkif,"LKIF2_GetCalcDataMulti"); + m_pOpenDeviceUsb=(pLKIF2_OpenDeviceUsb)GetProcAddress(m_hLkif,"LKIF2_OpenDeviceUsb"); + m_pCloseDevice=(pLKIF2_CloseDevice)GetProcAddress(m_hLkif,"LKIF2_CloseDevice"); + m_SetNumOfUsedOut=(pLKIF2_SetNumOfUsedOut)GetProcAddress(m_hLkif,"LKIF2_SetNumOfUsedOut"); + m_GetNumOfUsedOut=(pLKIF2_GetNumOfUsedOut)GetProcAddress(m_hLkif,"LKIF2_GetNumOfUsedOut"); + m_SetSamplingCycle=(pLKIF2_SetSamplingCycle)GetProcAddress(m_hLkif,"LKIF2_SetSamplingCycle"); + + m_pGetDataStorage=(pLKIF2_GetDataStorage)GetProcAddress(m_hLkif,"LKIF2_GetDataStorage"); + m_pGetStorageTarget=(pLKIF2_GetStorageTarget)GetProcAddress(m_hLkif,"LKIF2_GetStorageTarget"); + m_pGetSamplingCycle=(pLKIF2_GetSamplingCycle)GetProcAddress(m_hLkif,"LKIF2_GetSamplingCycle"); + m_pGetNumOfUsedHeads=(pLKIF2_GetNumOfUsedHeads)GetProcAddress(m_hLkif,"LKIF2_GetNumOfUsedHeads"); + + m_SetStorageTarget=(pLKIF2_SetStorageTarget)GetProcAddress(m_hLkif,"LKIF2_SetStorageTarget"); + m_pDataStorageStart=(pLKIF2_DataStorageStart)GetProcAddress(m_hLkif,"LKIF2_DataStorageStart"); + m_pDataStorageStop=(pLKIF2_DataStorageStop)GetProcAddress(m_hLkif,"LKIF2_DataStorageStop"); + m_pDataStorageInit=(pLKIF2_DataStorageInit)GetProcAddress(m_hLkif,"LKIF2_DataStorageInit"); + m_pDataStorageGetData=(pLKIF2_DataStorageGetData)GetProcAddress(m_hLkif,"LKIF2_DataStorageGetData"); + m_pDataStorageGetStatus=(pLKIF2_DataStorageGetStatus)GetProcAddress(m_hLkif,"LKIF2_DataStorageGetStatus"); + m_pSetDataStorage=(pLKIF2_SetDataStorage)GetProcAddress(m_hLkif,"LKIF2_SetDataStorage"); + + m_result = m_pOpenDeviceUsb(); + + } + +} +//============================================== +/*********************************************** +LaserValue1:为第一个OUT01值 +LaserValue2:为第二个OUT01值 +***********************************************/ +void CKeyence_Laser_LK_H::Get_KeyenceLaserData(float *LaserValue1,float *LaserValue2) +{ + *LaserValue1=10.0; + *LaserValue2=10.0; + LKIF_FLOATVALUE_OUT GetVal[OUT_NUM_MAX]; + LKIF_OUTNO OutNumber=LKIF_OUTNO_ALL; + m_result=m_pGetCalcDataMulti(OutNumber,GetVal); + + if(m_result!=RC_OK) + { + return ; + } + switch(GetVal[0].FloatResult) + { + case LKIF_FLOATRESULT_RANGEOVER_P: + { + *LaserValue1=50; + break; + } + case LKIF_FLOATRESULT_RANGEOVER_N: + { + *LaserValue1=-50; + break; + } + case LKIF_FLOATRESULT_VALID: + { + *LaserValue1=GetVal[0].Value; + break; + } + default: + { + *LaserValue1=0.0; + break; + } + } + + switch(GetVal[1].FloatResult) + { + case LKIF_FLOATRESULT_RANGEOVER_P: + { + *LaserValue2=50; + break; + } + case LKIF_FLOATRESULT_RANGEOVER_N: + { + *LaserValue2=-50; + break; + } + case LKIF_FLOATRESULT_VALID: + { + *LaserValue2=GetVal[1].Value; + break; + } + default: + { + *LaserValue2=0; + break; + } + } +} + +//============================================== +/*********************************************** +_StorageOutNumber:设置需要进行存储的OUT的数量, + 最小为1,即只存储OUT1;最大为12 + 即存储OUT1 至 OUT12. +_NeedStorageDataNumber:设置需要存储的数量,对所有 + 的OUT都有效,有效范围为 + 1-1200000 +_SampleTime:设置存储的采样时间,单位ms +***********************************************/ +BOOL CKeyence_Laser_LK_H::StartStoreData(int _StorageOutNumber,int _NeedStorageDataNumber,int _SampleTime) +{ + BOOL ReturnStatus(FALSE); + GetStoreDataStatus(); + + int NumOfUsedHeads(0); + m_result=m_pGetNumOfUsedHeads(&NumOfUsedHeads); + + LKIF2_SAMPLINGCYCLE TestSamplingCycle(LKIF2_SAMPLINGCYCLE_2_55USEC); + m_result=m_pGetSamplingCycle(&TestSamplingCycle); + + int TestNumStorage(0); + LKIF_STORAGECYCLE TestStorageCycle(LKIF_STORAGECYCLE_1); + m_result=m_pGetDataStorage(&TestNumStorage,&TestStorageCycle); + + BOOL OutNoStatus(FALSE); + for (int i=0;i<12;i++) + { + m_result=m_pGetStorageTarget(i,&OutNoStatus); + } + + + if (!m_bIsStorage) + { + m_result=m_pDataStorageInit(); + + m_result=m_SetSamplingCycle(LKIF2_SAMPLINGCYCLE_200USEC); + m_result = m_GetNumOfUsedOut(&m_NumberOfUsedOUT); + if (_StorageOutNumber<1) + { + _StorageOutNumber=1; + } + else if (_StorageOutNumber>OUT_NUM_MAX) + { + _StorageOutNumber=OUT_NUM_MAX; + } + + + if (_NeedStorageDataNumber<1) + { + _NeedStorageDataNumber=1; + } + else if (_NeedStorageDataNumber>MAX_STORAGE_DATA_SIZE) + { + _NeedStorageDataNumber=MAX_STORAGE_DATA_SIZE; + } + m_NeedStorageDataNumber=_NeedStorageDataNumber; + + if (_SampleTime<0.4) + { + m_StorageCycle=LKIF_STORAGECYCLE_1; + } + else if (_SampleTime<1) + { + m_StorageCycle=LKIF_STORAGECYCLE_2; + } + else if (_SampleTime<2) + { + m_StorageCycle=LKIF_STORAGECYCLE_5; + } + else if (_SampleTime<4) + { + m_StorageCycle=LKIF_STORAGECYCLE_10; + } + else if (_SampleTime<10) + { + m_StorageCycle=LKIF_STORAGECYCLE_20; + } + else if (_SampleTime<20) + { + m_StorageCycle=LKIF_STORAGECYCLE_50; + } + else if (_SampleTime<40) + { + m_StorageCycle=LKIF_STORAGECYCLE_100; + } + else if (_SampleTime<100) + { + m_StorageCycle=LKIF_STORAGECYCLE_200; + } + else if (_SampleTime<200) + { + m_StorageCycle=LKIF_STORAGECYCLE_500; + } + else + { + m_StorageCycle=LKIF_STORAGECYCLE_1000; + } + for (int i=0;i 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#include "LKIF2.h" + +typedef RC (WINAPI* pLKIF2_GetCalcDataMulti)(IN LKIF_OUTNO OutNo, OUT LKIF_FLOATVALUE_OUT * CalcData); +typedef RC (WINAPI* pLKIF2_OpenDeviceUsb)(void); +typedef RC (WINAPI* pLKIF2_CloseDevice)(void); +typedef RC (WINAPI* pLKIF2_SetNumOfUsedOut)(IN int NumOfUsedHeads);//rang2-12 +typedef RC (WINAPI* pLKIF2_GetNumOfUsedOut)(OUT int * NumOfUsedOut); +typedef RC (WINAPI* pLKIF2_SetSamplingCycle)(IN LKIF2_SAMPLINGCYCLE SamplingCycle); + +typedef RC (WINAPI* pLKIF2_GetDataStorage)(OUT int * NumStorage,OUT LKIF_STORAGECYCLE * StorageCycle); +typedef RC (WINAPI* pLKIF2_GetStorageTarget)(IN int OutNo,OUT BOOL * OnOff); +typedef RC (WINAPI* pLKIF2_GetSamplingCycle)(OUT LKIF2_SAMPLINGCYCLE * SamplingCycle); +typedef RC (WINAPI* pLKIF2_GetNumOfUsedHeads)(OUT int * NumOfUsedHeads); + +//Setting the Data Storage Target +typedef RC (WINAPI* pLKIF2_SetStorageTarget)(IN int OutNo,IN BOOL OnOff); +// Starting the Data Storage +typedef RC (WINAPI* pLKIF2_DataStorageStart)(void); +// Stopping the Data Storage +typedef RC (WINAPI* pLKIF2_DataStorageStop)(void); +// Initializing the Data Storage +typedef RC (WINAPI* pLKIF2_DataStorageInit)(void); +// Outputting the Data Storage +typedef RC (WINAPI* pLKIF2_DataStorageGetData)(IN int OutNo,IN int NumOfBuffer,OUT LKIF_FLOATVALUE * OutBuffer,OUT int *NumReceived); +// Data Storage Accumulation Status Output +typedef RC (WINAPI* pLKIF2_DataStorageGetStatus)(OUT BOOL * lsStorage,OUT int * NumStorageData); +// Set Data Storage +typedef RC (WINAPI* pLKIF2_SetDataStorage)(IN int NumStorage,IN LKIF_STORAGECYCLE StorageCycle); + +//====================================================================================== +class CKeyence_Laser_LK_H +{ +protected: + int m_NumberOfUsedOUT; + int m_NeedStorageDataNumber; + LKIF_STORAGECYCLE m_StorageCycle; + HINSTANCE m_hLkif; + RC m_result; +public: + + CKeyence_Laser_LK_H(); + ~CKeyence_Laser_LK_H(); + + //获取数据的函数指针 + pLKIF2_GetCalcDataMulti m_pGetCalcDataMulti; + pLKIF2_OpenDeviceUsb m_pOpenDeviceUsb; + pLKIF2_CloseDevice m_pCloseDevice; + pLKIF2_SetNumOfUsedOut m_SetNumOfUsedOut; + pLKIF2_GetNumOfUsedOut m_GetNumOfUsedOut; + pLKIF2_SetSamplingCycle m_SetSamplingCycle; + + pLKIF2_GetDataStorage m_pGetDataStorage; + pLKIF2_GetStorageTarget m_pGetStorageTarget; + pLKIF2_GetSamplingCycle m_pGetSamplingCycle; + pLKIF2_GetNumOfUsedHeads m_pGetNumOfUsedHeads; + + pLKIF2_SetStorageTarget m_SetStorageTarget; + pLKIF2_DataStorageStart m_pDataStorageStart; + pLKIF2_DataStorageStop m_pDataStorageStop; + pLKIF2_DataStorageInit m_pDataStorageInit; + pLKIF2_DataStorageGetData m_pDataStorageGetData; + pLKIF2_DataStorageGetStatus m_pDataStorageGetStatus; + pLKIF2_SetDataStorage m_pSetDataStorage; + + int m_StoredDataNumber; + BOOL m_bIsStorage; + void KeyenceLaserInit(void); + void Get_KeyenceLaserData(float *LaserValue1,float *LaserValue2); + + BOOL StartStoreData(int _StorageOutNumber,int _NeedStorageDataNumber,int _SampleTime); + BOOL StopStoreData(); + BOOL GetStoreDataStatus(); + BOOL GetStoredData(int OutNo,float *GetStorageData,int *GetStorageNumber); + BOOL PauseScanAndGetData(int OutNo,float *GetStorageData,int *GetStorageNumber); +}; + +#endif diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Keyence/LKIF2.h b/PcDmis/Base/Interfac/Msi/Hsi/Keyence/LKIF2.h new file mode 100644 index 0000000..8e43f78 --- /dev/null +++ b/PcDmis/Base/Interfac/Msi/Hsi/Keyence/LKIF2.h @@ -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斣崋(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(); + +} \ No newline at end of file diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Keyence/LKIFCommonDefine.h b/PcDmis/Base/Interfac/Msi/Hsi/Keyence/LKIFCommonDefine.h new file mode 100644 index 0000000..8195cfe --- /dev/null +++ b/PcDmis/Base/Interfac/Msi/Hsi/Keyence/LKIFCommonDefine.h @@ -0,0 +1,344 @@ +#ifndef LKIF_COMMON_DEFINE_INCLUDED +#define LKIF_COMMON_DEFINE_INCLUDED + +#ifdef I_AM_LKIF +#define EXP __declspec(dllexport) +#else +#define EXP __declspec(dllimport) +#endif + +extern "C" +{ +// Measurement value structures +typedef enum { + LKIF_FLOATRESULT_VALID, // 桳岠僨乕僞 + LKIF_FLOATRESULT_RANGEOVER_P, // +儗儞僕僆乕僶乕 + LKIF_FLOATRESULT_RANGEOVER_N, // -儗儞僕僆乕僶乕 + LKIF_FLOATRESULT_WAITING, // 敾掕懸婡 + LKIF_FLOATRESULT_ALARM, // 傾儔乕儉 + LKIF_FLOATRESULT_INVALID, // 柍岠乮僄儔乕側偳乯 +} LKIF_FLOATRESULT; + +typedef struct { + LKIF_FLOATRESULT FloatResult; // 桳岠僨乕僞偐偳偆偐 + float Value; // 應掕抣 +} LKIF_FLOATVALUE; + +// Statistical Results Output +typedef struct { + LKIF_FLOATVALUE ToleUpper; // tolerance upper limit + LKIF_FLOATVALUE ToleLower; // tolerance lower limit + LKIF_FLOATVALUE AverageValue; // average value + LKIF_FLOATVALUE MaxValue; // maximum value + LKIF_FLOATVALUE MinValue; // minimum value + LKIF_FLOATVALUE DifValue; // maximum value - minimum value + LKIF_FLOATVALUE SdValue; // standard deviation + LONG DataCnt; // number of all data + LONG HighDataCnt; // number of tolerance High data + LONG GoDataCnt; // number of tolerance Go data + LONG LowDataCnt; // number of tolerance Low data +} LKIF_FIGUREDATA; +// Set ABLE +typedef enum { + LKIF_ABLEMODE_AUTO, // automatic + LKIF_ABLEMODE_MANUAL, // manual +} LKIF_ABLEMODE; +// Set Measurement Mode +typedef enum { + LKIF_MEASUREMODE_NORMAL, // normal + LKIF_MEASUREMODE_HALF_T, // translucent object + LKIF_MEASUREMDOE_TRAN_1, // transparent object + LKIF_MEASUREMODE_TRAN_2, // transparent object 2 + LKIF_MEASUREMODE_MRS, // multireflective object + LKIF_MEASUREMODE_OPAQUE =LKIF_MEASUREMODE_MRS, // 岝戲庽帀 +} LKIF_MEASUREMODE; +// Set Mounting Mode +typedef enum { + LKIF_REFLECTIONMODE_DIFFUSION, // diffuse reflection + LKIF_REFLECTIONMODE_MIRROR, // specular reflection +} LKIF_REFLECTIONMODE; + + +// Set Calculation Method +typedef enum { + LKIF_CALCMETHOD_HEADA, // head A + LKIF_CALCMETHOD_HEADB, // head B + LKIF_CALCMETHOD_HEAD_HEADA_PLUS_HEADB, // head A+head B + LKIF_CALCMETHOD_HEAD_HEADA_MINUS_HEADB, // head A-head B + LKIF_CALCMETHOD_HEAD_HEADA_TRANSPARENT, // head A transparent object + LKIF_CALCMETHOD_HEAD_HEADB_TRANSPARENT, // head B transparent object + + LKIF_CALCMETHOD_HEAD = 0, // 僿僢僪 + LKIF_CALCMETHOD_OUT, // OUT + LKIF_CALCMETHOD_ADD, // 壛嶼 + LKIF_CALCMETHOD_SUB, // 尭嶼 + LKIF_CALCMETHOD_AVE, // AVE + LKIF_CALCMETHOD_PP, // P-P + LKIF_CALCMETHOD_MAX, // MAX + LKIF_CALCMETHOD_MIN, // MIN +} LKIF_CALCMETHOD; + +// Measurement target +typedef enum { + LKIF_CALCTARGET_PEAK_1, // peak 1 + LKIF_CALCTARGET_PEAK_2, // peak 2 + LKIF_CALCTARGET_PEAK_3, // peak 3 + LKIF_CALCTARGET_PEAK_4, // peak 4 + LKIF_CALCTARGET_PEAK_1_2, // peak 1-peak 2 + LKIF_CALCTARGET_PEAK_1_3, // peak 1-peak 3 + LKIF_CALCTARGET_PEAK_1_4, // peak 1-peak 4 + LKIF_CALCTARGET_PEAK_2_3, // peak 2-peak 3 + LKIF_CALCTARGET_PEAK_2_4, // peak 2-peak 4 + LKIF_CALCTARGET_PEAK_3_4, // peak 3-peak 4 +} LKIF_CALCTARGET; + +// Set Filter Mode +typedef enum { + LKIF_FILTERMODE_MOVING_AVERAGE, // moving average + LKIF_FILTERMODE_LOWPASS, // low pass filter + LKIF_FILTERMODE_HIGHPASS, // high pass filter +} LKIF_FILTERMODE; + +// Set Number of Times for Averaging +typedef enum { + LKIF_AVERAGE_1, // 1 time + LKIF_AVERAGE_4, // + LKIF_AVERAGE_16, // + LKIF_AVERAGE_64, // + LKIF_AVERAGE_256, // + LKIF_AVERAGE_1024, // + LKIF_AVERAGE_4096, // + LKIF_AVERAGE_16384, // + LKIF_AVERAGE_65536, // + LKIF_AVERAGE_262144, // 262144 times +} LKIF_AVERAGE; + +// Set Cutoff Frequency +typedef enum { + LKIF_CUTOFFFREQUENCY_1000, // 1000Hz + LKIF_CUTOFFFREQUENCY_300, // 300Hz + LKIF_CUTOFFFREQUENCY_100, // 100Hz + LKIF_CUTOFFFREQUENCY_30, // 30Hz + LKIF_CUTOFFFREQUENCY_10, // 10Hz + LKIF_CUTOFFFREQUENCY_3, // 3Hz + LKIF_CUTOFFFREQUENCY_1, // 1Hz + LKIF_CUTOFFFREQUENCY_0_3, // 0.3Hz + LKIF_CUTOFFFREQUENCY_0_1, // 0.1Hz +} LKIF_CUTOFFFREQUENCY; + +// Set Trigger Mode +typedef enum { + LKIF_TRIGGERMODE_EXT1, // external trigger 1 + LKIF_TRIGGERMODE_EXT2, // external trigger 2 +} LKIF_TRIGGERMODE; + +// Set Calculation Mode +typedef enum { + LKIF_CALCMODE_NORMAL, // normal + LKIF_CALCMODE_PEAKHOLD, // peak hold + LKIF_CALCMODE_BOTTOMHOLD, // bottom hold + LKIF_CALCMODE_PEAKTOPEAKHOLD, // peak-to-peak hold + LKIF_CALCMODE_SAMPLEHOLD, // sample hold + LKIF_CALCMODE_AVERAGEHOLD, // average hold +} LKIF_CALCMODE; + +// Set Minimum Display Unit +typedef enum { + LKIF_DISPLAYUNIT_0000_01MM=0, // 0.01mm + LKIF_DISPLAYUNIT_000_001MM, // 0.001mm + LKIF_DISPLAYUNIT_00_0001MM, // 0.0001mm + LKIF_DISPLAYUNIT_0_00001MM, // 0.00001mm + LKIF_DISPLAYUNIT_00000_1UM, // 0.1兪m + LKIF_DISPLAYUNIT_0000_01UM, // 0.01兪m + LKIF_DISPLAYUNIT_000_001UM, // 0.001兪m + + LKIF_DISPLAYUNIT_00000_1M_S=0, // 0.1m/s + LKIF_DISPLAYUNIT_0000_01M_S, // 0.01m/s + LKIF_DISPLAYUNIT_000_001M_S, // 0.001m/s + LKIF_DISPLAYUNIT_00000_1MM_S, // 0.1mm/s + LKIF_DISPLAYUNIT_0000_01MM_S, // 0.01mm/s + LKIF_DISPLAYUNIT_000_001MM_S, // 0.001mm/s + LKIF_DISPLAYUNIT_00_0001MM_S, // 0.0001mm/s + + LKIF_DISPLAYUNIT_00000_1KM_S2=0,// 0.1km/s2 + LKIF_DISPLAYUNIT_0000_01KM_S2, // 0.01km/s2 + LKIF_DISPLAYUNIT_000_001KM_S2, // 0.001km/s2 + LKIF_DISPLAYUNIT_00000_1M_S2, // 0.1m/s2 + LKIF_DISPLAYUNIT_0000_01M_S2, // 0.01m/s2 + LKIF_DISPLAYUNIT_000_001M_S2, // 0.001m/s2 + LKIF_DISPLAYUNIT_00_0001M_S2, // 0.0001m/s2 +} LKIF_DISPLAYUNIT; + +// Set Timing Synchronization +typedef enum { + LKIF_SYNCHRONIZATION_ASYNCHRONOUS, // asynchronous + LKIF_SYNCHRONIZATION_SYNCHRONIZED, // synchronous +} LKIF_SYNCHRONIZATION; + +// Set Data Storage +typedef enum { + LKIF_TARGETOUT_NONE, // no target OUT + LKIF_TARGETOUT_OUT1, // OUT1 + LKIF_TARGETOUT_OUT2, // OUT2 + LKIF_TARGETOUT_BOTH, // OUT1 and OUT2 +} LKIF_TARGETOUT; + +// Set Strage Saampling Rate +typedef enum { + LKIF_STORAGECYCLE_1, // sampling rate x1 + LKIF_STORAGECYCLE_2, // sampling rate x2 + LKIF_STORAGECYCLE_5, // sampling rate x5 + LKIF_STORAGECYCLE_10, // sampling rate x10 + LKIF_STORAGECYCLE_20, // sampling rate x20 + LKIF_STORAGECYCLE_50, // sampling rate x50 + LKIF_STORAGECYCLE_100, // sampling rate x100 + LKIF_STORAGECYCLE_200, // sampling rate x200 + LKIF_STORAGECYCLE_500, // sampling rate x500 + LKIF_STORAGECYCLE_1000, // sampling rate x1000 + LKIF_STORAGECYCLE_TIMING, // 僞僀儈儞僌摨婜 +} LKIF_STORAGECYCLE; + +// Set Sampling Rate +typedef enum { + LKIF_SAMPLINGCYCLE_20USEC, // 20us + LKIF_SAMPLINGCYCLE_50USEC, // 50us + LKIF_SAMPLINGCYCLE_100USEC, // 100us + LKIF_SAMPLINGCYCLE_200USEC, // 200us + LKIF_SAMPLINGCYCLE_500USEC, // 500us + LKIF_SAMPLINGCYCLE_1MSEC, // 1ms +} LKIF_SAMPLINGCYCLE; + +// 僒儞僾儕儞僌廃婜愝掕 +typedef enum { + LKIF2_SAMPLINGCYCLE_2_55USEC, // 2.55us + LKIF2_SAMPLINGCYCLE_5USEC, // 5us + LKIF2_SAMPLINGCYCLE_10USEC, // 10us + LKIF2_SAMPLINGCYCLE_20USEC, // 20us + LKIF2_SAMPLINGCYCLE_50USEC, // 50us + LKIF2_SAMPLINGCYCLE_100USEC, // 100us + LKIF2_SAMPLINGCYCLE_200USEC, // 200us + LKIF2_SAMPLINGCYCLE_500USEC, // 500us + LKIF2_SAMPLINGCYCLE_1MSEC, // 1ms +} LKIF2_SAMPLINGCYCLE; + +// Set Comparator Output Format +typedef enum { + LKIF_TOLERANCE_COMPARATOR_OUTPUT_FORMAT_NORMAL, // normal + LKIF_TOLERANCE_COMPARATOR_OUTPUT_FORMAT_HOLD, // hold + LKIF_TOLERANCE_COMPARATOR_OUTPUT_FORMAT_OFF_DELAY, // off-delay +} LKIF_TOLERANCE_COMPARATOR_OUTPUT_FORMAT; + +// Set Strobe Time +typedef enum { + LKIF_STOROBETIME_2MS, // 2ms + LKIF_STOROBETIME_5MS, // 5ms + LKIF_STOROBETIME_10MS, // 10ms + LKIF_STOROBETIME_20MS, // 20ms +} LKIF_STOROBETIME; + +// Mode Switch +typedef enum { + LKIF_MODE_NORMAL, // normal mode + LKIF_MODE_COMMUNICATION, // setting mode +} LKIF_MODE; + +// 婎揰愝掕 +typedef enum { + LKIF_BASICPOINT_NEAR, // NEAR + LKIF_BASICPOINT_FAR, // FAR +} LKIF_BASICPOINT; +// 儊僨傿傾儞愝掕 +typedef enum { + LKIF_MEDIAN_OFF, // OFF + LKIF_MEDIAN_7, // 7揰 + LKIF_MEDIAN_15, // 15揰 + LKIF_MEDIAN_31, // 31揰 +} LKIF_MEDIAN; + +// LASER CTRL僌儖乕僾愝掕 +typedef enum { + LKIF_LASER_CTRL_GROUP_1, // LASER CTRL 1 + LKIF_LASER_CTRL_GROUP_2, // LASER CTRL 2 +} LKIF_LASER_CTRL_GROUP; + +// 儗儞僕愝掕 +typedef enum { + LKIF_RANGE_CENTER, // CENTER + LKIF_RANGE_FAR, // FAR +} LKIF_RANGE; + +// 憡屳姳徛僌儖乕僾愝掕 +typedef enum { + LKIF_MUTUAL_INTERFERENCE_PREVENTION_GROUP_A, // Group A + LKIF_MUTUAL_INTERFERENCE_PREVENTION_GROUP_B, // Group B + LKIF_MUTUAL_INTERFERENCE_PREVENTION_GROUP_C, // Group C +} LKIF_MUTUAL_INTERFERENCE_PREVENTION_GROUP; +// 僼傿儖僞僷儔儊乕僞(暯嬒夞悢愝掕/僇僢僩僆僼廃攇悢愝掕) +typedef enum{ + LKIF_FILTERPARA_AVE_1 = 0, // 1夞 + LKIF_FILTERPARA_AVE_4, // 4夞 + LKIF_FILTERPARA_AVE_16, // 16夞 + LKIF_FILTERPARA_AVE_64, // 64夞 + LKIF_FILTERPARA_AVE_256, // 256夞 + LKIF_FILTERPARA_AVE_1024, // 1024夞 + LKIF_FILTERPARA_AVE_4096, // 4096夞 + LKIF_FILTERPARA_AVE_16384, // 16384夞 + LKIF_FILTERPARA_AVE_65536, // 65536夞 + LKIF_FILTERPARA_AVE_262144, // 262144夞 + + LKIF_FILTERPARA_COFF_3000 = 0, // 3000Hz + LKIF_FILTERPARA_COFF_1000, // 1000Hz + LKIF_FILTERPARA_COFF_300, // 300Hz + LKIF_FILTERPARA_COFF_100, // 100Hz + LKIF_FILTERPARA_COFF_30, // 30Hz + LKIF_FILTERPARA_COFF_10, // 10Hz + LKIF_FILTERPARA_COFF_3, // 3Hz + LKIF_FILTERPARA_COFF_1, // 1Hz + LKIF_FILTERPARA_COFF_0_3, // 0.3Hz + LKIF_FILTERPARA_COFF_0_1, // 0.1Hz +}LKIF_FILTERPARA; +// 應掕庬暿愝掕 +typedef enum { + LKIF_MEASURETYPE_DISPLACEMENT, // 曄埵 + LKIF_MEASURETYPE_SPEED, // 懍搙 + LKIF_MEASURETYPE_ACCELERATION, // 壛懍搙 +} LKIF_MEASURETYPE; + +// OUT巜掕 +typedef enum { + LKIF_OUTNO_01 = 0x0001, // OUT1 + LKIF_OUTNO_02 = 0x0002, // OUT2 + LKIF_OUTNO_03 = 0x0004, // OUT3 + LKIF_OUTNO_04 = 0x0008, // OUT4 + LKIF_OUTNO_05 = 0x0010, // OUT5 + LKIF_OUTNO_06 = 0x0020, // OUT6 + LKIF_OUTNO_07 = 0x0040, // OUT7 + LKIF_OUTNO_08 = 0x0080, // OUT8 + LKIF_OUTNO_09 = 0x0100, // OUT9 + LKIF_OUTNO_10 = 0x0200, // OUT10 + LKIF_OUTNO_11 = 0x0400, // OUT11 + LKIF_OUTNO_12 = 0x0800, // OUT12 + LKIF_OUTNO_ALL = 0x0FFF, // 慡OUT +} LKIF_OUTNO; + + +// 憡屳姳徛杊巭愝掕 +typedef enum { + LKIF_MUTUAL_INTERFERENCE_PREVENTION_OFF, // OFF + LKIF_MUTUAL_INTERFERENCE_PREVENTION_AB_ON, // AB-ON + LKIF_MUTUAL_INTERFERENCE_PREVENTION_ABC_ON, // ABC-ON +} LKIF_MUTUAL_INTERFERENCE_PREVENTION; + + +// 傾儔乕儉弌椡宍懺愝掕 +typedef enum { + LKIF_ALARM_OUTPUT_FORM_SYSTEM, // 僔僗僥儉傾儔乕儉偺傒 + LKIF_ALARM_OUTPUT_FORM_MEASURE, // 應掕抣傾儔乕儉偺傒 + LKIF_ALARM_OUTPUT_FORM_BOTH, // 僔僗僥儉傾儔乕儉媦傃應掕抣傾儔乕儉 +} LKIF_ALARM_OUTPUT_FORM; + + + +} + +#endif // LKIF_INCLUDED \ No newline at end of file diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Keyence/LkIF.h b/PcDmis/Base/Interfac/Msi/Hsi/Keyence/LkIF.h index b1290d7..aac7d91 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Keyence/LkIF.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/Keyence/LkIF.h @@ -6,22 +6,9 @@ #else #define EXP __declspec(dllimport) #endif - +#include "LKIFCommonDefine.h" extern "C" { -// Measurement value structures -typedef enum { - LKIF_FLOATRESULT_VALID, // valid data - LKIF_FLOATRESULT_RANGEOVER_P, // over range at positive (+) side - LKIF_FLOATRESULT_RANGEOVER_N, // over range at negative (-) side - LKIF_FLOATRESULT_WAITING, // comparator result -} LKIF_FLOATRESULT; - -typedef struct { - LKIF_FLOATRESULT FloatResult; // valid or invalid data - float Value; // measurement value during LKIF_FLOATRESULT_VALID. - // Any other times will return an invalid value -} LKIF_FLOATVALUE; /////////////////////////////////////////////// // Measurement Control Command // @@ -40,19 +27,6 @@ EXP BOOL WINAPI LKIF_SetProgramNo(IN int ProgramNo); // Program Check EXP BOOL WINAPI LKIF_GetProgramNo(OUT int *ProgramNo); // Statistical Results Output -typedef struct { - LKIF_FLOATVALUE ToleUpper; // tolerance upper limit - LKIF_FLOATVALUE ToleLower; // tolerance lower limit - LKIF_FLOATVALUE AverageValue; // average value - LKIF_FLOATVALUE MaxValue; // maximum value - LKIF_FLOATVALUE MinValue; // minimum value - LKIF_FLOATVALUE DifValue; // maximum value - minimum value - LKIF_FLOATVALUE SdValue; // standard deviation - LONG DataCnt; // number of all data - LONG HighDataCnt; // number of tolerance High data - LONG GoDataCnt; // number of tolerance Go data - LONG LowDataCnt; // number of tolerance Low data -} LKIF_FIGUREDATA; EXP BOOL WINAPI LKIF_GetFigureData(IN int OutNo,OUT LKIF_FIGUREDATA *FigureData); // Clearing Statistics EXP BOOL WINAPI LKIF_ClearFigureData(void); @@ -77,21 +51,10 @@ EXP BOOL WINAPI LKIF_SetPanel(IN int OutNo); // Set Tolerance EXP BOOL WINAPI LKIF_SetTolerance(IN int OutNo,IN int UpperLimit,IN int LowerLimit,IN int Hysteresis); // Set ABLE -typedef enum { - LKIF_ABLEMODE_AUTO, // automatic - LKIF_ABLEMODE_MANUAL, // manual -} LKIF_ABLEMODE; EXP BOOL WINAPI LKIF_SetAbleMode(IN int HeadNo,IN LKIF_ABLEMODE AbleMode); // Set ABLE Control Range EXP BOOL WINAPI LKIF_SetAbleMinMax(IN int HeadNo,IN int Min,IN int Max); // Set Measurement Mode -typedef enum { - LKIF_MEASUREMODE_NORMAL, // normal - LKIF_MEASUREMODE_HALF_T, // translucent object - LKIF_MEASUREMDOE_TRAN_1, // transparent object - LKIF_MEASUREMODE_TRAN_2, // transparent object 2 - LKIF_MEASUREMODE_MRS, // multireflective object -} LKIF_MEASUREMODE; EXP BOOL WINAPI LKIF_SetMeasureMode(IN int HeadNo,IN LKIF_MEASUREMODE MeasureMode); // Set Number of Times of Alarm Processing EXP BOOL WINAPI LKIF_SetNumAlarm(IN int HeadNo,IN int NumAlarm); @@ -103,155 +66,39 @@ EXP BOOL WINAPI LKIF_AbleStart(IN int HeadNo); EXP BOOL WINAPI LKIF_AbleStop(void); // Stopping the ABLE Calibration EXP BOOL WINAPI LKIF_AbleCancel(void); -// Set Mounting Mode -typedef enum { - LKIF_REFLECTIONMODE_DIFFUSION, // diffuse reflection - LKIF_REFLECTIONMODE_MIRROR, // specular reflection -} LKIF_REFLECTIONMODE; EXP BOOL WINAPI LKIF_SetReflectionMode(IN int HeadNo,IN LKIF_REFLECTIONMODE ReflectionMode); -// Set Calculation Method -typedef enum { - LKIF_CALCMETHOD_HEADA, // head A - LKIF_CALCMETHOD_HEADB, // head B - LKIF_CALCMETHOD_HEAD_HEADA_PLUS_HEADB, // head A+head B - LKIF_CALCMETHOD_HEAD_HEADA_MINUS_HEADB, // head A-head B - LKIF_CALCMETHOD_HEAD_HEADA_TRANSPARENT, // head A transparent object - LKIF_CALCMETHOD_HEAD_HEADB_TRANSPARENT, // head B transparent object -} LKIF_CALCMETHOD; -// Measurement target -typedef enum { - LKIF_CALCTARGET_PEAK_1, // peak 1 - LKIF_CALCTARGET_PEAK_2, // peak 2 - LKIF_CALCTARGET_PEAK_3, // peak 3 - LKIF_CALCTARGET_PEAK_4, // peak 4 - LKIF_CALCTARGET_PEAK_1_2, // peak 1-peak 2 - LKIF_CALCTARGET_PEAK_1_3, // peak 1-peak 3 - LKIF_CALCTARGET_PEAK_1_4, // peak 1-peak 4 - LKIF_CALCTARGET_PEAK_2_3, // peak 2-peak 3 - LKIF_CALCTARGET_PEAK_2_4, // peak 2-peak 4 - LKIF_CALCTARGET_PEAK_3_4, // peak 3-peak 4 -} LKIF_CALCTARGET; EXP BOOL WINAPI LKIF_SetCalcMethod(IN int OutNo,IN LKIF_CALCMETHOD CalcMethod,LKIF_CALCTARGET CalcTarget); // Set Scaling EXP BOOL WINAPI LKIF_SetScaling(IN int OutNo,IN int HeadNo,IN int InputValue1,IN int OutputValue1,IN int InputValue2,IN int OutputValue2); -// Set Filter Mode -typedef enum { - LKIF_FILTERMODE_MOVING_AVERAGE, // moving average - LKIF_FILTERMODE_LOWPASS, // low pass filter - LKIF_FILTERMODE_HIGHPASS, // high pass filter -} LKIF_FILTERMODE; + EXP BOOL WINAPI LKIF_SetFilterMode(IN int OutNo,OUT LKIF_FILTERMODE FilterMode); -// Set Number of Times for Averaging -typedef enum { - LKIF_AVERAGE_1, // 1 time - LKIF_AVERAGE_4, // - LKIF_AVERAGE_16, // - LKIF_AVERAGE_64, // - LKIF_AVERAGE_256, // - LKIF_AVERAGE_1024, // - LKIF_AVERAGE_4096, // - LKIF_AVERAGE_16384, // - LKIF_AVERAGE_65536, // - LKIF_AVERAGE_262144, // 262144 times -} LKIF_AVERAGE; + EXP BOOL WINAPI LKIF_SetAverage(IN int OutNo,IN LKIF_AVERAGE Average); -// Set Cutoff Frequency -typedef enum { - LKIF_CUTOFFFREQUENCY_1000, // 1000Hz - LKIF_CUTOFFFREQUENCY_300, // 300Hz - LKIF_CUTOFFFREQUENCY_100, // 100Hz - LKIF_CUTOFFFREQUENCY_30, // 30Hz - LKIF_CUTOFFFREQUENCY_10, // 10Hz - LKIF_CUTOFFFREQUENCY_3, // 3Hz - LKIF_CUTOFFFREQUENCY_1, // 1Hz - LKIF_CUTOFFFREQUENCY_0_3, // 0.3Hz - LKIF_CUTOFFFREQUENCY_0_1, // 0.1Hz -} LKIF_CUTOFFFREQUENCY; + EXP BOOL WINAPI LKIF_SetCutOffFrequency(IN int OutNo,IN LKIF_CUTOFFFREQUENCY CutOffFrequency); -// Set Trigger Mode -typedef enum { - LKIF_TRIGGERMODE_EXT1, // external trigger 1 - LKIF_TRIGGERMODE_EXT2, // external trigger 2 -} LKIF_TRIGGERMODE; + EXP BOOL WINAPI LKIF_SetTriggerMode(IN int OutNo,IN LKIF_TRIGGERMODE TriggerMode); // Set Offset EXP BOOL WINAPI LKIF_SetOffset(IN int OutNo,IN int Offset); // Set Analog Output Scaling EXP BOOL WINAPI LKIF_SetAnalogScaling(IN int OutNo,IN int InputValue1,IN int OutputVoltage1,IN int InputValue2,IN int OutputVoltage2); -// Set Calculation Mode -typedef enum { - LKIF_CALCMODE_NORMAL, // normal - LKIF_CALCMODE_PEAKHOLD, // peak hold - LKIF_CALCMODE_BOTTOMHOLD, // bottom hold - LKIF_CALCMODE_PEAKTOPEAKHOLD, // peak-to-peak hold - LKIF_CALCMODE_SAMPLEHOLD, // sample hold - LKIF_CALCMODE_AVERAGEHOLD, // average hold -} LKIF_CALCMODE; + EXP BOOL WINAPI LKIF_SetCalcMode(IN int OutNo,IN LKIF_CALCMODE CalcMode); -// Set Minimum Display Unit -typedef enum { - LKIF_DISPLAYUNIT_0000_01MM, // 0.01mm - LKIF_DISPLAYUNIT_000_001MM, // 0.001mm - LKIF_DISPLAYUNIT_00_0001MM, // 0.0001mm - LKIF_DISPLAYUNIT_0_00001MM, // 0.00001mm - LKIF_DISPLAYUNIT_00000_1UM, // 0.1um - LKIF_DISPLAYUNIT_0000_01UM, // 0.01um -} LKIF_DISPLAYUNIT; + EXP BOOL WINAPI LKIF_SetDisplayUnit(IN int OutNo,IN LKIF_DISPLAYUNIT DisplayUnit); // Set Analog-Through EXP BOOL WINAPI LKIF_SetAnalogThrough(IN int OutNo,IN BOOL IsOn); // Set Data Storage -typedef enum { - LKIF_TARGETOUT_NONE, // no target OUT - LKIF_TARGETOUT_OUT1, // OUT1 - LKIF_TARGETOUT_OUT2, // OUT2 - LKIF_TARGETOUT_BOTH, // OUT1 and OUT2 -} LKIF_TARGETOUT; -typedef enum { - LKIF_STORAGECYCLE_1, // sampling rate x 1 - LKIF_STORAGECYCLE_2, // sampling rate x 2 - LKIF_STORAGECYCLE_5, // sampling rate x 5 - LKIF_STORAGECYCLE_10, // sampling rate x 10 - LKIF_STORAGECYCLE_20, // sampling rate x 20 - LKIF_STORAGECYCLE_50, // sampling rate x 50 - LKIF_STORAGECYCLE_100, // sampling rate x 100 - LKIF_STORAGECYCLE_200, // sampling rate x 200 - LKIF_STORAGECYCLE_500, // sampling rate x 500 - LKIF_STORAGECYCLE_1000, // sampling rate x 1000 -} LKIF_STORAGECYCLE; EXP BOOL WINAPI LKIF_SetDataStorage(IN LKIF_TARGETOUT TargetOut,IN int NumStorage,IN LKIF_STORAGECYCLE StorageCycle); // Set Sampling Rate -typedef enum { - LKIF_SAMPLINGCYCLE_20USEC, // 20us - LKIF_SAMPLINGCYCLE_50USEC, // 50us - LKIF_SAMPLINGCYCLE_100USEC, // 100us - LKIF_SAMPLINGCYCLE_200USEC, // 200us - LKIF_SAMPLINGCYCLE_500USEC, // 500us - LKIF_SAMPLINGCYCLE_1MSEC, // 1ms -} LKIF_SAMPLINGCYCLE; EXP BOOL WINAPI LKIF_SetSamplingCycle(IN LKIF_SAMPLINGCYCLE SamplingCycle); // Set Mutual Interference Prevention EXP BOOL WINAPI LKIF_SetMutualInterferencePrevention(IN BOOL IsOn); // Set Timing Synchronization -typedef enum { - LKIF_SYNCHRONIZATION_ASYNCHRONOUS, // asynchronous - LKIF_SYNCHRONIZATION_SYNCHRONIZED, // synchronous -} LKIF_SYNCHRONIZATION; EXP BOOL WINAPI LKIF_SetTimingSynchronization(IN LKIF_SYNCHRONIZATION Synchronization); // Set Comparator Output Format -typedef enum { - LKIF_TOLERANCE_COMPARATOR_OUTPUT_FORMAT_NORMAL, // normal - LKIF_TOLERANCE_COMPARATOR_OUTPUT_FORMAT_HOLD, // hold - LKIF_TOLERANCE_COMPARATOR_OUTPUT_FORMAT_OFF_DELAY, // off-delay -} LKIF_TOLERANCE_COMPARATOR_OUTPUT_FORMAT; EXP BOOL WINAPI LKIF_SetToleranceComparatorOutputFormat(IN LKIF_TOLERANCE_COMPARATOR_OUTPUT_FORMAT ToleranceComparatorOutputFormat); // Set Strobe Time -typedef enum { - LKIF_STOROBETIME_2MS, // 2ms - LKIF_STOROBETIME_5MS, // 5ms - LKIF_STOROBETIME_10MS, // 10ms - LKIF_STOROBETIME_20MS, // 20ms -} LKIF_STOROBETIME; EXP BOOL WINAPI LKIF_SetStorobeTime(IN LKIF_STOROBETIME StorobeTime); /////////////////////////////////////////////// // Check Parameter Command @@ -310,10 +157,6 @@ EXP BOOL WINAPI LKIF_GetStorobeTime(OUT LKIF_STOROBETIME *StorobeTime); // Mode Change Command // // Mode Switch -typedef enum { - LKIF_MODE_NORMAL, // normal mode - LKIF_MODE_COMMUNICATION, // setting mode -} LKIF_MODE; EXP BOOL WINAPI LKIF_SetMode(IN LKIF_MODE Mode); } // extern "C" diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/UtilityDebug.Log b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/UtilityDebug.Log index 4372bd8..544713f 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/UtilityDebug.Log +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/UtilityDebug.Log @@ -411,3 +411,68 @@ Init:Open device succeed . _start_machine Exit: Exit_SO7Usb Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Keyence_UtilDlg.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Keyence_UtilDlg.cpp index 02141fe..a1be5f4 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Keyence_UtilDlg.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Keyence_UtilDlg.cpp @@ -5,14 +5,17 @@ #include "resource.h" #include "afxdialogex.h" #include "..\..\..\Keyence\Keyence_Laser.h" +#include "..\..\..\Keyence\Keyence_Laser_LK_H.h" #include "..\..\..\Keyence\\Keyence_Proto.h" #include "..\..\..\SevenOcean\SO7_Proto.h" #include "Keyence_UtilDlg.h" extern CSO7_Proto* m_pSO7_Proto; extern CKeyence_Laser* m_pKeyence_Laser; +extern CKeyence_Laser_LK_H* m_pKeyence_Laser_LK_H; extern CKeyence_Proto* m_pKeyence_Proto; -#define MAX_STORAGE_DATA_SIZE 65536 +static const int LK_G_MAX_STORAGE_DATA_SIZE=65536; +static const int LK_H_MAX_STORAGE_DATA_SIZE=65535; long lmove_to_x(0); long lmove_to_y(0); @@ -57,6 +60,11 @@ BEGIN_MESSAGE_MAP(CKeyence_UtilDlg, CDialog) ON_BN_CLICKED(IDC_BUTTON_GET_SCAN_DATA_KEYENCE_LK_GLASER, &CKeyence_UtilDlg::OnBnClickedButtonGetScanDataKeyenceLkGlaser) ON_BN_CLICKED(IDC_BUTTON_STOP_SCAN_KEYENCE_LK_GLASER, &CKeyence_UtilDlg::OnBnClickedButtonStopScanKeyenceLkGlaser) ON_BN_CLICKED(IDC_BUTTON_SCAN_KEYENCE_LK_GLASER, &CKeyence_UtilDlg::OnBnClickedButtonScanKeyenceLkGlaser) + ON_BN_CLICKED(IDC_BUTTON_LASER_LK_H_GET_DATA, &CKeyence_UtilDlg::OnBnClickedButtonLaserLkHGetData) + ON_BN_CLICKED(IDC_CHECK_CONTINUE_READ_LASER_LK_H_VALUE, &CKeyence_UtilDlg::OnBnClickedCheckContinueReadLaserLkHValue) + ON_BN_CLICKED(IDC_BUTTON_SCAN_KEYENCE_LK_HLASER, &CKeyence_UtilDlg::OnBnClickedButtonScanKeyenceLkHlaser) + ON_BN_CLICKED(IDC_BUTTON_STOP_SCAN_KEYENCE_LK_HLASER, &CKeyence_UtilDlg::OnBnClickedButtonStopScanKeyenceLkHlaser) + ON_BN_CLICKED(IDC_BUTTON_GET_SCAN_DATA_KEYENCE_LK_HLASER, &CKeyence_UtilDlg::OnBnClickedButtonGetScanDataKeyenceLkHlaser) END_MESSAGE_MAP() @@ -66,14 +74,25 @@ BOOL CKeyence_UtilDlg::OnInitDialog() m_pSO7_Proto->Init_SO7Usb(); m_pSO7_Proto->_start_machine(); - m_pKeyence_Laser->KeyenceLaserInit(); + ((CButton *)GetDlgItem(IDC_RADIO_KEYENCE_LASER_LK_G))->SetCheck(FALSE); + ((CButton *)GetDlgItem(IDC_RADIO_KEYENCE_LASER_LK_H))->SetCheck(TRUE); + + if (((CButton *)GetDlgItem(IDC_RADIO_KEYENCE_LASER_LK_G))->GetCheck()) + { + m_pKeyence_Laser->KeyenceLaserInit(); + } + else if (((CButton *)GetDlgItem(IDC_RADIO_KEYENCE_LASER_LK_H))->GetCheck()) + { + m_pKeyence_Laser_LK_H->KeyenceLaserInit(); + } + return TRUE; // return TRUE unless you set the focus to a control } // CKeyence_UtilDlg 消息处理程序 - +#pragma region LK_G_LASER void CKeyence_UtilDlg::OnBnClickedButtonInitKeyenceLaser() { @@ -126,7 +145,7 @@ void CKeyence_UtilDlg::OnBnClickedButtonStopScanKeyenceLkGlaser() //================================================================================================ void CKeyence_UtilDlg::OnBnClickedButtonGetScanDataKeyenceLkGlaser() { - float GetData[MAX_STORAGE_DATA_SIZE]; + float GetData[LK_G_MAX_STORAGE_DATA_SIZE]; int GetDataNumber(0); m_pKeyence_Laser->GetStoredData(GetData,&GetDataNumber); m_OutMessage.Format(_T("------TotaL:%d--------------"),GetDataNumber); @@ -154,6 +173,7 @@ void CKeyence_UtilDlg::OnBnClickedButtonGetScanDataKeyenceLkGlaser() } } +#pragma endregion //================================================================================================ void CKeyence_UtilDlg::OnTimer(UINT_PTR nIDEvent) { @@ -162,16 +182,38 @@ void CKeyence_UtilDlg::OnTimer(UINT_PTR nIDEvent) case 1:OnBnClickedButtonInitKeyenceLaser(); break; case 2: - float GetData[MAX_STORAGE_DATA_SIZE]; - int GetDataNumber(0); - m_pKeyence_Laser->PauseScanAndGetData(GetData,&GetDataNumber); - m_OutMessage.Format(_T(":%d"),m_pKeyence_Laser->m_StoredDataNumber); - OutputWithScroll(m_OutMessage,m_edMSG); - /*for(INT I=0;IPauseScanAndGetData(GetData,&GetDataNumber); + m_OutMessage.Format(_T(":%d"),m_pKeyence_Laser->m_StoredDataNumber); + OutputWithScroll(m_OutMessage,m_edMSG); + /*for(INT I=0;IPauseScanAndGetData(i,GetData,&GetDataNumber); + m_OutMessage.Format(_T("OUT%d::%d"),i+1,m_pKeyence_Laser_LK_H->m_StoredDataNumber); + OutputWithScroll(m_OutMessage,m_edMSG); + } + */ + + m_pKeyence_Laser_LK_H->GetStoreDataStatus(); + m_OutMessage.Format(_T(":%d :%d"),m_pKeyence_Laser_LK_H->m_bIsStorage,m_pKeyence_Laser_LK_H->m_StoredDataNumber); + OutputWithScroll(m_OutMessage,m_edMSG); + break; } CDialog::OnTimer(nIDEvent); @@ -181,6 +223,9 @@ void CKeyence_UtilDlg::OnBnClickedCancel() { KillTimer(1); KillTimer(2); + KillTimer(3); + KillTimer(4); + m_pSO7_Proto->_shutdown_machine(); m_pSO7_Proto->Exit_SO7Usb(); CDialog::OnCancel(); @@ -208,6 +253,8 @@ void CKeyence_UtilDlg::OutputWithScroll(const CString &strNewText,CEdit &edtOutp edtOutput.SetSel(iCount, iCount); edtOutput.SetRedraw(TRUE); } + +#pragma region BackUp /************************************************ *************************************************/ //=============================================== @@ -295,10 +342,88 @@ void CKeyence_UtilDlg::OnBnClickedButtonExitKeyenceUsb() } +#pragma endregion + +void CKeyence_UtilDlg::OnBnClickedButtonLaserLkHGetData() +{ + m_pSO7_Proto->_send_cmd_SO7_CMD_OPEN_KEYENCE_LASER(); + do + { + Sleep(20); + m_pSO7_Proto->_send_cmd_SO7_CMD_READ_INTERRUPT_MESSAGE(); + } while (m_pSO7_Proto->g_machine.InterruptFlag[0]!=CT_SEND_XYZLASE); + m_pSO7_Proto->g_machine.InterruptFlag[0]=0; + CString csLaserValue; + m_pKeyence_Laser_LK_H->Get_KeyenceLaserData(&fLaserVaule1,&fLaserVaule2); + csLaserValue.Format(_T("%f"),fLaserVaule1); + GetDlgItem(IDC_EDIT_LASER_LK_H_VALUE1)->SetWindowText(csLaserValue); + csLaserValue.Format(_T("%f"),fLaserVaule2); + GetDlgItem(IDC_EDIT_LASER_LK_H_VALUE2)->SetWindowText(csLaserValue); +} +void CKeyence_UtilDlg::OnBnClickedCheckContinueReadLaserLkHValue() +{ + if (((CButton*)(GetDlgItem(IDC_CHECK_CONTINUE_READ_LASER_LK_H_VALUE)))->GetCheck()) + { + ((CButton*)(GetDlgItem(IDC_BUTTON_LASER_LK_H_GET_DATA)))->EnableWindow(FALSE); + SetTimer(3,20,NULL); + } + else + { + ((CButton*)(GetDlgItem(IDC_BUTTON_LASER_LK_H_GET_DATA)))->EnableWindow(TRUE); + KillTimer(3); + } +} +void CKeyence_UtilDlg::OnBnClickedButtonScanKeyenceLkHlaser() +{ + m_LK_H_StorageOutNumber=4; + m_pKeyence_Laser_LK_H->StartStoreData(m_LK_H_StorageOutNumber,1000,20); + m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_X(5); + SetTimer(4,100,NULL); +} +void CKeyence_UtilDlg::OnBnClickedButtonStopScanKeyenceLkHlaser() +{ + m_pSO7_Proto->_send_cmd_SO7_CMD_STOP_MOVE_XYZ(); + m_pKeyence_Laser_LK_H->StopStoreData(); + KillTimer(4); +} + +void CKeyence_UtilDlg::OnBnClickedButtonGetScanDataKeyenceLkHlaser() +{ + float GetData[LK_H_MAX_STORAGE_DATA_SIZE]={0.0}; + int GetDataNumber(0); + + FILE* m_pOutFile; + char *outBuff = NULL; + CString cFileName=_T("T:\\log\\LK_H_Laser.log"); + _wfopen_s(&m_pOutFile, cFileName, _T("wt")); + if (!m_pOutFile) + { + free(outBuff); + } + else + { + for(int i=0;i<=m_LK_H_StorageOutNumber;i++) + { + m_pKeyence_Laser_LK_H->GetStoredData(i,GetData,&GetDataNumber); + m_OutMessage.Format(_T("--------OUT%d: TotaL:%d----------"),i,GetDataNumber); + OutputWithScroll(m_OutMessage,m_edMSG); + + fprintf(m_pOutFile,"--------OUT%d: TotaL:%d----------\n", i,GetDataNumber); + for (int i=0;iSetCheck(TRUE); + ((CButton *)GetDlgItem(IDC_RADIO_CONTROLLER))->SetCheck(FALSE); ((CButton *)GetDlgItem(IDC_RADIO_VIDEOCARD_SDK3000))->SetCheck(FALSE); ((CButton *)GetDlgItem(IDC_RADIO_VIDEOCARD_SV2000E))->SetCheck(FALSE); ((CButton *)GetDlgItem(IDC_RADIO_VIDEOCARD_TC4000))->SetCheck(FALSE); + ((CButton *)GetDlgItem(IDC_RADIO_KEYENCE_LASER))->SetCheck(TRUE); return TRUE; // return TRUE unless you set the focus to a control } @@ -85,33 +88,47 @@ BOOL CSo7_Option::OnInitDialog() //=================================== void CSo7_Option::OnBnClickedOk() { - if (((CButton *)GetDlgItem(IDC_RADIO_CONTROLLER))->GetCheck()) - { - if (!m_pSO7_Proto) - m_pSO7_Proto = new CSO7_Proto(); - CSO7_UtilDlg* pSO7_UtilDlg=new CSO7_UtilDlg(); - pSO7_UtilDlg->DoModal(); - delete pSO7_UtilDlg; - } - else if(((CButton *)GetDlgItem(IDC_RADIO_KEYENCE_LASER_LK_G))->GetCheck()) - { - if (!m_pSO7_Proto) - m_pSO7_Proto = new CSO7_Proto(); - if (!m_pKeyence_Proto) - m_pKeyence_Proto=new CKeyence_Proto(); - if (!m_pKeyence_Laser) - m_pKeyence_Laser = new CKeyence_Laser(); + if (((CButton *)GetDlgItem(IDC_RADIO_CONTROLLER))->GetCheck()) + { + if (!m_pSO7_Proto) + m_pSO7_Proto = new CSO7_Proto(); + CSO7_UtilDlg* pSO7_UtilDlg=new CSO7_UtilDlg(); + pSO7_UtilDlg->DoModal(); + delete pSO7_UtilDlg; + delete m_pSO7_Proto; + m_pSO7_Proto=NULL; + } + else if(((CButton *)GetDlgItem(IDC_RADIO_KEYENCE_LASER))->GetCheck()) + { + if (!m_pSO7_Proto) + { + m_pSO7_Proto = new CSO7_Proto(); + } + if (!m_pKeyence_Proto) + { + m_pKeyence_Proto=new CKeyence_Proto(); + } + if (!m_pKeyence_Laser) + { + m_pKeyence_Laser = new CKeyence_Laser(); + } + if (!m_pKeyence_Laser_LK_H) + { + m_pKeyence_Laser_LK_H=new CKeyence_Laser_LK_H(); + } - CKeyence_UtilDlg* pKeyence_UtilDlg=new CKeyence_UtilDlg(); - pKeyence_UtilDlg->DoModal(); - delete pKeyence_UtilDlg; + CKeyence_UtilDlg* pKeyence_UtilDlg=new CKeyence_UtilDlg(); + pKeyence_UtilDlg->DoModal(); + delete pKeyence_UtilDlg; - delete m_pKeyence_Laser; - delete m_pKeyence_Proto; - delete m_pSO7_Proto; - m_pKeyence_Laser=NULL; - m_pKeyence_Proto=NULL; - m_pSO7_Proto=NULL; + delete m_pKeyence_Laser; + m_pKeyence_Laser=NULL; + delete m_pKeyence_Laser_LK_H; + m_pKeyence_Laser_LK_H=NULL; + delete m_pKeyence_Proto; + m_pKeyence_Proto=NULL; + delete m_pSO7_Proto; + m_pSO7_Proto=NULL; } else if (((CButton *)GetDlgItem(IDC_RADIO_VIDEOCARD_SDK3000))->GetCheck()) { diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Usb_Util.vcxproj b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Usb_Util.vcxproj index bfbfca7..27338af 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Usb_Util.vcxproj +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Usb_Util.vcxproj @@ -170,7 +170,7 @@ true true MachineX86 - ..\..\..\..\..\..\..\ThirdParty\UsbSupport\LibUsb_Win\Lib\Msvc\libusb.lib;..\..\..\Videocard\SDK3000\sdk3000_7130.lib;..\..\..\Videocard\SV2000E\dataAcq.lib;..\..\..\Videocard\SV2000E\DXMediaCap.lib;%(AdditionalDependencies) + ..\..\..\..\..\..\..\ThirdParty\UsbSupport\LibUsb_Win\Lib\Msvc\libusb.lib;..\..\..\Videocard\SDK3000\sdk3000_7130.lib;..\..\..\Videocard\SV2000E\dataAcq.lib;..\..\..\Videocard\SV2000E\DXMediaCap.lib;..\..\..\Keyence\LKIF2.lib;%(AdditionalDependencies) @@ -206,6 +206,7 @@ + ..\..\..\..\..\ThirdParty\UsbSupport\LibUsb_Win\Include @@ -252,7 +253,9 @@ + + diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Usb_Util.vcxproj.filters b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Usb_Util.vcxproj.filters index 8e766f8..024e610 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Usb_Util.vcxproj.filters +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Usb_Util.vcxproj.filters @@ -106,6 +106,9 @@ Sources Files + + Sources Files + @@ -237,6 +240,12 @@ Header Files + + Header Files + + + Header Files + diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h index c4990b2..4ef4275 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h @@ -251,6 +251,7 @@ #define IDC_CHECK_SV2000E_MIRROR_VERTICALLY 1204 #define IDC_CHECK_CONTINUE_READ_LASER_VALUE 1204 #define IDC_RADIO_MACHINE_SevenOcean 1205 +#define IDC_CHECK_CONTINUE_READ_LASER_LK_H_VALUE 1205 #define IDC_BUTTON_INIT_SO7USB 1206 #define IDC_BUTTON_LOAD_SOCONFIG 1207 #define IDC_BUTTON_LOAD_SO7CONFIG 1207 @@ -288,8 +289,11 @@ #define IDC_BUTTON_RESET_KEYENCE_USB 1228 #define IDC_BUTTON_EXIT_KEYENCE_USB 1229 #define IDC_BUTTON_SO7_MOVE_X_RIGHT 1230 +#define IDC_BUTTON_LASER_LK_H_GET_DATA 1230 #define IDC_BUTTON_SO7_MOVE_Y_BACK 1231 +#define IDC_EDIT_LASER_LK_H_VALUE1 1231 #define IDC_BUTTON_SO7_MOVE_Z_DOWN 1232 +#define IDC_EDIT_LASER_LK_H_VALUE2 1232 #define IDC_BUTTON_READ_PROBE 1233 #define IDC_BUTTON_SO7_MOVE_ZOOM_IN 1236 #define IDC_BUTTON_SO7_MOVE_ZOOM_OUT 1237 @@ -600,6 +604,7 @@ #define IDC_BUTTON_SETUP_SO7CONFIG 1518 #define IDC_BUTTON_SCAN_KEYENCE_LK_GLASER 1518 #define IDC_STATIC_CANVAS 1519 +#define IDC_BUTTON_SCAN_KEYENCE_LK_HLASER 1519 #define IDC_BUTTON_STATUS_OVERHEAT_X 1520 #define IDC_EDIT_SAMPLE_TIME_SCURVE 1520 #define IDC_BUTTON_STATUS_OVERHEAT_Y 1521 @@ -613,6 +618,7 @@ #define IDC_BUTTON_STOP_SCAN_KEYENCE_LK_GLASER 1524 #define IDC_CUSTOM1 1525 #define IDC_CUSTOM_CANVAS 1525 +#define IDC_BUTTON_STOP_SCAN_KEYENCE_LK_HLASER 1525 #define IDC_RADIO_CONTROLLER 1526 #define IDC_RADIO_VIDEOCARD_SV2000E 1528 #define IDC_RADIO_VIDEOCARD_TC4000 1529 @@ -638,12 +644,14 @@ #define IDC_RADIO_CANVAS_SPEED_TIME 1550 #define IDC_RADIO_CANVAS_POSTION_TIME 1551 #define IDC_EDIT_SET_PARAMETER_MSGOUTPUT 1552 -#define IDC_RADIO2 1553 -#define IDC_RADIO_KEYENCE_LASER_LK_G 1553 +#define IDC_RADIO_KEYENCE_LASER 1553 #define IDC_BUTTON_GET_SCAN_DATA_KEYENCE_LK_GLASER 1555 #define IDC_EDIT_TEST_KEYENCE_MESSAGE 1556 -#define IDC_RADIO1 1557 #define IDC_RADIO_MACHINE_KEYENCE_TM3000 1557 +#define IDC_BUTTON_GET_SCAN_DATA_KEYENCE_LK_GLASER2 1557 +#define IDC_BUTTON_GET_SCAN_DATA_KEYENCE_LK_HLASER 1557 +#define IDC_RADIO_KEYENCE_LASER_LK_G 1558 +#define IDC_RADIO_KEYENCE_LASER_LK_H 1559 // Next default values for new objects // @@ -651,7 +659,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 165 #define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 1558 +#define _APS_NEXT_CONTROL_VALUE 1560 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo index b9ac7d5..887526f 100644 Binary files a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo and b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo differ