新增激光测试

This commit is contained in:
TAO Cheng
2013-06-06 18:20:22 +08:00
parent 9ef689299f
commit 3f5b8aa2bb
26 changed files with 1322 additions and 169 deletions
@@ -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;
}