TestImagedll

This commit is contained in:
TAO Cheng
2014-07-16 10:25:21 +08:00
parent 23071b39dc
commit aa22209096
9 changed files with 133 additions and 50 deletions
@@ -40,7 +40,8 @@ void CSo7_Interface::InitDll(void)
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");
m_pGetLaserData=(GET_LASER_DATA)GetProcAddress(m_hImageDLL,"GetKeycen_LaseData");
Pro_cmd(VINIT_DLL,(LPARAM)&Image_Info);
Pro_cmd(MINIT_USB,(LPARAM)&Image_Info);
}
@@ -126,4 +127,28 @@ double CSo7_Interface::PointToFace_1(double* _dCoe, MY3DPoint _PointXYZ)
r1=((a*_PointXYZ.x + b*_PointXYZ.y + c*_PointXYZ.z + d)/sqrt(a*a + b*b + c*c));
return r1;
}
}
//========================================
void CSo7_Interface::GetPositionXYZ(double* _dPosition)
{
Image_Info.Org_AbsX=0;
Image_Info.Org_AbsY=0;
Image_Info.MaxisX_Scale=0.5;
Image_Info.MaxisY_Scale=0.5;
Image_Info.g_Bar_curx=0.0;
Image_Info.g_Bar_cury=0.0;
Pro_cmd(MREAD_AXIS,(LPARAM)&Image_Info);
_dPosition[0]=Image_Info.MaxisX;
_dPosition[1]=Image_Info.MaxisY;
_dPosition[2]=Image_Info.MaxisZ;
}
//========================================
void CSo7_Interface::GetLaserData(double* _dLaserData)
{
Image_Info.Lase_USB_Type=10;
Pro_cmd(SWITCH_USB_LASE,(LPARAM)&Image_Info);
float fData1,fData2;
m_pGetLaserData(&fData1,&fData2);
_dLaserData[0]=static_cast<double>(fData1);
_dLaserData[1]=static_cast<double>(fData2);
}
@@ -15,6 +15,8 @@ typedef int (_cdecl*PAUSE_SCAN_AND_GET_LASER_DATA)(float *GetStorageData,int *Ge
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);
typedef void (_cdecl*GET_LASER_DATA)(float *value1,float *value2);
//======================================================================================
class CSo7_Interface
{
@@ -34,6 +36,7 @@ public:
GET_SCAN_LASER_STORAGE_STATUS m_pGET_SCAN_LASER_STORAGE_STATUS;
FITTING_SURFACE g_FitFace;
FITTING_SURFACE_PCD g_FitFace_PCD;
GET_LASER_DATA m_pGetLaserData;;
void InitDll();
void StartStoreData();
@@ -44,6 +47,8 @@ public:
int Pro_Face_Du(MY3DPoint* pArr, int n, double* Coe, double* Error, double& dis);
double PointToFace_1(double* _dCoe, MY3DPoint _PointXYZ);
void GetPositionXYZ(double* _dPosition);
void GetLaserData(double* _dLaserData);
};