// protocol for control SevenOcean's Machine // ////////////////////////////////////////////////////////////////////// #ifndef AFX_KEYENCE__LASER_H__B422904C_2CEB_495B_B7BD_B45AB30286DD__INCLUDED_ #define AFX_KEYENCE__LASER_H__B422904C_2CEB_495B_B7BD_B45AB30286DD__INCLUDED_ #if _MSC_VER > 1000 #pragma once #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); // Stopping the Data Storage typedef BOOL (WINAPI* pLKIF_DataStorageStop)(void); // Initializing the Data Storage typedef BOOL (WINAPI* pLKIF_DataStorageInit)(void); // Outputting the Data Storage typedef BOOL (WINAPI* pLKIF_DataStorageGetData)(IN int OutNo,IN int NumOutBuffer,OUT LKIF_FLOATVALUE *OutBuffer,OUT int *NumReceived); // Data Storage Accumulation Status Output typedef BOOL (WINAPI* pLKIF_DataStorageGetStatus)(IN int OutNo,OUT BOOL *IsStorage,OUT int *NumStorageData); // Set Data Storage typedef BOOL (WINAPI* pLKIF_SetDataStorage)(IN LKIF_TARGETOUT TargetOut,IN int NumStorage,IN LKIF_STORAGECYCLE StorageCycle); // Program Change typedef BOOL (WINAPI* pLKIF_SETPROGRAMNO)(IN int ProgramNo); // Program Change typedef BOOL (WINAPI* pLKIF_SETPROGRAMNO)(IN int ProgramNo); // Set Scaling typedef BOOL (WINAPI* pLKIF_SetScaling)(IN int OutNo,IN int HeadNo,IN int InputValue1,IN int OutputValue1,IN int InputValue2,IN int OutputValue2); typedef BOOL (WINAPI* pLKIF_GetScaling)(IN int OutNo,IN int HeadNo,OUT int *InputValue1,OUT int *OutputValue1,OUT int *InputValue2,OUT int *OutputValue2); typedef BOOL (WINAPI* pLKIF_SetDisplayUnit)(IN int OutNo,IN LKIF_DISPLAYUNIT DisplayUnit); typedef BOOL (WINAPI* pLKIF_GetDisplayUnit)(IN int OutNo,OUT LKIF_DISPLAYUNIT *DisplayUnit); typedef BOOL (WINAPI* pLKIF_SetPanel)(IN int OutNo); // Set Measurement Mode typedef BOOL (WINAPI* pLKIF_SetMeasureMode)(IN int HeadNo,IN LKIF_MEASUREMODE MeasureMode); typedef BOOL (WINAPI* pLKIF_SetCalcMethod)(IN int OutNo,IN LKIF_CALCMETHOD CalcMethod,LKIF_CALCTARGET CalcTarget); typedef BOOL (WINAPI* pLKIF_SetMutualInterferencePrevention)(IN BOOL IsOn); //====================================================================================== class CKeyence_Laser { protected: int m_iSetOutNo; int m_NeedStorageDataNumber; LKIF_STORAGECYCLE m_StorageCycle; HMODULE m_hLkif; int m_ProgramNO; public: CKeyence_Laser(); ~CKeyence_Laser(); //获取数据的函数指针 pLKIF_GetCalcData m_pGetCalcData; pLKIF_DataStorageStart m_pDataStorageStart; pLKIF_DataStorageStop m_pDataStorageStop; pLKIF_DataStorageInit m_pDataStorageInit; pLKIF_DataStorageGetData m_pDataStorageGetData; pLKIF_DataStorageGetStatus m_pDataStorageGetStatus; pLKIF_SetDataStorage m_pSetDataStorage; pLKIF_SETPROGRAMNO m_pSetProgramNo; pLKIF_SetScaling m_pSetScaling; pLKIF_GetScaling m_pGetScaling; pLKIF_SetDisplayUnit m_pSetDisplayUnit; pLKIF_GetDisplayUnit m_pGetDisplayUnit; pLKIF_SetPanel m_pSetPanel; pLKIF_SetMeasureMode m_pSetMeasureMode; pLKIF_SetCalcMethod m_pSetCalcMethod; pLKIF_SetMutualInterferencePrevention m_pSetMutualInterferencePrevention; int m_StoredDataNumber; BOOL m_bIsStorage; void KeyenceLaserInit(void); void Get_KeyenceLaserData(float *LaserValue1,float *LaserValue2); BOOL StartStoreData(int _NeedStorageDataNumber,int _SampleTime); BOOL StopStoreData(); BOOL GetStoreDataStatus(); BOOL GetStoredData(float *GetStorageData,int *GetStorageNumber); BOOL PauseScanAndGetData(float *GetStorageData,int *GetStorageNumber); BOOL SetProgramNO(int ProNO); BOOL SetOutValueScaling(double _CalibVal); BOOL SetProgram(char _MeasureMode); BOOL GetOutValueScaling(double* _CalibratedScale); }; #endif