diff --git a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.cpp b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.cpp index 274d77e..2a29860 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.cpp @@ -519,6 +519,7 @@ CSO7_Proto::CSO7_Proto() g_machine.s_machine_config.z_axis._MoveToSpeed[1]=0.0; g_machine.s_machine_config.z_axis._MotionSpeedScale=1.0; + g_machine.s_machine_config.zm_axis._ProductID=_T("So7123456"); g_machine.s_machine_config.zm_axis._ComPort=1; g_machine.s_machine_config.zm_axis._StartDegree=0.0; g_machine.s_machine_config.zm_axis._EndDegree=0.0; @@ -2063,9 +2064,6 @@ SSI_STATUS_MOTION CSO7_Proto::Load_SevenOcean_Inifile(CString cso7IniFile) } } - - - } } fclose(hConfigFile); @@ -2148,15 +2146,15 @@ SSI_STATUS_MOTION CSO7_Proto::Save_So7_Config() fprintf(m_pOutFile, "\n"); outBuff="SHIFT_POSITION_X="; fprintf(m_pOutFile,"%s", outBuff); - fprintf(m_pOutFile,"%d", g_machine.s_machine_config.motion._ShiftPositionX); + fprintf(m_pOutFile,"%.6f", g_machine.s_machine_config.motion._ShiftPositionX); fprintf(m_pOutFile, "\n"); outBuff="SHIFT_POSITION_Y="; fprintf(m_pOutFile,"%s", outBuff); - fprintf(m_pOutFile,"%d", g_machine.s_machine_config.motion._ShiftPositionY); + fprintf(m_pOutFile,"%.6f", g_machine.s_machine_config.motion._ShiftPositionY); fprintf(m_pOutFile, "\n"); outBuff="SHIFT_POSITION_Z="; fprintf(m_pOutFile,"%s", outBuff); - fprintf(m_pOutFile,"%d", g_machine.s_machine_config.motion._ShiftPositionZ); + fprintf(m_pOutFile,"%.6f", g_machine.s_machine_config.motion._ShiftPositionZ); fprintf(m_pOutFile, "\n"); outBuff="SDK3000_SLEEP_COUNT="; fprintf(m_pOutFile,"%s", outBuff); diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/UtilityDebug.Log b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/UtilityDebug.Log index 1d2b0b1..070a018 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/UtilityDebug.Log +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/UtilityDebug.Log @@ -3108,3 +3108,111 @@ Init:Open device succeed . _start_machine Exit: Exit_SO7Usb Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +so7_motion_reset_worktable_lower_left. +[679]waiting for X,Y,Zm to stop moving +Home succeed. +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Unable to open device Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +so7_motion_reset_worktable_lower_left. +[686]waiting for X,Y,Zm to stop moving +Home succeed. +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/Utility_Config.ini b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/Utility_Config.ini index 4089092..70281d9 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/Utility_Config.ini +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/Utility_Config.ini @@ -12,10 +12,10 @@ MOVETOSPEED_SLOW_Z=0.00000000 MOVETOSPEED_SCALE_Z=1.00000000 ; SPEED_BASE_X1=26 -SPEED_MAX_X1=60 +SPEED_MAX_X1=20 SPEED_START_X1=20 -SPEED_FRESH_X1=8 -SPEED_SLOW_X1=3.000 +SPEED_FRESH_X1=7 +SPEED_SLOW_X1=3.600 ; SPEED_BASE_X2=16 SPEED_MAX_X2=10 @@ -25,27 +25,27 @@ SPEED_SLOW_X2=2.000 ; SPEED_BASE_X3=2 SPEED_MAX_X3=0 -SPEED_START_X3=8 -SPEED_FRESH_X3=10 -SPEED_SLOW_X3=0.500 +SPEED_START_X3=0 +SPEED_FRESH_X3=100 +SPEED_SLOW_X3=0.001 ; SPEED_BASE_X4=2 SPEED_MAX_X4=0 SPEED_START_X4=5 -SPEED_FRESH_X4=10 -SPEED_SLOW_X4=0.100 +SPEED_FRESH_X4=100 +SPEED_SLOW_X4=0.001 ; SPEED_BASE_X5=2 SPEED_MAX_X5=0 SPEED_START_X5=50 -SPEED_FRESH_X5=10 -SPEED_SLOW_X5=0.100 +SPEED_FRESH_X5=100 +SPEED_SLOW_X5=0.000 ; -SPEED_BASE_Y1=20 +SPEED_BASE_Y1=22 SPEED_MAX_Y1=10 SPEED_START_Y1=20 SPEED_FRESH_Y1=8 -SPEED_SLOW_Y1=2.000 +SPEED_SLOW_Y1=2.500 ; SPEED_BASE_Y2=16 SPEED_MAX_Y2=10 @@ -55,21 +55,21 @@ SPEED_SLOW_Y2=1.000 ; SPEED_BASE_Y3=2 SPEED_MAX_Y3=0 -SPEED_START_Y3=8 -SPEED_FRESH_Y3=10 -SPEED_SLOW_Y3=0.500 +SPEED_START_Y3=0 +SPEED_FRESH_Y3=100 +SPEED_SLOW_Y3=0.001 ; -SPEED_BASE_Y4=0 +SPEED_BASE_Y4=2 SPEED_MAX_Y4=0 SPEED_START_Y4=10 -SPEED_FRESH_Y4=10 -SPEED_SLOW_Y4=0.100 +SPEED_FRESH_Y4=100 +SPEED_SLOW_Y4=0.001 ; -SPEED_BASE_Y5=1 +SPEED_BASE_Y5=2 SPEED_MAX_Y5=0 SPEED_START_Y5=50 -SPEED_FRESH_Y5=10 -SPEED_SLOW_Y5=0.100 +SPEED_FRESH_Y5=100 +SPEED_SLOW_Y5=0.000 ; SPEED_BASE_Z1=20 SPEED_MAX_Z1=100 @@ -86,23 +86,23 @@ SPEED_SLOW_Z2=1.500 SPEED_BASE_Z3=3 SPEED_MAX_Z3=5 SPEED_START_Z3=5 -SPEED_FRESH_Z3=10 -SPEED_SLOW_Z3=0.100 +SPEED_FRESH_Z3=100 +SPEED_SLOW_Z3=0.001 ; SPEED_BASE_Z4=2 SPEED_MAX_Z4=0 SPEED_START_Z4=18 -SPEED_FRESH_Z4=10 -SPEED_SLOW_Z4=0.100 +SPEED_FRESH_Z4=100 +SPEED_SLOW_Z4=0.001 ; -SPEED_BASE_Z5=5 +SPEED_BASE_Z5=2 SPEED_MAX_Z5=13 SPEED_START_Z5=12 -SPEED_FRESH_Z5=10 -SPEED_SLOW_Z5=0.100 +SPEED_FRESH_Z5=100 +SPEED_SLOW_Z5=0.000 ; -X_MOTOR_PRECISION=0.004 -Y_MOTOR_PRECISION=0.009 +X_MOTOR_PRECISION=0.008 +Y_MOTOR_PRECISION=0.004 Z_MOTOR_PRECISION=0.004 ; X_MOTOR_WHEELBASE=1.500 diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/so7_config.ini b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/so7_config.ini index 8efd0e9..6af55c1 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/so7_config.ini +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/so7_config.ini @@ -1,18 +1,31 @@ [7OCEANAUTOZOOM] -ZOOM_PRODUCT_ID=So7-123456 +ZOOM_PRODUCT_ID=So7123456 ZOOM_COM_PORT=1 -ZOOM_START_DEG=10.000000 -ZOOM_END_DEG=230.000000 -ZOOM_ORG_DEG=360.000000 -ZOOM_DEADBAND_DEG=0.050000 -ZOOM_PULSE_PER_DEG=78.546050203026880 +ZOOM_START_DEG=0.000000 +ZOOM_END_DEG=0.000000 +ZOOM_ORG_DEG=0.000000 +ZOOM_DEADBAND_DEG=0.100000 +ZOOM_PULSE_PER_DEG=25.134736064968621 ZOOM_READING_INTERVAL_TIME=60 ZOOM_MOTOR_SPEED_FAST=2000 ZOOM_MOTOR_SPEED_SLOW=800 ; [HARDWARE] CLOSE_LOOP_ENABLED=0 -RETRY_TIMES=5 -SHIFT_POSITION_X=0 -SHIFT_POSITION_Y=0 -SHIFT_POSITION_Z=0 +MOTION_RETRY_TIMES=5 +SHIFT_POSITION_X=0.000000 +SHIFT_POSITION_Y=0.000000 +SHIFT_POSITION_Z=0.000000 +SDK3000_SLEEP_COUNT=550000 +GET_USB_MESSAGE_METHOD=1 +WRITE_DATA_SLEEP_TIME=0 +ACCURA_ERROR_PULSE_X=1 +ACCURA_ERROR_PULSE_Y=1 +ACCURA_ERROR_PULSE_Z=1 +EQUIDISTANCE_PULSE_X=0 +EQUIDISTANCE_PULSE_Y=0 +EQUIDISTANCE_PULSE_Z=0 +; +[HSI] +MACHINE_CONTROLLER_TYPE=0 +MACHINE_VIDEOCARD_TYPE=0 diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/EditableListCtrl.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/EditableListCtrl.cpp new file mode 100644 index 0000000..a08efa0 --- /dev/null +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/EditableListCtrl.cpp @@ -0,0 +1,158 @@ +// EditableListCtrl.cpp : implementation file +// + +#include "stdafx.h" +#include "resource.h" +#include "EditableListCtrl.h" + + +// CEditableListCtrl + +IMPLEMENT_DYNAMIC(CEditableListCtrl, CMFCListCtrl) + + CEditableListCtrl::CEditableListCtrl() +{ + m_nRow=0; + m_nCol=0; + m_bEditing = FALSE; + m_bColor=TRUE; + m_bModifyFont=TRUE; + m_nMinRow=0; + m_nMinCol=0; + m_nMaxRow=0; + m_nMaxCol=0; +} + +CEditableListCtrl::~CEditableListCtrl() +{ +} + + +BEGIN_MESSAGE_MAP(CEditableListCtrl, CMFCListCtrl) + ON_WM_LBUTTONDBLCLK() +END_MESSAGE_MAP() + + + +// CEditableListCtrl message handlers + +//======================================================= +COLORREF CEditableListCtrl::OnGetCellTextColor(int nRow, int nColum) +{ + if (!m_bColor) + { + return CMFCListCtrl::OnGetCellTextColor(nRow, nColum); + } + return(nColum==2) ? RGB(128, 37, 0) : RGB(0, 0, 0); +} +//======================================================= +COLORREF CEditableListCtrl::OnGetCellBkColor(int nRow, int nColum) +{ + if (!m_bColor) + { + return CMFCListCtrl::OnGetCellBkColor(nRow, nColum); + } + if (nRow<=m_nMaxRow) + { + if (m_bMarkSortedColumn && nColum == m_iSortedColumn) + { + return (nRow % 2) == 0 ? RGB(255, 255, 255) : RGB(193, 233, 242); + } + + return (nRow % 2) == 0 ? RGB(255, 255, 255) : RGB(193, 233, 242); + } + else + { + return CMFCListCtrl::OnGetCellBkColor(nRow, nColum); + } +} +//======================================================= +HFONT CEditableListCtrl::OnGetCellFont(int nRow, int nColum, DWORD /*dwData* = 0*/) +{ + UNREFERENCED_PARAMETER(nRow); + UNREFERENCED_PARAMETER(nColum); + if (!m_bModifyFont) + { + return NULL; + } + return NULL; +} + +void CEditableListCtrl::OnLButtonDblClk(UINT nFlags, CPoint point) +{ + // 检查是否有Item正被编辑 + if( m_bEditing == FALSE) + { + POSITION pos; + // 检查是否有Item被选中,没有时不进入编辑 + pos = GetFirstSelectedItemPosition(); + if( pos ) + { + // 得到被点击的Item + LVHITTESTINFO testinfo; + testinfo.pt.x = point.x; + testinfo.pt.y = point.y; //点击时的鼠标位置 + testinfo.flags = LVHT_ONITEMLABEL; //点击的必须是标题 + if( SubItemHitTest(&testinfo)>=0 ) //没有点在有效区域,不进入编辑 + { + m_nRow = testinfo.iItem; //被点击表项的行号 + m_nCol = testinfo.iSubItem; //被点击表项的列号 + if ((m_nMinRow<=m_nRow && m_nRow<=m_nMaxRow) + && (m_nMinCol<=m_nCol && m_nCol<=m_nMaxCol)) + { + m_bEditing = BeginEditItem(); + return; + } + } + } + } + CMFCListCtrl::OnLButtonDblClk(nFlags, point); +} +//=============================================================== +BOOL CEditableListCtrl::BeginEditItem() +{ + // 得到被编辑表项的区域 + CRect rect; + if( GetSubItemRect(m_nRow, m_nCol, LVIR_LABEL, rect)==FALSE ) + return FALSE; + + // 创建编辑控件 + int style = WS_CHILD | WS_CLIPSIBLINGS | WS_EX_TOOLWINDOW | WS_BORDER; + if( m_ListCtrlEdit.Create(style, rect, this, ID_EDIT_SO7_CONFIG_MOTION)==FALSE ) + return FALSE; + + // 取被编辑表项的文字 + CString csItemTxt = GetItemText( m_nRow, m_nCol ); + + // 取出的文字填写到编辑控件 + m_ListCtrlEdit.SetWindowText(csItemTxt); + m_ListCtrlEdit.SetFocus(); + m_ListCtrlEdit.SetSel(0, -1); + m_ListCtrlEdit.ShowWindow( SW_SHOW ); + return TRUE; + +} +//=============================================================== +BOOL CEditableListCtrl::EndEditItem(BOOL bIsValid) +{ + // 编辑结果是有效的,重设被编辑表项的文字 + if( bIsValid ) + { + CString csItemTxt; + m_ListCtrlEdit.GetWindowText(csItemTxt); + SetItemText(m_nRow, m_nCol, csItemTxt); + } + // 销毁编辑窗口 + m_ListCtrlEdit.DestroyWindow(); + m_bEditing = FALSE; + return TRUE; +} +//=============================================================== +BOOL CEditableListCtrl::SetMaxItemIndex(int _iMinRow,int _iMaxRow,int _iMinCol,int _iMaxCol) +{ + m_nMinRow=_iMinRow; + m_nMinCol=_iMinCol; + m_nMaxRow=_iMaxRow; + m_nMaxCol=_iMaxCol; + return TRUE; +} \ No newline at end of file diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/EditableListCtrl.h b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/EditableListCtrl.h new file mode 100644 index 0000000..99db28c --- /dev/null +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/EditableListCtrl.h @@ -0,0 +1,37 @@ +#pragma once +#include "ListCtrlItemEdit.h" + +// CEditableListCtrl + +class CEditableListCtrl : public CMFCListCtrl +{ + DECLARE_DYNAMIC(CEditableListCtrl) + +public: + CEditableListCtrl(); + virtual ~CEditableListCtrl(); + virtual COLORREF OnGetCellTextColor(int nRow, int nColum); + virtual COLORREF OnGetCellBkColor(int nRow, int nColum); + virtual HFONT OnGetCellFont(int nRow, int nColum, DWORD dwData = 0); +protected: + CListCtrlItemEdit m_ListCtrlEdit; + int m_nRow; //行号 + int m_nCol; //列号 + int m_nMinRow; + int m_nMinCol; + int m_nMaxRow; + int m_nMaxCol; + BOOL m_bEditing; + BOOL m_bColor; + BOOL m_bModifyFont; + + DECLARE_MESSAGE_MAP() +public: + BOOL BeginEditItem(); + BOOL EndEditItem(BOOL bIsValid=TRUE); + BOOL SetMaxItemIndex(int _iMinRow,int _iMaxRow,int _iMinCol,int _iMaxCol); + + afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point); +}; + + diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/ListCtrlItemEdit.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/ListCtrlItemEdit.cpp new file mode 100644 index 0000000..db8fce7 --- /dev/null +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/ListCtrlItemEdit.cpp @@ -0,0 +1,39 @@ +// ListCtrlItemEdit.cpp : implementation file +// + +#include "stdafx.h" +#include "EditableListCtrl.h" +#include "ListCtrlItemEdit.h" + + +// CListCtrlItemEdit + +IMPLEMENT_DYNAMIC(CListCtrlItemEdit, CEdit) + +CListCtrlItemEdit::CListCtrlItemEdit() +{ + +} + +CListCtrlItemEdit::~CListCtrlItemEdit() +{ +} + + +BEGIN_MESSAGE_MAP(CListCtrlItemEdit, CEdit) + ON_WM_KILLFOCUS() +END_MESSAGE_MAP() + + + +// CListCtrlItemEdit message handlers + + +void CListCtrlItemEdit::OnKillFocus(CWnd* pNewWnd) +{ + CEdit::OnKillFocus(pNewWnd); + m_bValidInput=TRUE; + CEditableListCtrl *parent = (CEditableListCtrl *)GetParent(); + if( parent ) + parent->EndEditItem(m_bValidInput); +} diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/ListCtrlItemEdit.h b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/ListCtrlItemEdit.h new file mode 100644 index 0000000..5083fe4 --- /dev/null +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/ListCtrlItemEdit.h @@ -0,0 +1,20 @@ +#pragma once + + +// CListCtrlItemEdit + +class CListCtrlItemEdit : public CEdit +{ + DECLARE_DYNAMIC(CListCtrlItemEdit) + +public: + CListCtrlItemEdit(); + virtual ~CListCtrlItemEdit(); +protected: + DECLARE_MESSAGE_MAP() +public: + BOOL m_bValidInput; + afx_msg void OnKillFocus(CWnd* pNewWnd); +}; + + diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Mv_Util.rc b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Mv_Util.rc index c0bdc5b..17ab4f9 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Mv_Util.rc +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Mv_Util.rc @@ -432,7 +432,7 @@ END IDD_SO7_UTIL_SETUP_CONFIGURE DIALOGEX 0, 0, 476, 451 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "设置so7_configure.ini" +CAPTION "自动变倍参数" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN EDITTEXT IDC_EDIT_SO7CONFIG_ZOOMID,136,44,108,14,ES_AUTOHSCROLL @@ -450,7 +450,7 @@ BEGIN PUSHBUTTON "下一步",IDC_BUTTON_SO7CONFIG_ZOOM_POSLIMIT,303,232,36,19 LTEXT "°",IDC_STATIC,227,274,8,8 PUSHBUTTON "完成",IDC_BUTTON_SO7CONFIG_ZOOM_PRECISION,303,272,36,19 - PUSHBUTTON "Exit",IDCANCEL,419,430,50,14 + PUSHBUTTON "Exit",IDCANCEL,419,430,50,14,NOT WS_VISIBLE GROUPBOX "Step2",IDC_STATIC,55,68,297,36 GROUPBOX "Step5",IDC_STATIC,55,185,297,36 GROUPBOX "Step6",IDC_STATIC,55,223,297,36 @@ -458,7 +458,7 @@ BEGIN LTEXT "移至变倍最小处",IDC_STATIC,134,203,56,12 LTEXT "移至变倍最大处",IDC_STATIC,134,238,58,12 GROUPBOX "变倍镜头参数设置",IDC_STATIC,27,19,432,290 - EDITTEXT IDC_EDIT_CONFIGURE_MSGOUT,28,317,431,75,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL + EDITTEXT IDC_EDIT_CONFIGURE_MSGOUT,28,317,432,97,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL GROUPBOX "Step1",IDC_STATIC,55,30,297,36 GROUPBOX "Step4",IDC_STATIC,55,147,297,36 LTEXT "产品编号:",IDC_STATIC,78,46,41,8 @@ -836,6 +836,17 @@ BEGIN EDITTEXT IDC_EDIT_MOVETO_DEGA,184,33,40,14,ES_AUTOHSCROLL END +IDD_SO7_UTIL_SETUP_SO7_CONFIG_MOTION DIALOGEX 0, 0, 476, 451 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "控制器参数" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + CONTROL "",IDC_LIST_SO7_MOTION_CONFIG,"SysListView32",LVS_REPORT | WS_BORDER | WS_TABSTOP,7,7,462,299 + PUSHBUTTON "Cancel",IDC_BUTTON_SO7_MOTION_CONFIG_CANCEL,364,425,50,19,NOT WS_VISIBLE + PUSHBUTTON "保存",IDC_BUTTON_SO7_MOTION_CONFIG_OK,419,425,50,19 + EDITTEXT IDC_EDIT_SO7_MOTION_CONFIG_MSGOUT,7,317,462,96,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL +END + ///////////////////////////////////////////////////////////////////////////// // @@ -967,6 +978,14 @@ BEGIN TOPMARGIN, 7 BOTTOMMARGIN, 277 END + + IDD_SO7_UTIL_SETUP_SO7_CONFIG_MOTION, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 469 + TOPMARGIN, 7 + BOTTOMMARGIN, 444 + END END #endif // APSTUDIO_INVOKED @@ -2288,8 +2307,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 6,3,0,0 - PRODUCTVERSION 6,3,0,0 + FILEVERSION 6,5,0,0 + PRODUCTVERSION 6,5,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -2306,12 +2325,12 @@ BEGIN BEGIN VALUE "CompanyName", "Hexagon Metrology" VALUE "FileDescription", "Utility for Hexagon Metrology" - VALUE "FileVersion", "6.3.0.0" + VALUE "FileVersion", "6.5.0.0" VALUE "InternalName", "Usb_Util.exe" VALUE "LegalCopyright", "Copyright 2013 Hexagon Metrology." VALUE "OriginalFilename", "Usb_Util.exe" VALUE "ProductName", "Utility" - VALUE "ProductVersion", "6.3.0.0" + VALUE "ProductVersion", "6.5.0.0" END END BLOCK "VarFileInfo" diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/MyListCtrl.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/MyListCtrl.cpp index adb2267..e5e5148 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/MyListCtrl.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/MyListCtrl.cpp @@ -1,6 +1,29 @@ #include "stdafx.h" - +#include "resource.h" #include "MyListCtrl.h" + + +// CEditableListCtrl + +IMPLEMENT_DYNAMIC(CMyListCtrl, CMFCListCtrl) + + CMyListCtrl::CMyListCtrl() +{ + m_bColor=TRUE; + m_bModifyFont=TRUE; +} + +CMyListCtrl::~CMyListCtrl() +{ +} + + +BEGIN_MESSAGE_MAP(CMyListCtrl, CMFCListCtrl) +END_MESSAGE_MAP() + + + +// CEditableListCtrl message handlers //======================================================= COLORREF CMyListCtrl::OnGetCellTextColor(int nRow, int nColum) { diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/MyListCtrl.h b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/MyListCtrl.h index 37a514c..d30605d 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/MyListCtrl.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/MyListCtrl.h @@ -2,13 +2,16 @@ class CMyListCtrl : public CMFCListCtrl { + DECLARE_DYNAMIC(CMyListCtrl) +public: + CMyListCtrl(); + virtual ~CMyListCtrl(); virtual COLORREF OnGetCellTextColor(int nRow, int nColum); virtual COLORREF OnGetCellBkColor(int nRow, int nColum); virtual HFONT OnGetCellFont(int nRow, int nColum, DWORD dwData = 0); - virtual int OnCompareItems(LPARAM lParam1, LPARAM lParam2, int iColumn); - -public: +protected: + DECLARE_MESSAGE_MAP() BOOL m_bColor; BOOL m_bModifyFont; }; \ No newline at end of file diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Automatic_Zoom.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Automatic_Zoom.cpp index dadbf2b..dc9a251 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Automatic_Zoom.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Automatic_Zoom.cpp @@ -191,7 +191,6 @@ BOOL CSO7_Automatic_Zoom::OnInitDialog() GetDlgItem(IDC_BUTTON_SAVELOG)->EnableWindow(true); GetDlgItem(IDC_EDIT_ZOOM_REPE_TIME)->EnableWindow(true); GetDlgItem(IDC_BUTTON_REPETEST_BEGIN)->EnableWindow(true); - m_pSO7_Proto->Load_So7_Config(); GetDlgItem(IDC_EDIT_TESTZOOM_PRODUCTID)->SetWindowText(m_pSO7_Proto->g_machine.s_machine_config.zm_axis._ProductID); ((CButton *)GetDlgItem(IDC_CHECK_ZOOM_DEADBAND))->SetCheck(TRUE); double dGrade=(m_pSO7_Proto->g_machine.s_machine_config.zm_axis._StartDegree-m_pSO7_Proto->g_machine.s_machine_config.zm_axis._EndDegree)/11; diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Move_Location.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Move_Location.cpp index e714635..31ce131 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Move_Location.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Move_Location.cpp @@ -80,10 +80,10 @@ BEGIN_MESSAGE_MAP(CSO7_Move_Location, CMFCPropertyPage) ON_BN_CLICKED(IDC_CHECK_SO7_MOVETO_FPGADATA, &CSO7_Move_Location::OnBnClickedCheckSo7MovetoFpgadata) END_MESSAGE_MAP() - // CSO7_Move_Location 消息处理程序 BOOL CSO7_Move_Location::OnInitDialog() { + CMFCPropertyPage::OnInitDialog(); //VOLCOMP if(g_pVolComp->m_bEnVolComp) ((CButton *)GetDlgItem(IDC_CHECK_REPETEST_VOLCOMP))->EnableWindow(TRUE); diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_UtilDlg.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_UtilDlg.cpp index 11aca73..a6b932c 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_UtilDlg.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_UtilDlg.cpp @@ -16,6 +16,10 @@ #include "MyMFCButton.h" #include "So7_Util_Program.h" #include "So7_Motion_Pages.h" +#include "ListCtrlItemEdit.h" +#include "EditableListCtrl.h" +#include "SetSo7MotionConfig.h" +#include "So7_Config_Pages.h" #include "SO7_UtilDlg.h" // CSO7_UtilDlg 对话框 @@ -348,6 +352,7 @@ void CSO7_UtilDlg::OnBnClickedButtonInitSo7usb() } else { + SetWindowText(_T("SevenOcean Utility")); g_pLoggerDebug->SendAndFlushPerMode(_T("Usb Port Initialized.\r\n")); m_OutMessage = _T("Usb Port Initialized.\r\nMachine Started."); OutputWithScroll(m_OutMessage,m_edMSG); @@ -851,12 +856,14 @@ void CSO7_UtilDlg::OnBnClickedButtonMotionParameter() void CSO7_UtilDlg::OnBnClickedButtonSetupSo7config() { KillTimer(1); + m_pSO7_Proto->Load_So7_Config(); if (!m_pSO7_AutoZoom) - m_pSO7_AutoZoom = new CAutoZoom(); + m_pSO7_AutoZoom = new CAutoZoom(); - CSetup_so7config* pSetup_so7config=new CSetup_so7config; - pSetup_so7config->DoModal(); - delete pSetup_so7config; + CSo7_Config_Pages* pSo7_Config_Pages=new CSo7_Config_Pages(_T("so7_config.ini"), this); + pSo7_Config_Pages->DoModal(); + delete pSo7_Config_Pages; + pSo7_Config_Pages=nullptr; if (m_pSO7_AutoZoom) { @@ -1000,7 +1007,7 @@ void CSO7_UtilDlg::OnBnClickedButtonSo7Readdatafromfpga() char cAddr(0); cAddr=static_cast(((CComboBox *)GetDlgItem(IDC_COMBO_RWDATA_ADDR))->GetCurSel()); m_pSO7_Proto->_send_cmd_SO7_CMD_READ_DATA_FROM_FPGA(cAxis,cAddr); - m_OutMessage.Format(_T("[Read]Data=%d ."),m_pSO7_Proto->g_machine.FPGAData); + m_OutMessage.Format(_T("[Read]Data=%d ."),(BYTE)m_pSO7_Proto->g_machine.FPGAData); OutputWithScroll(m_OutMessage,m_edMSG); } //================================================================================================ @@ -1035,7 +1042,7 @@ void CSO7_UtilDlg::OnBnClickedButtonSo7ReadInPortStatus() m_BeginReadIO=FALSE; ((CButton*)GetDlgItem(IDC_BUTTON_SO7_READ_IN_PORT_STATUS))->SetWindowTextW(_T("Read IO Status")); UpdateIOStatus(); - m_OutMessage.Format(_T("[Addr %d]:Data=%d"),m_ReadIOStatusAddr,m_pSO7_Proto->g_machine.InPortStatus); + m_OutMessage.Format(_T("[Addr %d]:Data=%d"),m_ReadIOStatusAddr,(BYTE)m_pSO7_Proto->g_machine.InPortStatus); OutputWithScroll(m_OutMessage,m_edMSG); } @@ -1224,10 +1231,35 @@ void CSO7_UtilDlg::OutputWithScroll(const CString &strNewText,CEdit &edtOutput) void CSO7_UtilDlg::OnBnClickedButtonSo7CncProgram() { KillTimer(1); - CSo7_Util_Program* pSo7_Util_Program=new CSo7_Util_Program; - pSo7_Util_Program->DoModal(); - delete pSo7_Util_Program; - pSo7_Util_Program=NULL; + BOOL bCancel(FALSE); + if (!m_pSO7_Proto->so7_motion_is_homed()) + { + INT rStatus=AfxMessageBox(_T("Homing now?!"),MB_YESNOCANCEL|MB_ICONQUESTION); + if (rStatus==IDCANCEL) + { + bCancel=TRUE; + } + else if (rStatus==IDNO) + { + bCancel=FALSE; + } + else + { + m_OutMessage=_T("Homing......"); + OutputWithScroll(m_OutMessage,m_edMSG); + m_pSO7_Proto->so7_motion_Dcc_Home(); + bCancel=FALSE; + m_OutMessage=_T("Homed."); + OutputWithScroll(m_OutMessage,m_edMSG); + } + } + if (!bCancel) + { + CSo7_Util_Program* pSo7_Util_Program=new CSo7_Util_Program; + pSo7_Util_Program->DoModal(); + delete pSo7_Util_Program; + pSo7_Util_Program=NULL; + } SetTimer(1,150,NULL); } diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SetSo7MotionConfig.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SetSo7MotionConfig.cpp new file mode 100644 index 0000000..a8fecda --- /dev/null +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SetSo7MotionConfig.cpp @@ -0,0 +1,292 @@ +// SetSo7MotionConfig.cpp : implementation file +// + +#include "stdafx.h" +#include "resource.h" +#include "..\..\..\SevenOcean\SO7_Proto.h" +#include "ListCtrlItemEdit.h" +#include "EditableListCtrl.h" +#include "SetSo7MotionConfig.h" +#include "afxdialogex.h" +extern CSO7_Proto* m_pSO7_Proto; + +// CSetSo7MotionConfig dialog + +IMPLEMENT_DYNAMIC(CSetSo7MotionConfig, CMFCPropertyPage) + +CSetSo7MotionConfig::CSetSo7MotionConfig():CMFCPropertyPage(CSetSo7MotionConfig::IDD) +{ + +} + +CSetSo7MotionConfig::~CSetSo7MotionConfig() +{ +} + +void CSetSo7MotionConfig::DoDataExchange(CDataExchange* pDX) +{ + CMFCPropertyPage::DoDataExchange(pDX); + DDX_Control(pDX, IDC_LIST_SO7_MOTION_CONFIG, m_ConfigList); + DDX_Control(pDX, IDC_EDIT_SO7_MOTION_CONFIG_MSGOUT, m_edit_MsgOut); + +} + + +BEGIN_MESSAGE_MAP(CSetSo7MotionConfig, CMFCPropertyPage) + ON_BN_CLICKED(IDC_BUTTON_SO7_MOTION_CONFIG_OK, &CSetSo7MotionConfig::OnBnClickedButtonSo7MotionConfigOk) + ON_BN_CLICKED(IDC_BUTTON_SO7_MOTION_CONFIG_CANCEL, &CSetSo7MotionConfig::OnBnClickedButtonSo7MotionConfigCancel) +END_MESSAGE_MAP() + + +// CSetSo7MotionConfig message handlers +BOOL CSetSo7MotionConfig::OnInitDialog() +{ + CMFCPropertyPage::OnInitDialog(); + + RECT m_rect; + m_ConfigList.GetClientRect(&m_rect); //获取list的客户区 + m_ConfigList.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT); //设置list风格 + + m_ConfigList.InsertColumn(0,_T("编号"),LVCFMT_LEFT, m_rect.right/10); + m_ConfigList.InsertColumn(1,_T("参数名"),LVCFMT_LEFT, m_rect.right*3/10); + m_ConfigList.InsertColumn(2,_T("值"),LVCFMT_LEFT, m_rect.right*2/10); + m_ConfigList.InsertColumn(3,_T("描述"),LVCFMT_LEFT, m_rect.right*4/10); + + for (int i = 1; i < 100; i++) + { + CString str; + str.Format(_T("%d"), i); + m_ConfigList.InsertItem(i, str); + } + UpdateLabelName(); + UpdateDataValue(); + m_ConfigList.SetMaxItemIndex(0,13,2,2); + return TRUE; +} + +void CSetSo7MotionConfig::UpdateLabelName() +{ + int iRow=0; + int iCol=1; + CString cStr(""); + cStr="CLOSE_LOOP_ENABLED"; + m_ConfigList.SetItemText(iRow,iCol,cStr); + cStr="default:0"; + m_ConfigList.SetItemText(iRow,iCol+2,cStr); + iRow++; + + cStr="MOTION_RETRY_TIMES"; + m_ConfigList.SetItemText(iRow,iCol,cStr); + cStr="default:5"; + m_ConfigList.SetItemText(iRow,iCol+2,cStr); + iRow++; + + cStr="SHIFT_POSITION_X"; + m_ConfigList.SetItemText(iRow,iCol,cStr); + cStr="default:0"; + m_ConfigList.SetItemText(iRow,iCol+2,cStr); + iRow++; + + cStr="SHIFT_POSITION_Y"; + m_ConfigList.SetItemText(iRow,iCol,cStr); + cStr="default:0"; + m_ConfigList.SetItemText(iRow,iCol+2,cStr); + iRow++; + + cStr="SHIFT_POSITION_Z"; + m_ConfigList.SetItemText(iRow,iCol,cStr); + cStr="default:0"; + m_ConfigList.SetItemText(iRow,iCol+2,cStr); + iRow++; + + cStr="SDK3000_SLEEP_COUNT"; + m_ConfigList.SetItemText(iRow,iCol,cStr); + cStr="default:550000"; + m_ConfigList.SetItemText(iRow,iCol+2,cStr); + iRow++; + + cStr="GET_USB_MESSAGE_METHOD"; + m_ConfigList.SetItemText(iRow,iCol,cStr); + cStr="default:1"; + m_ConfigList.SetItemText(iRow,iCol+2,cStr); + iRow++; + + cStr="WRITE_DATA_SLEEP_TIME"; + m_ConfigList.SetItemText(iRow,iCol,cStr); + cStr="default:0"; + m_ConfigList.SetItemText(iRow,iCol+2,cStr); + iRow++; + + cStr="ACCURA_ERROR_PULSE_X"; + m_ConfigList.SetItemText(iRow,iCol,cStr); + cStr="default:1"; + m_ConfigList.SetItemText(iRow,iCol+2,cStr); + iRow++; + + cStr="ACCURA_ERROR_PULSE_Y"; + m_ConfigList.SetItemText(iRow,iCol,cStr); + cStr="default:1"; + m_ConfigList.SetItemText(iRow,iCol+2,cStr); + iRow++; + + cStr="ACCURA_ERROR_PULSE_Z"; + m_ConfigList.SetItemText(iRow,iCol,cStr); + cStr="default:1"; + m_ConfigList.SetItemText(iRow,iCol+2,cStr); + iRow++; + + cStr="EQUIDISTANCE_PULSE_X"; + m_ConfigList.SetItemText(iRow,iCol,cStr); + cStr="default:0"; + m_ConfigList.SetItemText(iRow,iCol+2,cStr); + iRow++; + + cStr="EQUIDISTANCE_PULSE_Y"; + m_ConfigList.SetItemText(iRow,iCol,cStr); + cStr="default:0"; + m_ConfigList.SetItemText(iRow,iCol+2,cStr); + iRow++; + + cStr="EQUIDISTANCE_PULSE_Z"; + m_ConfigList.SetItemText(iRow,iCol,cStr); + cStr="default:0"; + m_ConfigList.SetItemText(iRow,iCol+2,cStr); + iRow++; +} +void CSetSo7MotionConfig::UpdateDataValue() +{ + int iRow=0; + int iCol=2; + CString cStr(""); + cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion._EnCloseLoop); + m_ConfigList.SetItemText(iRow++,iCol,cStr); + cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion._RetryTimes); + m_ConfigList.SetItemText(iRow++,iCol,cStr); + cStr.Format(_T("%.3f"),m_pSO7_Proto->g_machine.s_machine_config.motion._ShiftPositionX); + m_ConfigList.SetItemText(iRow++,iCol,cStr); + cStr.Format(_T("%.3f"),m_pSO7_Proto->g_machine.s_machine_config.motion._ShiftPositionY); + m_ConfigList.SetItemText(iRow++,iCol,cStr); + cStr.Format(_T("%.3f"),m_pSO7_Proto->g_machine.s_machine_config.motion._ShiftPositionZ); + m_ConfigList.SetItemText(iRow++,iCol,cStr); + cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_CntThreadSleepVal); + m_ConfigList.SetItemText(iRow++,iCol,cStr); + cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.GetInterruptMsgMethod); + m_ConfigList.SetItemText(iRow++,iCol,cStr); + cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_WriteDataSleepTime); + m_ConfigList.SetItemText(iRow++,iCol,cStr); + cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_AccuraErrPulseX); + m_ConfigList.SetItemText(iRow++,iCol,cStr); + cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_AccuraErrPulseY); + m_ConfigList.SetItemText(iRow++,iCol,cStr); + cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_AccuraErrPulseZ); + m_ConfigList.SetItemText(iRow++,iCol,cStr); + cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_EQUIDIS_X); + m_ConfigList.SetItemText(iRow++,iCol,cStr); + cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_EQUIDIS_Y); + m_ConfigList.SetItemText(iRow++,iCol,cStr); + cStr.Format(_T("%d"),m_pSO7_Proto->g_machine.s_machine_config.motion.m_EQUIDIS_Z); + m_ConfigList.SetItemText(iRow++,iCol,cStr); +} +void CSetSo7MotionConfig::SaveDataValue() +{ + UpdateData(TRUE); + USES_CONVERSION; + const char* cTemp; + CString cStr(""); + int iRow=0; + int iCol=2; + + cStr=m_ConfigList.GetItemText(iRow,iCol); + cTemp=T2A(cStr); + m_pSO7_Proto->g_machine.s_machine_config.motion._EnCloseLoop=atoi(cTemp); + iRow++; + cStr=m_ConfigList.GetItemText(iRow,iCol); + cTemp=T2A(cStr); + m_pSO7_Proto->g_machine.s_machine_config.motion._RetryTimes=atoi(cTemp); + iRow++; + cStr=m_ConfigList.GetItemText(iRow,iCol); + cTemp=T2A(cStr); + m_pSO7_Proto->g_machine.s_machine_config.motion._ShiftPositionX=atof(cTemp); + iRow++; + cStr=m_ConfigList.GetItemText(iRow,iCol); + cTemp=T2A(cStr); + m_pSO7_Proto->g_machine.s_machine_config.motion._ShiftPositionY=atof(cTemp); + iRow++; + cStr=m_ConfigList.GetItemText(iRow,iCol); + cTemp=T2A(cStr); + m_pSO7_Proto->g_machine.s_machine_config.motion._ShiftPositionZ=atof(cTemp); + iRow++; + cStr=m_ConfigList.GetItemText(iRow,iCol); + cTemp=T2A(cStr); + m_pSO7_Proto->g_machine.s_machine_config.motion.m_CntThreadSleepVal=atoi(cTemp); + iRow++; + cStr=m_ConfigList.GetItemText(iRow,iCol); + cTemp=T2A(cStr); + m_pSO7_Proto->g_machine.s_machine_config.motion.GetInterruptMsgMethod=static_cast(atoi(cTemp)); + iRow++; + cStr=m_ConfigList.GetItemText(iRow,iCol); + cTemp=T2A(cStr); + m_pSO7_Proto->g_machine.s_machine_config.motion.m_WriteDataSleepTime=atoi(cTemp); + iRow++; + cStr=m_ConfigList.GetItemText(iRow,iCol); + cTemp=T2A(cStr); + m_pSO7_Proto->g_machine.s_machine_config.motion.m_AccuraErrPulseX=atoi(cTemp); + iRow++; + cStr=m_ConfigList.GetItemText(iRow,iCol); + cTemp=T2A(cStr); + m_pSO7_Proto->g_machine.s_machine_config.motion.m_AccuraErrPulseY=atoi(cTemp); + iRow++; + cStr=m_ConfigList.GetItemText(iRow,iCol); + cTemp=T2A(cStr); + m_pSO7_Proto->g_machine.s_machine_config.motion.m_AccuraErrPulseZ=atoi(cTemp); + iRow++; + cStr=m_ConfigList.GetItemText(iRow,iCol); + cTemp=T2A(cStr); + m_pSO7_Proto->g_machine.s_machine_config.motion.m_EQUIDIS_X=atoi(cTemp); + iRow++; + cStr=m_ConfigList.GetItemText(iRow,iCol); + cTemp=T2A(cStr); + m_pSO7_Proto->g_machine.s_machine_config.motion.m_EQUIDIS_Y=atoi(cTemp); + iRow++; + cStr=m_ConfigList.GetItemText(iRow,iCol); + cTemp=T2A(cStr); + m_pSO7_Proto->g_machine.s_machine_config.motion.m_EQUIDIS_Z=atoi(cTemp); + iRow++; + +} +void CSetSo7MotionConfig::OnBnClickedButtonSo7MotionConfigOk() +{ + SaveDataValue(); + CString m_csMsg=_T(""); + m_pSO7_Proto->Save_So7_Config(); + m_pSO7_Proto->GetAppPath(m_csMsg); + m_csMsg=_T("配置文件保存在:")+m_csMsg+_T("\\so7_config.ini。"); + OutputWithScroll(m_csMsg,m_edit_MsgOut); +} + + +void CSetSo7MotionConfig::OnBnClickedButtonSo7MotionConfigCancel() +{ + UpdateDataValue(); +} +//===================================================================================== +//Print message on edit control +void CSetSo7MotionConfig::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); +} \ No newline at end of file diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SetSo7MotionConfig.h b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SetSo7MotionConfig.h new file mode 100644 index 0000000..06b96d0 --- /dev/null +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SetSo7MotionConfig.h @@ -0,0 +1,30 @@ +#pragma once + +// CSetSo7MotionConfig dialog + +class CSetSo7MotionConfig : public CMFCPropertyPage +{ + DECLARE_DYNAMIC(CSetSo7MotionConfig) + +public: + CSetSo7MotionConfig(); // standard constructor + virtual ~CSetSo7MotionConfig(); + +// Dialog Data + enum { IDD = IDD_SO7_UTIL_SETUP_SO7_CONFIG_MOTION }; + +protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + virtual BOOL OnInitDialog(); + DECLARE_MESSAGE_MAP() + + void UpdateLabelName(); + void UpdateDataValue(); + void SaveDataValue(); + void OutputWithScroll(const CString &strNewText,CEdit &edtOutput); +public: + CEditableListCtrl m_ConfigList; + CEdit m_edit_MsgOut; + afx_msg void OnBnClickedButtonSo7MotionConfigOk(); + afx_msg void OnBnClickedButtonSo7MotionConfigCancel(); +}; diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Setup_so7config.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Setup_so7config.cpp index 3f97fd8..442a247 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Setup_so7config.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Setup_so7config.cpp @@ -15,10 +15,9 @@ extern CSO7_Proto* m_pSO7_Proto; #define PI 3.1415926535897932384626433 // CSetup_so7config dialog -IMPLEMENT_DYNAMIC(CSetup_so7config, CDialog) +IMPLEMENT_DYNAMIC(CSetup_so7config, CMFCPropertyPage) - CSetup_so7config::CSetup_so7config(CWnd* pParent /*=NULL*/) - : CDialog(CSetup_so7config::IDD, pParent) + CSetup_so7config::CSetup_so7config():CMFCPropertyPage(CSetup_so7config::IDD) { } @@ -29,7 +28,7 @@ CSetup_so7config::~CSetup_so7config() void CSetup_so7config::DoDataExchange(CDataExchange* pDX) { - CDialog::DoDataExchange(pDX); + CMFCPropertyPage::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT_SO7CONFIG_ZOOMID, m_csZoomID); DDX_Text(pDX, IDC_EDIT_SO7CONFIG_MOTOR_SUBDIVISION, m_csMotorSubdivision); @@ -44,7 +43,7 @@ void CSetup_so7config::DoDataExchange(CDataExchange* pDX) } -BEGIN_MESSAGE_MAP(CSetup_so7config, CDialog) +BEGIN_MESSAGE_MAP(CSetup_so7config, CMFCPropertyPage) ON_WM_TIMER() ON_BN_CLICKED(IDC_BTN_CONFIGURE_CALIBRATEV, &CSetup_so7config::OnBnClickedBtnConfigureCalibratev) ON_BN_CLICKED(IDC_BUTTON_SO7CONFIG_STEP1, &CSetup_so7config::OnBnClickedButtonSo7configStep1) @@ -66,7 +65,7 @@ END_MESSAGE_MAP() //=================================================== BOOL CSetup_so7config::OnInitDialog() { - CDialog::OnInitDialog(); + CMFCPropertyPage::OnInitDialog(); // Add "About..." menu item to system menu. @@ -109,8 +108,7 @@ BOOL CSetup_so7config::OnInitDialog() AfxMessageBox(_T("串口被占用!")); } } - SetTimer(1,200,NULL); - m_csZoomID=_T("So7123456"); + m_csZoomID=m_pSO7_Proto->g_machine.s_machine_config.zm_axis._ProductID; m_csMotorSubdivision=_T("3200"); m_csZoomFastSpeed=_T("2000"); m_csZoomSlowSpeed=_T("800"); @@ -119,6 +117,18 @@ BOOL CSetup_so7config::OnInitDialog() return TRUE; // return TRUE unless you set the focus to a control } //=============================================== +BOOL CSetup_so7config::OnSetActive() +{ + SetTimer(1,200,NULL); + return CMFCPropertyPage::OnSetActive(); +} +//=============================================== +BOOL CSetup_so7config::OnKillActive() +{ + KillTimer(1); + return CMFCPropertyPage::OnKillActive(); +} +//=============================================== void CSetup_so7config::OnBnClickedBtnConfigureCalibratev() { GetDlgItem(IDC_BTN_CONFIGURE_CALIBRATEV)->EnableWindow(false); @@ -371,7 +381,7 @@ void CSetup_so7config::OnTimer(UINT_PTR nIDEvent) break; } - CDialog::OnTimer(nIDEvent); + CMFCPropertyPage::OnTimer(nIDEvent); } @@ -444,7 +454,7 @@ void CSetup_so7config::OutputWithScroll(const CString &strNewText,CEdit &edtOutp void CSetup_so7config::OnBnClickedCancel() { KillTimer(1); - CDialog::OnCancel(); + CMFCPropertyPage::OnCancel(); } //=============================================== double CSetup_so7config::ReadZoomAngle() @@ -461,6 +471,3 @@ BOOL CSetup_so7config::CalibrateEncoder() { return m_pSO7_AutoZoom->CalibrateEncoder(); } - - - diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Setup_so7config.h b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Setup_so7config.h index d6a549f..d86233a 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Setup_so7config.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Setup_so7config.h @@ -3,12 +3,12 @@ // CSetup_so7config dialog -class CSetup_so7config : public CDialog +class CSetup_so7config : public CMFCPropertyPage { DECLARE_DYNAMIC(CSetup_so7config) public: - CSetup_so7config(CWnd* pParent = NULL); // standard constructor + CSetup_so7config(); virtual ~CSetup_so7config(); // Dialog Data @@ -47,4 +47,6 @@ public: afx_msg void OnEnKillfocusEditSo7configZoomSlowspeed(); afx_msg void OnBnClickedCancel(); afx_msg void OnBnClickedButtonSo7configSetSubdivision(); + virtual BOOL OnSetActive(); + virtual BOOL OnKillActive(); }; diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Config_Pages.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Config_Pages.cpp new file mode 100644 index 0000000..8db68d5 --- /dev/null +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Config_Pages.cpp @@ -0,0 +1,82 @@ +#include "stdafx.h" +#include "afxpropertysheet.h" +#include "resource.h" +#include "ListCtrlItemEdit.h" +#include "EditableListCtrl.h" +#include "SetSo7MotionConfig.h" +#include "ProcessButton.h" +#include "..\..\..\SevenOcean\SO7_Proto.h" +#include "..\..\..\SevenOcean\CAutoZoom.h" +#include "Setup_so7config.h" +#include "So7_Config_Pages.h" + + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif +///////////////////////////////////////////////////////////////////////////// +// CSo7_Config_Pages + +IMPLEMENT_DYNAMIC(CSo7_Config_Pages, CMFCPropertySheet) + +CSo7_Config_Pages::CSo7_Config_Pages(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage) +:CMFCPropertySheet(pszCaption, pParentWnd, iSelectPage) +{ + m_psh.dwFlags |=PSH_NOAPPLYNOW; + m_psh.dwFlags &=~PSH_HASHELP; + SetLook(CMFCPropertySheet::PropSheetLook_Tabs); + AddPage(&m_PageAutoZoomConfig); + AddPage(&m_PageMotionConfig); + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); +} + +CSo7_Config_Pages::~CSo7_Config_Pages() +{ +} + +BEGIN_MESSAGE_MAP(CSo7_Config_Pages, CMFCPropertySheet) + ON_BN_CLICKED(IDOK, &CSo7_Config_Pages::OnSave) + ON_BN_CLICKED(IDC_BUTTON_DIY_EXIT_BUTTON, &CSo7_Config_Pages::OnCancel) +END_MESSAGE_MAP() + +//================================================================ +BOOL CSo7_Config_Pages::OnInitDialog() +{ + BOOL bResult = CMFCPropertySheet::OnInitDialog(); + SetIcon(m_hIcon, TRUE); // Set big icon + SetIcon(m_hIcon, FALSE); // Set small icon + + CRect BtnRect, TabCtrlRect; + int BtnWidth(0); + GetDlgItem(IDOK)->GetWindowRect(BtnRect); + GetTabControl()->GetWindowRect(TabCtrlRect); + ScreenToClient(BtnRect); + ScreenToClient(TabCtrlRect); + BtnWidth = BtnRect.Width(); + BtnRect.left = TabCtrlRect.right - BtnWidth; + BtnRect.right = TabCtrlRect.right; + m_ExitButton.Create(_T("Exit"),BS_PUSHBUTTON|WS_CHILD|WS_TABSTOP, BtnRect, this, IDC_BUTTON_DIY_EXIT_BUTTON);//WS_VISIBLE + m_ExitButton.SetFont(GetFont()); + + GetDlgItem(IDOK)->ShowWindow(SW_HIDE); + GetDlgItem(IDHELP)->ShowWindow(SW_HIDE); + GetDlgItem(ID_APPLY_NOW)->ShowWindow(SW_HIDE); + //GetDlgItem(IDCANCEL)->ShowWindow(SW_HIDE); + ((CButton*)GetDlgItem(IDCANCEL))->SetWindowTextW(_T("Exit")); + + return bResult; +} +//================================================================ +void CSo7_Config_Pages::OnCancel() +{ + CMFCPropertySheet::OnClose(); + //Default(); +} + +//================================================================ +void CSo7_Config_Pages::OnSave() +{ + Default(); +} \ No newline at end of file diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Config_Pages.h b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Config_Pages.h new file mode 100644 index 0000000..16b854c --- /dev/null +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Config_Pages.h @@ -0,0 +1,27 @@ +#pragma once +///////////////////////////////////////////////////////////////////////////// +// CSo7_Config_Pages +class CSo7_Config_Pages : public CMFCPropertySheet +{ + DECLARE_DYNAMIC(CSo7_Config_Pages) + +// Construction +public: + CSo7_Config_Pages(LPCTSTR pszCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0); + +// Attributes +public: + CSetup_so7config m_PageAutoZoomConfig; + CSetSo7MotionConfig m_PageMotionConfig; + HICON m_hIcon; + CButton m_ExitButton; + afx_msg void OnCancel(); + afx_msg void OnSave(); +// Implementation +public: + virtual ~CSo7_Config_Pages(); +protected: + DECLARE_MESSAGE_MAP() + virtual BOOL OnInitDialog(); +}; + diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Motion_Pages.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Motion_Pages.cpp index bc0db6b..6d58eb1 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Motion_Pages.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Motion_Pages.cpp @@ -8,10 +8,8 @@ #include "ProcessButton.h" #include "SO7_UtilDlg.h" #include "SO7_Send_Parameter.h" - #include "SO7_VolComp.h" #include "SO7_Move_Location.h" - #include "So7_Motion_Pages.h" #ifdef _DEBUG diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_Program.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_Program.cpp index cffe198..ad1a537 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_Program.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_Program.cpp @@ -100,11 +100,7 @@ BOOL CSo7_Util_Program::OnInitDialog() { CDialog::OnInitDialog(); - if (!m_pSO7_Proto->so7_motion_is_homed()) - { - AfxMessageBox(_T("Homing now!")); - m_pSO7_Proto->so7_motion_Dcc_Home(); - } + { m_Thread_State = THREAD_RUNNING_STATE; m_hTriggerEvent = CreateEvent(NULL,FALSE,NULL,NULL); diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Usb_Util.vcxproj b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Usb_Util.vcxproj index 363c41b..654dbac 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Usb_Util.vcxproj +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Usb_Util.vcxproj @@ -327,10 +327,12 @@ + + @@ -343,8 +345,10 @@ + + @@ -402,10 +406,12 @@ + + @@ -419,8 +425,10 @@ + + diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Usb_Util.vcxproj.filters b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Usb_Util.vcxproj.filters index ce5d84a..50328ad 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Usb_Util.vcxproj.filters +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Usb_Util.vcxproj.filters @@ -178,6 +178,18 @@ Sources Files + + Sources Files + + + Sources Files + + + Sources Files + + + Sources Files + @@ -390,6 +402,18 @@ Header Files + + Header Files + + + Header Files + + + Header Files + + + Header Files + diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h index c2df142..731198e 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h @@ -640,6 +640,7 @@ #define IDC_BUTTON2 1542 #define IDC_BUTTON_SO7_READDATAFROMFPGA 1542 #define IDC_BUTTON_TESA_STAR_STOP_MACHINE 1542 +#define IDC_BUTTON_SO7_MOTION_CONFIG_OK 1542 #define IDC_BUTTON_STOP_SAMPLE_SCURVE 1543 #define IDC_BTN_CONFIGURE_MOVEVOUT 1544 #define IDC_BUTTON_STOP_SCAN_KEYENCE_LK_GLASER 1545 @@ -818,6 +819,7 @@ #define IDC_BUTTON_READ_PROGRAM 1717 #define IDD_SO7_VIDEOCARD_TC4000 1718 #define IDD_DIALOG_TEST_KEYENCE_LK_H 1719 +#define IDD_SO7_UTIL_SETUP_SO7_CONFIG_MOTION 1720 #define IDC_RADIO_SPEED_SLOW 1770 #define IDC_RADIO_SCALE 1772 #define IDC_EDIT_SPEED_X 1773 @@ -846,6 +848,7 @@ #define IDC_BUTTON_SO7_SENDDATATOFPGA 1794 #define IDC_BUTTON_TESA_STAR_START_MACHINE 1794 #define IDC_BUTTON_SO7_MOVETO_CLEAR_ALL_LOG 1794 +#define IDC_BUTTON_SO7_MOTION_CONFIG_CANCEL 1794 #define IDC_COMBO_RWDATA_ADDR 1795 #define IDC_EDIT_MOTION_SPEEDY 1796 #define IDC_COMBO_OUTPORT_NUMBER 1796 @@ -876,8 +879,14 @@ #define IDC_STATIC_SPEED_PARA1 1816 #define IDC_STATIC_SPEED_PARA3 1817 #define IDC_STATIC_SPEED_PARA4 1818 +#define IDC_CHECK3 1819 #define IDC_CHECK_SO7_MOTION_AUTO_SET_ZERO 1819 -#define IDC_BUTTON_DIY_EXIT_BUTTON 1820 +#define IDC_LIST_SO7_MOTION_CONFIG 1820 +#define IDC_EDIT_SO7_MOTION_CONFIG_MSGOUT 1821 + +#define IDC_BUTTON_DIY_EXIT_BUTTON 32740 +#define ID_EDIT_SO7_CONFIG_MOTION 32741 + // Next default values for new objects // @@ -885,7 +894,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 189 #define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 1820 +#define _APS_NEXT_CONTROL_VALUE 1822 #define _APS_NEXT_SYMED_VALUE 104 #endif #endif diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo index a6439c0..29f003d 100644 Binary files a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo and b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo differ