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
@@ -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);
@@ -0,0 +1,339 @@
#include "StdAfx.h"
#include <WinDef.h>
#include <WinBase.h>
#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<m_NumberOfUsedOUT;i++)
{
if (i<_StorageOutNumber)
{
m_result=m_SetStorageTarget(i,TRUE);
}
else
{
m_result=m_SetStorageTarget(i,FALSE);
}
}
m_result=m_pSetDataStorage(m_NeedStorageDataNumber,m_StorageCycle);
if (m_result==RC_OK)
{
m_result=m_pDataStorageStart();
ReturnStatus=TRUE;
}
}
return ReturnStatus;
};
//==============================================
BOOL CKeyence_Laser_LK_H::StopStoreData()
{
BOOL ReturnStatus(FALSE);
GetStoreDataStatus();
if (m_bIsStorage)
{
m_result=m_pDataStorageStop();
ReturnStatus=TRUE;
}
return ReturnStatus;
};
//==============================================
/***********************************************
用于存储期间得到数据,先停止得到数据后再启动
OutNo:设置需要得到的OUT编号,有效值为0-11
GetStorageData:对应OUT编号的数据
GetStorageNumber:对应OUT编号的数据数量
***********************************************/
BOOL CKeyence_Laser_LK_H::PauseScanAndGetData(int OutNo,float *GetStorageData,int *GetStorageNumber)
{
BOOL ReturnStatus(FALSE);
GetStoreDataStatus();
if (m_bIsStorage)
{
m_result=m_pDataStorageStop();
ReturnStatus=GetStoredData(OutNo,GetStorageData,GetStorageNumber);
m_result=m_pDataStorageStart();
}
else
{
ReturnStatus=GetStoredData(OutNo,GetStorageData,GetStorageNumber);
}
return ReturnStatus;
};
//==============================================
/***********************************************
OutNo:设置需要得到的OUT编号,有效值为0-11
GetStorageData:对应OUT编号的存储数据
GetStorageNumber:对应OUT编号的存储数据数量
***********************************************/
BOOL CKeyence_Laser_LK_H::GetStoredData(int OutNo,float *GetStorageData,int *GetStorageNumber)
{
BOOL ReturnStatus(FALSE);
GetStoreDataStatus();
if (!m_bIsStorage)
{
LKIF_FLOATVALUE GetStorageValue[MAX_STORAGE_DATA_SIZE];
m_result=m_pDataStorageGetData(OutNo,m_StoredDataNumber,GetStorageValue,GetStorageNumber);
if (m_result==RC_OK)
{
ReturnStatus=TRUE;
for(int i=0;i<*GetStorageNumber;i++)
{
switch(GetStorageValue[i].FloatResult)
{
case LKIF_FLOATRESULT_RANGEOVER_P:
{
*GetStorageData++=50;
break;
}
case LKIF_FLOATRESULT_RANGEOVER_N:
{
*GetStorageData++=-50;
break;
}
case LKIF_FLOATRESULT_VALID:
{
*GetStorageData++=GetStorageValue[i].Value;
break;
}
default:
{
*GetStorageData++=0;
break;
}
}
}
}
}
return ReturnStatus;
};
//==============================================
/***********************************************
m_bIsStorage:存储状态,TURE:存储中
m_StoredDataNumber:存储数据数量
***********************************************/
BOOL CKeyence_Laser_LK_H::GetStoreDataStatus()
{
BOOL ReturnStatus(FALSE);
m_result=m_pDataStorageGetStatus(&m_bIsStorage,&m_StoredDataNumber);
if (m_result==RC_OK)
ReturnStatus=TRUE;
return ReturnStatus;
};
@@ -0,0 +1,88 @@
// protocol for control SevenOcean's Machine
//
//////////////////////////////////////////////////////////////////////
#ifndef AFX_KEYENCE_LASER_LK_H_H__B422904C_2CEB_495B_B7BD_B45AB30286DD__INCLUDED_
#define AFX_KEYENCE_LASER_LK_H_H__B422904C_2CEB_495B_B7BD_B45AB30286DD__INCLUDED_
#if _MSC_VER > 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
@@ -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();
}
@@ -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
+7 -164
View File
@@ -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"
@@ -411,3 +411,68 @@ Init:Open device succeed .
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.
@@ -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("<Stored>:%d"),m_pKeyence_Laser->m_StoredDataNumber);
OutputWithScroll(m_OutMessage,m_edMSG);
/*for(INT I=0;I<GetDataNumber;I++)
{
float GetData[LK_G_MAX_STORAGE_DATA_SIZE];
int GetDataNumber(0);
m_pKeyence_Laser->PauseScanAndGetData(GetData,&GetDataNumber);
m_OutMessage.Format(_T("<Stored>:%d"),m_pKeyence_Laser->m_StoredDataNumber);
OutputWithScroll(m_OutMessage,m_edMSG);
/*for(INT I=0;I<GetDataNumber;I++)
{
m_OutMessage.Format(_T("[%d]:%.4f"),I,GetData[I]);
OutputWithScroll(m_OutMessage,m_edMSG);
}*/
}*/
break;
}
case 3:
OnBnClickedButtonLaserLkHGetData();
break;
case 4:
/*1
float GetData[LK_H_MAX_STORAGE_DATA_SIZE];
int GetDataNumber(0);
for(int i=0;i<=m_LK_H_StorageOutNumber;i++)
{
m_pKeyence_Laser_LK_H->PauseScanAndGetData(i,GetData,&GetDataNumber);
m_OutMessage.Format(_T("OUT%d:<Stored>:%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("<Status>:%d <Stored>:%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;i<GetDataNumber;i++)
{
fprintf(m_pOutFile,"[%d]:", i);
fprintf(m_pOutFile,"%.4f", GetData[i]);
fprintf(m_pOutFile, "\n");
}
}
fclose(m_pOutFile);
}
}
@@ -19,6 +19,7 @@ protected:
CEdit m_edMSG;
DECLARE_MESSAGE_MAP()
public:
int m_LK_H_StorageOutNumber;
CString m_OutMessage;
void RunCNC();
void OutputWithScroll(const CString &strNewText,CEdit &edtOutput);
@@ -33,4 +34,9 @@ public:
afx_msg void OnBnClickedButtonGetScanDataKeyenceLkGlaser();
afx_msg void OnBnClickedButtonStopScanKeyenceLkGlaser();
afx_msg void OnBnClickedButtonScanKeyenceLkGlaser();
afx_msg void OnBnClickedButtonLaserLkHGetData();
afx_msg void OnBnClickedCheckContinueReadLaserLkHValue();
afx_msg void OnBnClickedButtonScanKeyenceLkHlaser();
afx_msg void OnBnClickedButtonStopScanKeyenceLkHlaser();
afx_msg void OnBnClickedButtonGetScanDataKeyenceLkHlaser();
};
@@ -554,7 +554,7 @@ CAPTION "Option Dialog"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
CONTROL "控制器",IDC_RADIO_CONTROLLER,"Button",BS_AUTORADIOBUTTON,175,39,40,10
CONTROL "LK-G¼¤¹â",IDC_RADIO_KEYENCE_LASER_LK_G,"Button",BS_AUTORADIOBUTTON,175,64,47,10
CONTROL "Keyence¼¤¹â",IDC_RADIO_KEYENCE_LASER,"Button",BS_AUTORADIOBUTTON,175,64,76,10
CONTROL "SDK3000视频卡",IDC_RADIO_VIDEOCARD_SDK3000,"Button",BS_AUTORADIOBUTTON,48,39,69,10
CONTROL "SV2000E视频卡",IDC_RADIO_VIDEOCARD_SV2000E,"Button",BS_AUTORADIOBUTTON,48,64,69,10
CONTROL "TC4000视频卡",IDC_RADIO_VIDEOCARD_TC4000,"Button",BS_AUTORADIOBUTTON | NOT WS_VISIBLE,48,89,69,10
@@ -1224,26 +1224,38 @@ BEGIN
CONTROL "V",IDC_CHECK_REPETESTV,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,37,267,20,10
END
IDD_DIALOG_TEST_KEYENCE DIALOGEX 0, 0, 409, 214
IDD_DIALOG_TEST_KEYENCE DIALOGEX 0, 0, 338, 344
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Test Keyence"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
PUSHBUTTON "Exit",IDCANCEL,352,193,50,14
PUSHBUTTON "Get_Data",IDC_BUTTON_INIT_KEYENCE_LASER,125,41,50,14
EDITTEXT IDC_EDIT_LASER_VALUE1,30,25,69,14,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_LASER_VALUE2,30,48,69,14,ES_AUTOHSCROLL
PUSHBUTTON "Run CNC",IDC_BUTTON_RUNCNC,379,25,6,14,NOT WS_VISIBLE
GROUPBOX "LKIF.dll",IDC_STATIC,11,10,380,98
GROUPBOX "libusb.lib",IDC_STATIC,355,16,35,27,NOT WS_VISIBLE
PUSHBUTTON "Init_KeyenceUsb",IDC_BUTTON_INIT_KEYENCE_USB,359,25,6,14,NOT WS_VISIBLE
PUSHBUTTON "Reset",IDC_BUTTON_RESET_KEYENCE_USB,365,25,7,14,NOT WS_VISIBLE
PUSHBUTTON "Exit_Keyence_Usb",IDC_BUTTON_EXIT_KEYENCE_USB,373,25,6,14,NOT WS_VISIBLE
EDITTEXT IDC_EDIT_TEST_KEYENCE_MESSAGE,15,115,377,73,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL
PUSHBUTTON "Begin Scan",IDC_BUTTON_SCAN_KEYENCE_LK_GLASER,200,27,50,14
CONTROL "Continue",IDC_CHECK_CONTINUE_READ_LASER_VALUE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,133,27,45,10
PUSHBUTTON "Stop Scan",IDC_BUTTON_STOP_SCAN_KEYENCE_LK_GLASER,200,46,50,14
PUSHBUTTON "Get Data",IDC_BUTTON_GET_SCAN_DATA_KEYENCE_LK_GLASER,200,64,50,14
PUSHBUTTON "Exit",IDCANCEL,281,323,50,14
CONTROL "LK_G",IDC_RADIO_KEYENCE_LASER_LK_G,"Button",BS_AUTORADIOBUTTON,73,27,32,10
CONTROL "LK_H",IDC_RADIO_KEYENCE_LASER_LK_H,"Button",BS_AUTORADIOBUTTON,200,27,32,10
EDITTEXT IDC_EDIT_LASER_VALUE1,33,71,69,14,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_LASER_VALUE2,33,94,69,14,ES_AUTOHSCROLL
CONTROL "Continue",IDC_CHECK_CONTINUE_READ_LASER_VALUE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,136,73,45,10
PUSHBUTTON "Get_Data",IDC_BUTTON_INIT_KEYENCE_LASER,128,87,50,14
PUSHBUTTON "Begin Scan",IDC_BUTTON_SCAN_KEYENCE_LK_GLASER,203,73,50,14
PUSHBUTTON "Stop Scan",IDC_BUTTON_STOP_SCAN_KEYENCE_LK_GLASER,203,92,50,14
PUSHBUTTON "Get Data",IDC_BUTTON_GET_SCAN_DATA_KEYENCE_LK_GLASER,203,110,50,14
EDITTEXT IDC_EDIT_LASER_LK_H_VALUE1,32,163,69,14,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_LASER_LK_H_VALUE2,32,186,69,14,ES_AUTOHSCROLL
CONTROL "Continue",IDC_CHECK_CONTINUE_READ_LASER_LK_H_VALUE,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,135,165,45,10
PUSHBUTTON "Get_Data",IDC_BUTTON_LASER_LK_H_GET_DATA,127,179,50,14
PUSHBUTTON "Begin Scan",IDC_BUTTON_SCAN_KEYENCE_LK_HLASER,202,165,50,14
PUSHBUTTON "Stop Scan",IDC_BUTTON_STOP_SCAN_KEYENCE_LK_HLASER,202,184,50,14
PUSHBUTTON "Get Data",IDC_BUTTON_GET_SCAN_DATA_KEYENCE_LK_HLASER,202,202,50,14
PUSHBUTTON "Run CNC",IDC_BUTTON_RUNCNC,255,323,6,14,NOT WS_VISIBLE
GROUPBOX "LKIF.DLL",IDC_STATIC,22,53,288,83
GROUPBOX "libusb.lib",IDC_STATIC,226,310,35,27,NOT WS_VISIBLE
PUSHBUTTON "Init_KeyenceUsb",IDC_BUTTON_INIT_KEYENCE_USB,235,323,6,14,NOT WS_VISIBLE
PUSHBUTTON "Reset",IDC_BUTTON_RESET_KEYENCE_USB,241,323,7,14,NOT WS_VISIBLE
PUSHBUTTON "Exit_Keyence_Usb",IDC_BUTTON_EXIT_KEYENCE_USB,249,323,6,14,NOT WS_VISIBLE
EDITTEXT IDC_EDIT_TEST_KEYENCE_MESSAGE,22,239,302,73,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL
GROUPBOX "LKIF2.DLL",IDC_STATIC,22,141,296,89
GROUPBOX "Laser Type",IDC_STATIC,22,14,287,32
END
@@ -1354,9 +1366,9 @@ BEGIN
IDD_DIALOG_TEST_KEYENCE, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 402
RIGHTMARGIN, 331
TOPMARGIN, 7
BOTTOMMARGIN, 207
BOTTOMMARGIN, 337
END
END
#endif // APSTUDIO_INVOKED
@@ -421,9 +421,6 @@ void CSO7_UtilDlg::OnBnClickedButtonManualHome()
//=====================================================================
void CSO7_UtilDlg::OnBnClickedCancel()
{
delete m_pSO7_Proto;
m_pSO7_Proto=NULL;
delete g_pLoggerDebug;
g_pLoggerDebug=NULL;
CDialog::OnCancel();
@@ -14,6 +14,7 @@
#include "Videocard_SV2000E.h"
#include "SO7_UtilDlg.h"
#include "..\..\..\Keyence\Keyence_Laser.h"
#include "..\..\..\Keyence\Keyence_Laser_LK_H.h"
#include "..\..\..\Keyence\\Keyence_Proto.h"
#include "Keyence_UtilDlg.h"
#include "afxdialogex.h"
@@ -21,6 +22,7 @@
CSO7_Proto* m_pSO7_Proto=NULL;
CKeyence_Laser* m_pKeyence_Laser=NULL;
CKeyence_Laser_LK_H* m_pKeyence_Laser_LK_H=NULL;
CKeyence_Proto* m_pKeyence_Proto=NULL;
// CSo7_Option dialog
@@ -74,10 +76,11 @@ BOOL CSo7_Option::OnInitDialog()
}
}
((CButton *)GetDlgItem(IDC_RADIO_CONTROLLER))->SetCheck(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())
{
@@ -170,7 +170,7 @@
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
<AdditionalDependencies>..\..\..\..\..\..\..\ThirdParty\UsbSupport\LibUsb_Win\Lib\Msvc\libusb.lib;..\..\..\Videocard\SDK3000\sdk3000_7130.lib;..\..\..\Videocard\SV2000E\dataAcq.lib;..\..\..\Videocard\SV2000E\DXMediaCap.lib;%(AdditionalDependencies)</AdditionalDependencies>
<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)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -206,6 +206,7 @@
<ItemGroup>
<ClCompile Include="..\..\..\Animatics\Animatics_Proto.cpp" />
<ClCompile Include="..\..\..\Keyence\Keyence_Laser.cpp" />
<ClCompile Include="..\..\..\Keyence\Keyence_Laser_LK_H.cpp" />
<ClCompile Include="..\..\..\Keyence\Keyence_Proto.cpp" />
<ClCompile Include="..\..\..\MicroVu\Mv_Proto.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\..\..\ThirdParty\UsbSupport\LibUsb_Win\Include</AdditionalIncludeDirectories>
@@ -252,7 +253,9 @@
<ClInclude Include="..\..\..\Animatics\IntegMotorInterface.h" />
<ClInclude Include="..\..\..\Animatics\SMIDefs.h" />
<ClInclude Include="..\..\..\Keyence\Keyence_Laser.h" />
<ClInclude Include="..\..\..\Keyence\Keyence_Laser_LK_H.h" />
<ClInclude Include="..\..\..\Keyence\Keyence_Proto.h" />
<ClInclude Include="..\..\..\Keyence\LKIFCommonDefine.h" />
<ClInclude Include="..\..\..\MicroVu\Mv_Proto.h" />
<ClInclude Include="..\..\..\SevenOcean\CMD_H.h" />
<ClInclude Include="..\..\..\SevenOcean\CMMIO_BASE.H" />
@@ -106,6 +106,9 @@
<ClCompile Include="Setup_so7config.cpp">
<Filter>Sources Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Keyence\Keyence_Laser_LK_H.cpp">
<Filter>Sources Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="CaptureDataDlg.h">
@@ -237,6 +240,12 @@
<ClInclude Include="..\..\..\SevenOcean\So7_Interface.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Keyence\Keyence_Laser_LK_H.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Keyence\LKIFCommonDefine.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
@@ -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