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);
};
@@ -1,11 +1,4 @@
copy Mix.dll %windir%\system32
copy sdk3000_7130.dll %windir%\system32
copy Deinterlace.ax %windir%\system32
copy SDK3000.ocx %windir%\system32
regsvr32/u/s %windir%\system32\Deinterlace.ax
regsvr32/s %windir%\system32\Deinterlace.ax
regsvr32/u/s %windir%\system32\SDK3000.ocx
regsvr32/s %windir%\system32\SDK3000.ocx
regsvr32/s Comdlg32.ocx
regsvr32/s mscomctl.ocx
regsvr32 /s Deinterlace.ax
regsvr32 /s LinkAutoDll.dll
@@ -1,9 +1,9 @@
[7OCEANAUTOZOOM]
ZOOM_PRODUCT_ID=So7123456
ZOOM_COM_PORT=1
ZOOM_START_DEG=0.000000
ZOOM_END_DEG=0.000000
ZOOM_ORG_DEG=0.000000
ZOOM_START_DEG=89.9955
ZOOM_END_DEG=89.9955
ZOOM_ORG_DEG=360
ZOOM_DEADBAND_DEG=0.100000
ZOOM_PULSE_PER_DEG=25.134736064968621
ZOOM_READING_INTERVAL_TIME=60
@@ -12,12 +12,12 @@ ZOOM_MOTOR_SPEED_SLOW=800
;
[CONTROLLER]
CLOSE_LOOP_ENABLED=0
MOTION_RETRY_TIMES=0
MOTION_RETRY_TIMES=5
SHIFT_POSITION_X=0.000000
SHIFT_POSITION_Y=0.000000
SHIFT_POSITION_Z=0.000000
GET_USB_MESSAGE_METHOD=1
WRITE_DATA_SLEEP_TIME=0
WRITE_DATA_SLEEP_TIME=5
ACCURA_ERROR_PULSE_X=1
ACCURA_ERROR_PULSE_Y=1
ACCURA_ERROR_PULSE_Z=1
@@ -33,7 +33,7 @@ CCS_PRIMA_ENABLE=0
DEBUG_LOG_ENABLE=0
;
[VIDEOCARD]
SDK3000_SLEEP_COUNT=550000
SDK3000_SLEEP_COUNT=555555
SV4000E_DENOISE_PARA_CHANNEL1=70
SV4000E_DENOISE_PARA_CHANNEL2=70
SV4000E_DENOISE_PARA_CHANNEL3=70
@@ -43,16 +43,3 @@ SV4000E_DENOISE_PARA_CHANNEL4=70
MACHINE_CONTROLLER_TYPE=0
MACHINE_VIDEOCARD_TYPE=0
;
[CUSTOM_MACHINE]
X_SCALE_RESOLUTION=0.500000
Y_SCALE_RESOLUTION=0.500000
Z_SCALE_RESOLUTION=0.500000
X_NEG_WORKING_LIMIT=0.000000
X_POS_WORKING_LIMIT=200.000000
Y_NEG_WORKING_LIMIT=0.000000
Y_POS_WORKING_LIMIT=100.000000
Z_NEG_WORKING_LIMIT=0.000000
Z_POS_WORKING_LIMIT=200.000000
ROTARY_AXIS_NUMBER=0
ROTARY_CIR_DIS=7.200000
;
@@ -16,7 +16,7 @@
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// Chinese (Simplified, PRC) resources
// 中文(简体,中国) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
@@ -418,8 +418,8 @@ BEGIN
CONTROL "控制器(USB R",IDC_RADIO_CONTROLLER2,"Button",BS_AUTORADIOBUTTON,195,47,75,10
CONTROL "控制器(RS232",IDC_RADIO__SO7_RS232,"Button",BS_AUTORADIOBUTTON,195,63,77,10
CONTROL "Verifcation algorithm",IDC_RADIO_SO7_VERIFICATION_ALGORITHM,
"Button",BS_AUTORADIOBUTTON | NOT WS_VISIBLE,8,139,81,10
CONTROL "Image.dll",IDC_RADIO_TEST_IMAGE_DLL,"Button",BS_AUTORADIOBUTTON | NOT WS_VISIBLE,7,139,45,10
"Button",BS_AUTORADIOBUTTON | NOT WS_VISIBLE,8,140,81,10
CONTROL "Image.dll",IDC_RADIO_TEST_IMAGE_DLL,"Button",BS_AUTORADIOBUTTON,195,80,45,10
DEFPUSHBUTTON "OK",IDOK,145,142,50,14
PUSHBUTTON "Cancel",IDCANCEL,225,142,50,14
GROUPBOX "测试选项",IDC_STATIC,10,8,265,123
@@ -607,17 +607,17 @@ BEGIN
PUSHBUTTON "读取参数",IDC_BUTTON_SO7_MOTION_GET_SEGMENT_DIS,673,98,50,14
END
IDD_SO7_UTIL_IMAGE_DLL DIALOGEX 0, 0, 377, 184
IDD_SO7_UTIL_IMAGE_DLL DIALOGEX 0, 0, 360, 312
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Test Imae.dll"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
PUSHBUTTON "Exit",IDCANCEL,327,170,50,14
PUSHBUTTON "Start Storage",IDC_BUTTON_IMAGEDLL_START_SCAN_LASER,21,30,50,14
PUSHBUTTON "Get Data",IDC_BUTTON_IMAGEDLL_GET_SCAN_LASER_DATA,21,70,50,14
PUSHBUTTON "Pause &Get",IDC_BUTTON_IMAGEDLL_PAUSE_AND_GET_SCAN_LASER_DATA,21,90,50,14
PUSHBUTTON "Stop Storage",IDC_BUTTON_IMAGEDLL_STOP_SCAN_LASER,21,50,50,14
GROUPBOX "Test Laser",IDC_STATIC,11,6,66,146
PUSHBUTTON "Exit",IDCANCEL,303,291,50,14
PUSHBUTTON "Start Storage",IDC_BUTTON_IMAGEDLL_START_SCAN_LASER,21,22,50,14
PUSHBUTTON "Get Data",IDC_BUTTON_IMAGEDLL_GET_SCAN_LASER_DATA,21,62,50,14
PUSHBUTTON "Pause &Get",IDC_BUTTON_IMAGEDLL_PAUSE_AND_GET_SCAN_LASER_DATA,21,82,50,14
PUSHBUTTON "Stop Storage",IDC_BUTTON_IMAGEDLL_STOP_SCAN_LASER,21,42,50,14
GROUPBOX "Test Laser",IDC_STATIC,11,6,66,156
GROUPBOX "Double Laser",IDC_STATIC,88,5,258,157
LTEXT "X",IDC_STATIC,155,24,8,8
LTEXT "Y",IDC_STATIC,196,24,8,8
@@ -649,6 +649,9 @@ BEGIN
EDITTEXT IDC_EDIT_IMAGEDLL_2LASER_XSHIFT,206,134,40,14,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_IMAGEDLL_2LASER_YSHIFT,275,134,40,14,ES_AUTOHSCROLL
LTEXT "Measured Value",IDC_STATIC,133,122,52,8
PUSHBUTTON "Start CCS",IDC_BUTTON_IMAGEDLL_CCSPRIMA_START,21,116,50,14
PUSHBUTTON "Stop CCS",IDC_BUTTON_IMAGEDLL_CCSPRIMA_STOP,21,138,50,14
EDITTEXT IDC_EDIT_IMAGE_DLL_MSG,13,170,331,117,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL
END
IDD_SO7_VIDEOCARD_TC4000 DIALOGEX 0, 0, 488, 316
@@ -1109,9 +1112,9 @@ BEGIN
IDD_SO7_UTIL_IMAGE_DLL, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 370
RIGHTMARGIN, 353
TOPMARGIN, 7
BOTTOMMARGIN, 177
BOTTOMMARGIN, 305
END
IDD_SO7_VIDEOCARD_TC4000, DIALOG
@@ -1633,12 +1636,12 @@ IDB_BITMAP_Z_DOWN BITMAP "res\\bmp\\Z_DOWN.bmp"
IDB_BITMAP_Z_UP BITMAP "res\\bmp\\Z_UP.bmp"
IDB_BITMAP_X_LEFT BITMAP "res\\bmp\\X_LEFT.BMP"
IDB_BITMAP_X_RIGHT BITMAP "res\\bmp\\X_RIGHT.bmp"
#endif // Chinese (Simplified, PRC) resources
#endif // 中文(简体,中国) resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// English (United States) resources
// 英语(美国) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
@@ -2613,7 +2616,7 @@ BEGIN
IDS_SO7_ABOUTBOX "&About Utility for SO7..."
END
#endif // English (United States) resources
#endif // 英语(美国) resources
/////////////////////////////////////////////////////////////////////////////
@@ -9,12 +9,15 @@
#include "afxdialogex.h"
extern CSo7_Interface* m_pSo7_Interface;
double m_XYZPos[3];
double m_LaserData[2];
// CSo7_Util_ImageDll dialog
IMPLEMENT_DYNAMIC(CSo7_Util_ImageDll, CDialog)
CSo7_Util_ImageDll::CSo7_Util_ImageDll(CWnd* pParent /*=NULL*/)
: CDialog(CSo7_Util_ImageDll::IDD, pParent)
CSo7_Util_ImageDll::CSo7_Util_ImageDll(CWnd* pParent /*=NULL*/)
: CDialog(CSo7_Util_ImageDll::IDD, pParent)
{
}
@@ -25,16 +28,20 @@ CSo7_Util_ImageDll::~CSo7_Util_ImageDll()
void CSo7_Util_ImageDll::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_EDIT_IMAGE_DLL_MSG, m_EdMsg);
}
BEGIN_MESSAGE_MAP(CSo7_Util_ImageDll, CDialog)
ON_WM_TIMER()
ON_BN_CLICKED(IDC_BUTTON_IMAGEDLL_START_SCAN_LASER, &CSo7_Util_ImageDll::OnBnClickedButtonImagedllStartScanLaser)
ON_BN_CLICKED(IDC_BUTTON_IMAGEDLL_STOP_SCAN_LASER, &CSo7_Util_ImageDll::OnBnClickedButtonImagedllStopScanLaser)
ON_BN_CLICKED(IDC_BUTTON_IMAGEDLL_GET_SCAN_LASER_DATA, &CSo7_Util_ImageDll::OnBnClickedButtonImagedllGetScanLaserData)
ON_BN_CLICKED(IDC_BUTTON_IMAGEDLL_PAUSE_AND_GET_SCAN_LASER_DATA, &CSo7_Util_ImageDll::OnBnClickedButtonImagedllPauseAndGetScanLaserData)
ON_BN_CLICKED(IDC_BUTTON_IMAGEDLL_2LASER_CALCULATE, &CSo7_Util_ImageDll::OnBnClickedButtonImagedll2laserCalculate)
ON_BN_CLICKED(IDC_BUTTON_IMAGEDLL_CCSPRIMA_START, &CSo7_Util_ImageDll::OnBnClickedButtonImagedllCcsprimaStart)
ON_BN_CLICKED(IDC_BUTTON_IMAGEDLL_CCSPRIMA_STOP, &CSo7_Util_ImageDll::OnBnClickedButtonImagedllCcsprimaStop)
END_MESSAGE_MAP()
@@ -169,7 +176,7 @@ void CSo7_Util_ImageDll::OnBnClickedButtonImagedll2laserCalculate()
cTempValue=T2A(str);
Top_Pos[2].z=atof(cTempValue);
Top_Pos[3].z=atof(cTempValue);
GetDlgItem(IDC_EDIT_IMAGEDLL_2LASER_BOTTOMZ3)->GetWindowText(str);
cTempValue=T2A(str);
Bottom_Pos[2].z=atof(cTempValue);
@@ -189,3 +196,56 @@ void CSo7_Util_ImageDll::OnBnClickedButtonImagedll2laserCalculate()
m_pSo7_Interface->Pro_Face_Du(Bottom_Pos,m_nStep,coe,error,dis);
}
void CSo7_Util_ImageDll::OnBnClickedButtonImagedllCcsprimaStart()
{
SetTimer(1,100,NULL);
}
void CSo7_Util_ImageDll::OnBnClickedButtonImagedllCcsprimaStop()
{
KillTimer(1);
}
//================================================================================================
void CSo7_Util_ImageDll::OnTimer(UINT_PTR nIDEvent)
{
USES_CONVERSION;
switch(nIDEvent)
{
case 1:
{
m_pSo7_Interface->GetPositionXYZ(m_XYZPos);
m_csMsg.Format(_T("X:%.4f;Y:%.4f;Z:%.4f;"),m_XYZPos[0],m_XYZPos[1],m_XYZPos[2]);
OutputWithScroll(m_csMsg,m_EdMsg);
m_pSo7_Interface->GetLaserData(m_LaserData);
m_csMsg.Format(_T("Dis1:%.4f;Dis2:%.4f;"),m_LaserData[0],m_LaserData[1]);
OutputWithScroll(m_csMsg,m_EdMsg);
break;
}
default:break;
}
CDialog::OnTimer(nIDEvent);
}
//=====================================================================================
//Print message on edit control
void CSo7_Util_ImageDll::OutputWithScroll(const CString &strNewText,CEdit &edtOutput)
{
CString strOutput;
edtOutput.GetWindowText(strOutput);
strOutput += strNewText;
if ("\r\n" != strOutput.Right(2))
{
strOutput += "\r\n";
}
int iCount = strOutput.GetLength();
edtOutput.SetRedraw(FALSE);
edtOutput.SetWindowText(strOutput);
int iLine = edtOutput.GetLineCount();
edtOutput.LineScroll(iLine, 0);
edtOutput.SetSel(iCount, iCount);
edtOutput.SetRedraw(TRUE);
}
@@ -18,10 +18,17 @@ protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
virtual BOOL OnInitDialog();
DECLARE_MESSAGE_MAP()
protected:
CEdit m_EdMsg;
CString m_csMsg;
void OutputWithScroll(const CString &strNewText,CEdit &edtOutput);
public:
afx_msg void OnTimer(UINT_PTR nIDEvent);
afx_msg void OnBnClickedButtonImagedllStartScanLaser();
afx_msg void OnBnClickedButtonImagedllStopScanLaser();
afx_msg void OnBnClickedButtonImagedllGetScanLaserData();
afx_msg void OnBnClickedButtonImagedllPauseAndGetScanLaserData();
afx_msg void OnBnClickedButtonImagedll2laserCalculate();
afx_msg void OnBnClickedButtonImagedllCcsprimaStart();
afx_msg void OnBnClickedButtonImagedllCcsprimaStop();
};
@@ -658,6 +658,7 @@
#define IDC_BTN_KEYENCE_LKG5000_ETHERNET_READOUT1 1542
#define IDC_BUTTON_STIL_LASER_EXIT 1542
#define IDC_BUTTON_SO7_EXTRIG_STOP 1542
#define IDC_BUTTON_IMAGEDLL_CCSPRIMA_STOP 1542
#define IDC_BUTTON_SO7_MOTION_SET_CNTS 1542
#define IDC_BUTTON_STOP_SAMPLE_SCURVE 1543
#define IDC_BTN_KEYENCE_LKG5000_ETHERNET_READOUT2 1543
@@ -903,6 +904,7 @@
#define IDC_BTN_KEYENCE_LKG5000_ETHERNET_CONNECT1 1794
#define IDC_BUTTON_STIL_LASER_INIT 1794
#define IDC_BUTTON_SO7_EXTRIG_START 1794
#define IDC_BUTTON_IMAGEDLL_CCSPRIMA_START 1794
#define IDC_COMBO_RWDATA_ADDR 1795
#define IDC_BTN_KEYENCE_LKG5000_ETHERNET_CONNECT2 1795
#define IDC_BUTTON_STIL_LASER_SET_MODE 1795
@@ -1023,6 +1025,7 @@
#define IDC_BUTTON_STIL_CLEAR_LOG 1863
#define IDC_BUTTON_S07_SET_IO_PURPOSE 1864
#define IDC_RADIO_SO7_EXTRIG_EQDIS 1865
#define IDC_EDIT_IMAGE_DLL_MSG 1865
#define IDC_RADIO_SO7_EXTRIG_X 1866
#define IDC_RADIO_SO7_EXTRIG_Y 1867
#define IDC_RADIO_SO7_EXTRIG_Z 1868