#include "StdAfx.h" #include #include #include "dll.h" #include "So7_Interface.h " #define MAX_STORAGE_DATA_SIZE 65536 CSo7_Interface::CSo7_Interface() { m_hImageDLL=NULL; m_hFitDLL=NULL; } 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) { m_hImageDLL=(HMODULE)LoadLibrary(GetAppPath()+_T("\\Image.dll")); if(m_hImageDLL) { Pro_cmd=(PRO_CMD)GetProcAddress(m_hImageDLL,"Pro_Cmd"); 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"); m_pGetLaserData=(GET_LASER_DATA)GetProcAddress(m_hImageDLL,"GetKeycen_LaseData"); Pro_cmd(VINIT_DLL,(LPARAM)&Image_Info); Pro_cmd(MINIT_USB,(LPARAM)&Image_Info); } else { MessageBox(NULL, _T("Load Image.dll failed!"), _T("Message"), MB_OK); } //===================================== m_hFitDLL=(HMODULE)LoadLibrary(GetAppPath()+_T("\\FitDll.dll")); if(m_hFitDLL) { g_FitFace_PCD=(FITTING_SURFACE_PCD)GetProcAddress(m_hFitDLL,"FaceFit"); } else { MessageBox(NULL, _T("Load FitDll.dll failed!"), _T("Message"), MB_OK); } } //======================================== void CSo7_Interface::StartStoreData(void) { Image_Info.gScanLaserPntsNumber=500; Image_Info.gScanLaserPntsSampleTime=20; Pro_cmd(START_SCAN_LASER_POINTS,(LPARAM)&Image_Info); } //======================================== void CSo7_Interface::StopStoreData(void) { Pro_cmd(STOP_SCAN_LASER_POINTS,(LPARAM)&Image_Info); } //======================================== void CSo7_Interface::GetStorageStatus(void) { int _bIsStorage(0),_StoredDataNumber(0); Pro_cmd(GET_SCAN_LASER_STATUS,(LPARAM)&Image_Info); _bIsStorage = Image_Info.gIsLaserStorage; _StoredDataNumber= Image_Info.gLaserStoredNumber; } //======================================== void CSo7_Interface::GetStoredData(void) { float Laserval[1000]; int LaserNum(0); m_pGET_LASER_STORED_DATA(Laserval,&LaserNum); } //======================================== void CSo7_Interface::PauseScanAndGetData(void) { float Laserval[1000]; 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(fData1); _dLaserData[1]=static_cast(fData2); }