新增激光测试
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
#include <vector>
|
||||
#include "NewDataStruct.h"
|
||||
|
||||
#define MAX_POINT 5000
|
||||
#define PI 3.14159
|
||||
#define SET_FACE_NUM 100
|
||||
|
||||
|
||||
@@ -8,7 +8,8 @@
|
||||
|
||||
CSo7_Interface::CSo7_Interface()
|
||||
{
|
||||
|
||||
m_hImageDLL=NULL;
|
||||
m_hFitDLL=NULL;
|
||||
}
|
||||
|
||||
CSo7_Interface::~CSo7_Interface()
|
||||
@@ -16,10 +17,17 @@ CSo7_Interface::~CSo7_Interface()
|
||||
if(m_hImageDLL)
|
||||
{
|
||||
Pro_cmd(Exit_DLL,(LPARAM)&Image_Info);
|
||||
Sleep(50);
|
||||
Pro_cmd(VQUIT_DLL,(LPARAM)&Image_Info);
|
||||
Sleep(50);
|
||||
Pro_cmd(MCLOSE,(LPARAM)&Image_Info);
|
||||
Sleep(50);
|
||||
FreeLibrary(m_hImageDLL);
|
||||
}
|
||||
if(m_hFitDLL)
|
||||
{
|
||||
FreeLibrary(m_hFitDLL);
|
||||
}
|
||||
}
|
||||
//========================================
|
||||
void CSo7_Interface::InitDll(void)
|
||||
@@ -31,11 +39,16 @@ void CSo7_Interface::InitDll(void)
|
||||
m_pGET_LASER_STORED_DATA=(GET_LASER_STORED_DATA)GetProcAddress(m_hImageDLL,"GetLaserStoredData");
|
||||
m_pPAUSE_SCAN_AND_GET_LASER_DATA=(PAUSE_SCAN_AND_GET_LASER_DATA)GetProcAddress(m_hImageDLL,"PauseScanAndGetLaserData");
|
||||
m_pGET_SCAN_LASER_STORAGE_STATUS=(GET_SCAN_LASER_STORAGE_STATUS)GetProcAddress(m_hImageDLL,"GetKeyenceStorageStatus");
|
||||
g_FitFace=(FITTING_SURFACE)GetProcAddress(m_hImageDLL,"FaceFit");
|
||||
|
||||
Pro_cmd(VINIT_DLL,(LPARAM)&Image_Info);
|
||||
Pro_cmd(MINIT_USB,(LPARAM)&Image_Info);
|
||||
|
||||
|
||||
}
|
||||
//=====================================
|
||||
m_hFitDLL=LoadLibrary(_T("FitDll.dll"));
|
||||
if(m_hFitDLL)
|
||||
{
|
||||
g_FitFace_PCD=(FITTING_SURFACE_PCD)GetProcAddress(m_hFitDLL,"FaceFit");
|
||||
}
|
||||
}
|
||||
//========================================
|
||||
@@ -72,3 +85,24 @@ void CSo7_Interface::PauseScanAndGetData(void)
|
||||
int LaserNum(0);
|
||||
m_pPAUSE_SCAN_AND_GET_LASER_DATA(Laserval,&LaserNum);
|
||||
}
|
||||
//========================================
|
||||
int CSo7_Interface::Pro_Face_Du(MY3DPoint* pArr, int n, double* Coe, double* Error, double& dis)
|
||||
{
|
||||
//g_Set_Face_Flag 1--双向最大值差 2--平均值 3--正向最大值
|
||||
double dis1(0.0),dis2(0.0),dis3(0.0);
|
||||
double sum(0.0);
|
||||
double d1=pArr[0].z;
|
||||
for(int i=1;i<n;i++)
|
||||
sum+=fabs(d1-pArr[i].z);
|
||||
if(sum<0.0001)
|
||||
pArr[0].z+=0.0001;
|
||||
//g_FitFace(pArr,n,Coe,Error,dis1,dis2,dis3);
|
||||
//MY3DPoint* pArr,int n, double* Coe, double* N, double *Error,double& dis1, double& dis2, double& dis3,double & d_max,double & d_min,int & i_max,int & i_min)
|
||||
double ParN[1024]={0.0};
|
||||
double d_max(0.0),d_min(0.0);
|
||||
int i_max(0),i_min(0);
|
||||
g_FitFace_PCD(pArr,n,Coe,ParN,Error,dis1,dis2,dis3,d_max,d_min,i_max,i_min);
|
||||
dis=dis2;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -13,12 +13,14 @@ typedef void (_cdecl*PRO_CMD)(int nCmd,LPARAM value);
|
||||
typedef int (_cdecl*GET_LASER_STORED_DATA)(float *GetStorageData,int *GetStorageNumber);
|
||||
typedef int (_cdecl*PAUSE_SCAN_AND_GET_LASER_DATA)(float *GetStorageData,int *GetStorageNumber);
|
||||
typedef void (_cdecl*GET_SCAN_LASER_STORAGE_STATUS)(int& _bStatus,int& _StorageNumber);
|
||||
|
||||
typedef int (_cdecl*FITTING_SURFACE)(MY3DPoint* pArr,int n, double* Coe, double* Error, double& dis, double& dis2, double& dis3);
|
||||
typedef int (_cdecl*FITTING_SURFACE_PCD)(MY3DPoint* pArr,int n, double* Coe, double* N, double *Error,double& dis1, double& dis2, double& dis3,double & d_max,double & d_min,int & i_max,int & i_min);
|
||||
//======================================================================================
|
||||
class CSo7_Interface
|
||||
{
|
||||
protected:
|
||||
HINSTANCE m_hImageDLL;
|
||||
HINSTANCE m_hFitDLL;
|
||||
Dev_Info Image_Info;
|
||||
public:
|
||||
|
||||
@@ -30,6 +32,8 @@ public:
|
||||
GET_LASER_STORED_DATA m_pGET_LASER_STORED_DATA;
|
||||
PAUSE_SCAN_AND_GET_LASER_DATA m_pPAUSE_SCAN_AND_GET_LASER_DATA;
|
||||
GET_SCAN_LASER_STORAGE_STATUS m_pGET_SCAN_LASER_STORAGE_STATUS;
|
||||
FITTING_SURFACE g_FitFace;
|
||||
FITTING_SURFACE_PCD g_FitFace_PCD;
|
||||
void InitDll();
|
||||
|
||||
void StartStoreData();
|
||||
@@ -37,6 +41,8 @@ public:
|
||||
void GetStorageStatus();
|
||||
void GetStoredData();
|
||||
void PauseScanAndGetData();
|
||||
|
||||
int Pro_Face_Du(MY3DPoint* pArr, int n, double* Coe, double* Error, double& dis);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user