diff --git a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.cpp b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.cpp index 393caa1..eb839ef 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.cpp @@ -4784,8 +4784,39 @@ SSI_STATUS_MOTION CSO7_Proto::so7_SetDO(int Channel,BYTE bDOSts) return SSI_STATUS_MOTION_NORMAL; } +SSI_STATUS_MOTION CSO7_Proto::so7_motion_set_trig_para(char _cAxis,char _TrigMode,short _ParaNumber,short* _ParaData) +{ + short SetStartIndex(0); + short SetParaNumber(0); + do + { + if ((_ParaNumber-SetStartIndex)>20) + { + SetParaNumber=20; + } + else + { + SetParaNumber=(_ParaNumber-SetStartIndex); + } + _send_cmd_SO7_CMD_WRITE_TRIG_PULSE_PARA(_cAxis,_TrigMode,SetStartIndex,SetParaNumber,_ParaData); + SetStartIndex+=SetParaNumber; + } while ((_ParaNumber-SetStartIndex)>0); + return SSI_STATUS_MOTION_NORMAL; +} + +SSI_STATUS_MOTION CSO7_Proto::so7_motion_get_trig_para(short _Index,char& _cAxis,char& _TrigMode,short& _ParaNumber,short& _ParaData) +{ + _send_cmd_SO7_CMD_READ_TRIG_PULSE_PARA(_Index); + _cAxis=g_machine.TrigPara.TrigPulseActiveAxis; + _TrigMode=g_machine.TrigPara.TrigPulseMethod; + _ParaNumber=static_cast(g_machine.TrigPara.TrigTotalNo._long_); + _ParaData=static_cast(g_machine.TrigPara.TrigReadPara._long_); + return SSI_STATUS_MOTION_NORMAL; + +} + +//********************************************************************************// //********************************************************************************// -//*******************************************************************************// //================================================================================== @@ -6098,7 +6129,7 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_READ_TRIG_PULSE_PARA(short ParaI WaitForSingleObject(g_hEP02_Serial_Mutex, INFINITE); memset(ep_buff[EP_02_CMD_IDX]._buffer, 0x00, MAX_BUFF_SIZE); char cBuff(0); - + g_machine.TrigPara.TrigReadIndex._long_=ParaIndex; *(ep_buff[EP_02_CMD_IDX]._buffer) = CT_DATA; *(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_READ_TRIG_PULSE_PARA; cBuff = (ParaIndex>>8) & 0x0ff; @@ -6137,7 +6168,7 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_WRITE_TRIG_PULSE_PARA(char Activ cBuff = ParaNumber & 0x0ff; *(ep_buff[EP_02_CMD_IDX]._buffer+7) = cBuff; int j=8; - for (short i=0;i32768) + if (g_machine.TrigPara.TrigReadPara._long_>32768) { - g_machine.TrigPara.TrigCurPara._long_-=32768; - g_machine.TrigPara.TrigCurPara._long_*=-1; + g_machine.TrigPara.TrigReadPara._long_-=32768; + g_machine.TrigPara.TrigReadPara._long_*=-1; } return SSI_STATUS_MOTION_NORMAL; } diff --git a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.h b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.h index 17864a4..f4e7e1d 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.h @@ -242,7 +242,12 @@ typedef struct s_so7_trigger_pulse { long _long_; char _char_[4]; - }TrigCurPara; + }TrigReadIndex; + union + { + long _long_; + char _char_[4]; + }TrigReadPara; } SO7TRIGPULSE; //-------------------------------------------------------------------- @@ -490,6 +495,9 @@ public: SSI_STATUS_MOTION so7_GetDIO(int Channel,BYTE& bDISts); SSI_STATUS_MOTION so7_SetDO(int Channel,BYTE bDOSts); + SSI_STATUS_MOTION so7_motion_set_trig_para(char _cAxis,char _TrigMode,short _ParaNumber,short* _ParaData); + SSI_STATUS_MOTION so7_motion_get_trig_para(short _Index,char& _cAxis,char& _TrigMode,short& _ParaNumber,short& _ParaData); + SSI_STATUS_MOTION _send_cmd_SO7_CMD_MOVE_X(char SpeedGear); SSI_STATUS_MOTION _send_cmd_SO7_CMD_MOVE_Y(char SpeedGear); SSI_STATUS_MOTION _send_cmd_SO7_CMD_MOVE_Z(char SpeedGear); 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 f8d4043..9bf427b 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/UtilityDebug.Log +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/UtilityDebug.Log @@ -4659,3 +4659,21 @@ Usb Port Initialized. Usb Port Initialized. Usb Port Initialized. Usb Port Initialized. +Usb Port Initialized. +Usb Port Initialized. +Usb Port Initialized. +Usb Port Initialized. +Usb Port Initialized. +Usb Port Initialized. +Usb Port Initialized. +Usb Port Initialized. +Usb Port Initialized. +Usb Port Initialized. +Usb Port Initialized. +Usb Port Initialized. +Usb Port Initialized. +Usb Port Initialized. +Usb Port Initialized. +Usb Port Initialized. +Usb Port Initialized. +Usb Port Initialized. diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/EditableListCtrl.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/EditableListCtrl.cpp index cb2c87b..656b010 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/EditableListCtrl.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/EditableListCtrl.cpp @@ -25,6 +25,8 @@ IMPLEMENT_DYNAMIC(CEditableListCtrl, CMFCListCtrl) m_nColorMinCol=0; m_nColorMaxRow=0; m_nColorMaxCol=0; + m_nSelectedRow=0; + m_nSelectedCol=0; } CEditableListCtrl::~CEditableListCtrl() @@ -34,6 +36,7 @@ CEditableListCtrl::~CEditableListCtrl() BEGIN_MESSAGE_MAP(CEditableListCtrl, CMFCListCtrl) ON_WM_LBUTTONDBLCLK() + ON_WM_LBUTTONDOWN() END_MESSAGE_MAP() @@ -56,7 +59,7 @@ COLORREF CEditableListCtrl::OnGetCellBkColor(int nRow, int nColum) { return CMFCListCtrl::OnGetCellBkColor(nRow, nColum); } - if (nRow<=m_nColorMaxRow) + if (nRow=0 ) //没有点在有效区域,不进入编辑 + { + m_nSelectedRow = testinfo.iItem; //被点击表项的行号 + m_nSelectedCol = testinfo.iSubItem; //被点击表项的列号 + } + } + CMFCListCtrl::OnLButtonDown(nFlags, point); +} +//=============================================================== void CEditableListCtrl::OnLButtonDblClk(UINT nFlags, CPoint point) { // 检查是否有Item正被编辑 @@ -168,4 +197,11 @@ BOOL CEditableListCtrl::SetColorStyleItemRange(int _iMinRow,int _iMaxRow,int _i m_nColorMaxRow=_iMaxRow; m_nColorMaxCol=_iMaxCol; return TRUE; -} \ No newline at end of file +} +//=============================================================== +BOOL CEditableListCtrl::SelectedItem(int& _row,int& _col) +{ + _row=m_nSelectedRow; + _col=m_nSelectedCol; + return TRUE; +} diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/EditableListCtrl.h b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/EditableListCtrl.h index 288eca4..cd9d9a3 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/EditableListCtrl.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/EditableListCtrl.h @@ -28,6 +28,8 @@ protected: BOOL m_bEditing; BOOL m_bColor; BOOL m_bModifyFont; + int m_nSelectedRow; //行号 + int m_nSelectedCol; //列号 DECLARE_MESSAGE_MAP() public: @@ -35,8 +37,10 @@ public: BOOL EndEditItem(BOOL bIsValid=TRUE); BOOL SetEditableItemRange(int _iMinRow,int _iMaxRow,int _iMinCol,int _iMaxCol); BOOL SetColorStyleItemRange(int _iMinRow,int _iMaxRow,int _iMinCol,int _iMaxCol); + BOOL SelectedItem(int& _row,int& _col); afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point); + afx_msg void OnLButtonDown(UINT nFlags, CPoint point); }; 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 431507b..85c3eee 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 @@ -966,6 +966,32 @@ BEGIN EDITTEXT IDC_EDIT_ART_PCI8622_GET_DATA_NUMBER,87,62,40,14,ES_AUTOHSCROLL END +IDD_SO7_UTIL_EXTERNAL_TRIG DIALOGEX 0, 0, 333, 316 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "External Trigger" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + CONTROL "X",IDC_RADIO_SO7_EXTRIG_X,"Button",BS_AUTORADIOBUTTON | WS_GROUP,41,33,20,10 + CONTROL "Y",IDC_RADIO_SO7_EXTRIG_Y,"Button",BS_AUTORADIOBUTTON,77,33,20,10 + CONTROL "Z",IDC_RADIO_SO7_EXTRIG_Z,"Button",BS_AUTORADIOBUTTON,113,33,20,10 + CONTROL "等间距触发",IDC_RADIO_SO7_EXTRIG_EQDIS,"Button",BS_AUTORADIOBUTTON | WS_GROUP,36,75,56,10 + CONTROL "指定位移触发",IDC_RADIO_SO7_EXTRIG_SPECLOCATION,"Button",BS_AUTORADIOBUTTON,36,93,64,10 + LTEXT "触发间距",IDC_STATIC,113,74,33,8 + LTEXT "触发点数",IDC_STATIC,113,92,33,8 + EDITTEXT IDC_EDIT_SO7_EXTRIG_EQDIS,158,71,40,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_SO7_EXTRIG_SPECLOCATION,158,89,40,14,ES_AUTOHSCROLL + CONTROL "",IDC_LIST_SO7_EXTRIG_SPECLOCATION,"SysListView32",LVS_REPORT | WS_BORDER | WS_TABSTOP,33,113,254,77 + EDITTEXT IDC_EDIT_SO7_EXTRIG_RESULT,19,208,294,80,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL + PUSHBUTTON "Exit",IDCANCEL,276,295,50,14 + PUSHBUTTON "开始",IDC_BUTTON_SO7_EXTRIG_START,171,30,50,14 + GROUPBOX "外触发轴",IDC_STATIC,17,15,125,41 + PUSHBUTTON "停止",IDC_BUTTON_SO7_EXTRIG_STOP,243,30,50,14 + GROUPBOX "外触发参数",IDC_STATIC,17,58,297,144 + GROUPBOX "操作",IDC_STATIC,150,15,163,40 + PUSHBUTTON "设置",IDC_BUTTON_SO7_EXTRIG_SET_PARA,238,70,50,14 + PUSHBUTTON "读取",IDC_BUTTON_SO7_EXTRIG_GET_PARA,238,90,50,14 +END + ///////////////////////////////////////////////////////////////////////////// // @@ -1129,6 +1155,14 @@ BEGIN TOPMARGIN, 7 BOTTOMMARGIN, 277 END + + IDD_SO7_UTIL_EXTERNAL_TRIG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 326 + TOPMARGIN, 7 + BOTTOMMARGIN, 309 + END END #endif // APSTUDIO_INVOKED 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 539ef62..56ee23a 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 @@ -22,6 +22,7 @@ #include "SetSo7MotionConfig.h" #include "So7_Config_Pages.h" #include "So7_XBoxController.h" +#include "So7_Util_External_Trig.h" #include "SO7_UtilDlg.h" // CSO7_UtilDlg 对话框 @@ -1558,5 +1559,10 @@ void CSO7_UtilDlg::OnBnClickedButtonSetScaleCoefficient() //====================================================== void CSO7_UtilDlg::OnBnClickedButtonSo7ExternalTrig() { - // TODO: Add your control notification handler code here + m_KillTimer(); + CSo7_Util_External_Trig* pSo7_Util_External_Trig=new CSo7_Util_External_Trig(); + pSo7_Util_External_Trig->DoModal(); + delete pSo7_Util_External_Trig; + pSo7_Util_External_Trig=NULL; + SetTimer(1,m_ReadAxisIntervalTime,NULL); } diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_External_Trig.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_External_Trig.cpp new file mode 100644 index 0000000..6236267 --- /dev/null +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_External_Trig.cpp @@ -0,0 +1,368 @@ +// So7_Util_External_Trig.cpp : implementation file +// + +#include "stdafx.h" +#include "resource.h" +#include "..\..\..\SevenOcean\SO7_Proto.h" +#include "EditableListCtrl.h" +#include "So7_Util_External_Trig.h" +#include "afxdialogex.h" + +extern CSO7_Proto* m_pSO7_Proto; + +// CSo7_Util_External_Trig dialog + +IMPLEMENT_DYNAMIC(CSo7_Util_External_Trig, CDialog) + + CSo7_Util_External_Trig::CSo7_Util_External_Trig(CWnd* pParent /*=NULL*/) + : CDialog(CSo7_Util_External_Trig::IDD, pParent) +{ + for (int i=0;i<65535;i++) + { + m_TrigPara[i]=0; + } +} + +CSo7_Util_External_Trig::~CSo7_Util_External_Trig() +{ +} + +void CSo7_Util_External_Trig::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + DDX_Control(pDX, IDC_EDIT_SO7_EXTRIG_RESULT, m_EdMsg); + DDX_Control(pDX, IDC_LIST_SO7_EXTRIG_SPECLOCATION, m_ParaList); +} + + +BEGIN_MESSAGE_MAP(CSo7_Util_External_Trig, CDialog) + ON_BN_CLICKED(IDC_RADIO_SO7_EXTRIG_EQDIS, &CSo7_Util_External_Trig::OnBnClickedRadioSo7ExtrigEqdis) + ON_BN_CLICKED(IDC_RADIO_SO7_EXTRIG_SPECLOCATION, &CSo7_Util_External_Trig::OnBnClickedRadioSo7ExtrigSpeclocation) + ON_BN_CLICKED(IDC_BUTTON_SO7_EXTRIG_START, &CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigStart) + ON_BN_CLICKED(IDC_BUTTON_SO7_EXTRIG_STOP, &CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigStop) + ON_EN_KILLFOCUS(IDC_EDIT_SO7_EXTRIG_SPECLOCATION, &CSo7_Util_External_Trig::OnEnKillfocusEditSo7ExtrigSpeclocation) + ON_BN_CLICKED(IDC_BUTTON_SO7_EXTRIG_SET_PARA, &CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigSetPara) + ON_BN_CLICKED(IDC_BUTTON_SO7_EXTRIG_GET_PARA, &CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigGetPara) +END_MESSAGE_MAP() + + +// CSo7_Util_External_Trig message handlers + +//===================================================================== +BOOL CSo7_Util_External_Trig::OnInitDialog() +{ + CDialog::OnInitDialog(); + + // Add "About..." menu item to system menu. + + // IDM_ABOUTBOX must be in the system command range. + ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); + ASSERT(IDM_ABOUTBOX < 0xF000); + + CMenu* pSysMenu = GetSystemMenu(FALSE); + if (pSysMenu != NULL) + { + BOOL bNameValid; + CString strAboutMenu; + bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); + ASSERT(bNameValid); + if (!strAboutMenu.IsEmpty()) + { + pSysMenu->AppendMenu(MF_SEPARATOR); + pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); + } + } + m_TrigMode=E_DIS_TRIG_PULSE_EQDIS; + m_ActiveAxis=E_AXIS_X; + m_ParaNumber=1; + m_TrigPara[0]=0; + m_ReturnPara=m_TrigPara[0]; + m_UpdateCtrls(); + m_ParaListRows=0; + m_UpdateListControl(E_LISTCTRL_TITLE); + m_UpdateListControl(E_LISTCTRL_NO); + + return TRUE; // return TRUE unless you set the focus to a control +} +//===================================================================== +void CSo7_Util_External_Trig::m_UpdateListControl(int _type) +{ + switch(_type) + { + case E_LISTCTRL_TITLE: + { + RECT m_rect; + m_ParaList.GetClientRect(&m_rect); //获取list的客户区 + m_ParaList.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT); //设置list风格 + + m_ParaList.InsertColumn(0,_T("编号"),LVCFMT_LEFT, m_rect.right*1/4); + m_ParaList.InsertColumn(1,_T("触发间隔"),LVCFMT_LEFT, m_rect.right*3/4); + m_ParaListSelectedRow=0; + break; + } + case E_LISTCTRL_NO: + { + int iStartRow(0),iEndRow(0); + if(m_ParaListRows==m_ParaNumber) + { + ; + } + else if(m_ParaListRowsGetWindowTextW(csTmp); + const char* cTmp=T2A(csTmp); + m_ParaNumber = static_cast(atoi(cTmp)); + m_UpdateListControl(E_LISTCTRL_NO); +} + +//===================================================================== +void CSo7_Util_External_Trig::OnBnClickedRadioSo7ExtrigEqdis() +{ + m_TrigMode=E_DIS_TRIG_PULSE_EQDIS; + m_UpdateCtrls(1); +} +//===================================================================== +void CSo7_Util_External_Trig::OnBnClickedRadioSo7ExtrigSpeclocation() +{ + m_TrigMode=E_DIS_TRIG_PULSE_SPEC_LOCA; + m_UpdateCtrls(1); +} +//===================================================================== +void CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigStart() +{ + m_UpdatePara(TRUE); + m_pSO7_Proto->_send_cmd_SO7_CMD_TRIG_PULSE_START(); + m_pSO7_Proto->so7_motion_set_position_xyz(m_EndPos[0],m_EndPos[1],m_EndPos[2],true); +} +//===================================================================== +void CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigStop() +{ + m_pSO7_Proto->_send_cmd_SO7_CMD_TRIG_PULSE_STOP(); + m_pSO7_Proto->so7_motion_set_position_xyz(m_BeginPos[0],m_BeginPos[1],m_BeginPos[2],true); + +} + +//===================================================================================== +void CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigSetPara() +{ + m_UpdatePara(TRUE); +} +//===================================================================================== +void CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigGetPara() +{ + if (m_TrigMode==E_DIS_TRIG_PULSE_EQDIS) + { + m_ParaListSelectedRow=0; + } + else + { + m_ParaList.SelectedItem(m_ParaListSelectedRow,m_ParaListSelectedCol); + } + m_UpdatePara(FALSE); +} +//===================================================================== +void CSo7_Util_External_Trig::m_UpdateCtrls(int _type) +{ + CString csTmp(_T("")); + double dTmp(0.0); + if (_type==0) + { + if(m_ActiveAxis==E_AXIS_X) + { + ((CButton *)GetDlgItem(IDC_RADIO_SO7_EXTRIG_X))->SetCheck(true); + ((CButton *)GetDlgItem(IDC_RADIO_SO7_EXTRIG_Y))->SetCheck(false); + ((CButton *)GetDlgItem(IDC_RADIO_SO7_EXTRIG_Z))->SetCheck(false); + dTmp=m_pSO7_Proto->ScaleToMM(m_ReturnPara,m_pSO7_Proto->g_machine.s_machine_config.x_axis._scale_resolution); + } + else if (m_ActiveAxis==E_AXIS_Y) + { + ((CButton *)GetDlgItem(IDC_RADIO_SO7_EXTRIG_X))->SetCheck(false); + ((CButton *)GetDlgItem(IDC_RADIO_SO7_EXTRIG_Y))->SetCheck(true); + ((CButton *)GetDlgItem(IDC_RADIO_SO7_EXTRIG_Z))->SetCheck(false); + dTmp=m_pSO7_Proto->ScaleToMM(m_ReturnPara,m_pSO7_Proto->g_machine.s_machine_config.y_axis._scale_resolution); + } + else + { + ((CButton *)GetDlgItem(IDC_RADIO_SO7_EXTRIG_X))->SetCheck(false); + ((CButton *)GetDlgItem(IDC_RADIO_SO7_EXTRIG_Y))->SetCheck(false); + ((CButton *)GetDlgItem(IDC_RADIO_SO7_EXTRIG_Z))->SetCheck(true); + dTmp=m_pSO7_Proto->ScaleToMM(m_ReturnPara,m_pSO7_Proto->g_machine.s_machine_config.z_axis._scale_resolution); + } + } + if (m_TrigMode==E_DIS_TRIG_PULSE_EQDIS) + { + ((CEdit*)GetDlgItem(IDC_EDIT_SO7_EXTRIG_EQDIS))->EnableWindow(TRUE); + ((CEdit*)GetDlgItem(IDC_EDIT_SO7_EXTRIG_SPECLOCATION))->EnableWindow(FALSE); + ((CButton*)GetDlgItem(IDC_LIST_SO7_EXTRIG_SPECLOCATION))->EnableWindow(FALSE); + if (_type==0) + { + ((CButton *)GetDlgItem(IDC_RADIO_SO7_EXTRIG_EQDIS))->SetCheck(true); + ((CButton *)GetDlgItem(IDC_RADIO_SO7_EXTRIG_SPECLOCATION))->SetCheck(false); + csTmp.Format(_T("%.4f"),dTmp); + GetDlgItem(IDC_EDIT_SO7_EXTRIG_EQDIS)->SetWindowTextW(csTmp); + csTmp.Format(_T("%d"),m_ParaNumber); + GetDlgItem(IDC_EDIT_SO7_EXTRIG_SPECLOCATION)->SetWindowTextW(csTmp); + } + } + else + { + ((CEdit*)GetDlgItem(IDC_EDIT_SO7_EXTRIG_EQDIS))->EnableWindow(FALSE); + ((CEdit*)GetDlgItem(IDC_EDIT_SO7_EXTRIG_SPECLOCATION))->EnableWindow(TRUE); + ((CButton*)GetDlgItem(IDC_LIST_SO7_EXTRIG_SPECLOCATION))->EnableWindow(TRUE); + if (_type==0) + { + ((CButton *)GetDlgItem(IDC_RADIO_SO7_EXTRIG_EQDIS))->SetCheck(false); + ((CButton *)GetDlgItem(IDC_RADIO_SO7_EXTRIG_SPECLOCATION))->SetCheck(true); + csTmp.Format(_T("%.4f"),dTmp); + m_ParaList.SetItemText(m_ParaListSelectedRow,m_ParaListSelectedCol,csTmp); + csTmp.Format(_T("%d"),m_ParaNumber); + GetDlgItem(IDC_EDIT_SO7_EXTRIG_SPECLOCATION)->SetWindowTextW(csTmp); + } + } +} +//===================================================================== +void CSo7_Util_External_Trig::m_UpdatePara(BOOL _bSave) +{ + if (_bSave) + { + UpdateData(TRUE); + USES_CONVERSION; + CString csTmp; + const char* cTmp; + double dResolution(0.5); + double dEndPos(0.0); + double dTmp(0.0); + m_pSO7_Proto->so7_motion_get_position_xyz(m_BeginPos[0],m_BeginPos[1],m_BeginPos[2]); + + if (((CButton *)GetDlgItem(IDC_RADIO_SO7_EXTRIG_X))->GetCheck()) + { + m_ActiveAxis=E_AXIS_X; + dResolution=m_pSO7_Proto->g_machine.s_machine_config.x_axis._scale_resolution; + } + else if (((CButton *)GetDlgItem(IDC_RADIO_SO7_EXTRIG_Y))->GetCheck()) + { + m_ActiveAxis=E_AXIS_Y; + dResolution=m_pSO7_Proto->g_machine.s_machine_config.y_axis._scale_resolution; + } + else if (((CButton *)GetDlgItem(IDC_RADIO_SO7_EXTRIG_Z))->GetCheck()) + { + m_ActiveAxis=E_AXIS_Z; + dResolution=m_pSO7_Proto->g_machine.s_machine_config.z_axis._scale_resolution; + } + short iParaNumber(0); + if (m_TrigMode==E_DIS_TRIG_PULSE_EQDIS) + { + ((CEdit*)GetDlgItem(IDC_EDIT_SO7_EXTRIG_EQDIS))->GetWindowTextW(csTmp); + cTmp=T2A(csTmp); + dTmp=atof(cTmp); + m_TrigPara[0] = static_cast(m_pSO7_Proto->MMtoScale(dTmp,dResolution)); + iParaNumber=1; + dEndPos=10.0; + } + else + { + iParaNumber=m_ParaNumber; + int iCol=1; + for (int iRow=0;iRow(m_pSO7_Proto->MMtoScale(dTmp,dResolution)); + } + } + if (m_ActiveAxis==E_AXIS_X) + { + m_EndPos[0]=m_BeginPos[0]+dEndPos; + m_EndPos[1]=m_BeginPos[1]; + m_EndPos[2]=m_BeginPos[2]; + } + else if (m_ActiveAxis==E_AXIS_Y) + { + m_EndPos[1]=m_BeginPos[1]+dEndPos; + m_EndPos[0]=m_BeginPos[0]; + m_EndPos[2]=m_BeginPos[2]; + } + else + { + m_EndPos[2]=m_BeginPos[2]+dEndPos; + m_EndPos[0]=m_BeginPos[0]; + m_EndPos[1]=m_BeginPos[1]; + } + m_pSO7_Proto->so7_motion_set_trig_para(m_ActiveAxis,m_TrigMode,iParaNumber,m_TrigPara); + m_csMsg.Format(_T("[Write Trig Para]:R TotalNo=%d"),m_pSO7_Proto->g_machine.TrigPara.TrigTotalNo); + OutputWithScroll(m_csMsg,m_EdMsg); + + } + else + { + m_pSO7_Proto->so7_motion_get_trig_para(static_cast(m_ParaListSelectedRow),m_ActiveAxis,m_TrigMode,m_ParaNumber,m_ReturnPara); + m_csMsg.Format(_T("[Read Trig Para]:R Axis=%d,Method=%d,TotalNo=%d,CurIndex=%d,Para[%d]=%d."),m_pSO7_Proto->g_machine.TrigPara.TrigPulseActiveAxis, + m_pSO7_Proto->g_machine.TrigPara.TrigPulseMethod,m_pSO7_Proto->g_machine.TrigPara.TrigTotalNo, + m_pSO7_Proto->g_machine.TrigPara.TrigCurIndex,m_pSO7_Proto->g_machine.TrigPara.TrigReadIndex, + m_pSO7_Proto->g_machine.TrigPara.TrigReadPara); + OutputWithScroll(m_csMsg,m_EdMsg); + } +} +//===================================================================================== +//Print message on edit control +void CSo7_Util_External_Trig::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/So7_Util_External_Trig.h b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_External_Trig.h new file mode 100644 index 0000000..fbdf8f7 --- /dev/null +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_External_Trig.h @@ -0,0 +1,53 @@ +#pragma once + + +// CSo7_Util_External_Trig dialog +enum E_UPDATE_LIST_CONTROL_TYPE +{ + E_LISTCTRL_TITLE, + E_LISTCTRL_NO, + E_LISTCTRL_CONTENT, + E_LISTCTRL_TOTAL +}; +class CSo7_Util_External_Trig : public CDialog +{ + DECLARE_DYNAMIC(CSo7_Util_External_Trig) + +public: + CSo7_Util_External_Trig(CWnd* pParent = NULL); // standard constructor + virtual ~CSo7_Util_External_Trig(); + +// Dialog Data + enum { IDD = IDD_SO7_UTIL_EXTERNAL_TRIG }; + +protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + virtual BOOL OnInitDialog(); + DECLARE_MESSAGE_MAP() +protected: + void m_UpdatePara(BOOL _bSave=TRUE); + void m_UpdateCtrls(int _type=0); + char m_TrigMode; + char m_ActiveAxis; + short m_ParaNumber; + short m_TrigPara[65535]; + CString m_csMsg; + CEdit m_EdMsg; + void OutputWithScroll(const CString &strNewText,CEdit &edtOutput); + CEditableListCtrl m_ParaList; + void m_UpdateListControl(int _type); + int m_ParaListRows; + int m_ParaListSelectedRow; + int m_ParaListSelectedCol; + short m_ReturnPara; + double m_BeginPos[3]; + double m_EndPos[3]; +public: + afx_msg void OnBnClickedRadioSo7ExtrigEqdis(); + afx_msg void OnBnClickedRadioSo7ExtrigSpeclocation(); + afx_msg void OnBnClickedButtonSo7ExtrigStart(); + afx_msg void OnBnClickedButtonSo7ExtrigStop(); + afx_msg void OnEnKillfocusEditSo7ExtrigSpeclocation(); + afx_msg void OnBnClickedButtonSo7ExtrigSetPara(); + afx_msg void OnBnClickedButtonSo7ExtrigGetPara(); +}; 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 e40da36..ac6818a 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 @@ -364,6 +364,7 @@ + @@ -453,6 +454,7 @@ + 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 7a57594..aee1e96 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 @@ -217,6 +217,7 @@ Sources Files + @@ -468,6 +469,7 @@ 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 8965697..0d7f449 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h @@ -57,6 +57,7 @@ #define IDD_DIALOG_TESA_STAR_E 188 #define IDD_DIALOG_KEYENCE_LKG5000_ETHERNET 190 #define IDD_SO7_UTIL_USBCTLR 191 +#define IDD_SO7_UTIL_EXTERNAL_TRIG 192 #define IDC_BUTTON_START_MACHINE 1000 #define IDC_BUTTON_START_MACHINE3 1001 #define IDC_BUTTON_START_POLL_58 1002 @@ -346,6 +347,7 @@ #define IDC_EDIT_SO7CONFIG_ZOOM_FASTSPEED 1274 #define IDC_EDIT_IMAGEDLL_2LASER_TOPZ1 1274 #define IDC_EDIT_SO7_PROGRAM_Z_MOVETO 1274 +#define IDC_EDIT_SO7_EXTRIG_SPECLOCATION 1274 #define IDC_EDIT_FRESHSPEED_X2 1275 #define IDC_EDIT_IMAGEDLL_2LASER_TOPZ2 1275 #define IDC_EDIT_MANUAL_MACHINE_MSG 1275 @@ -654,11 +656,15 @@ #define IDC_BUTTON_SO7_MOTION_CONFIG_OK 1542 #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_STOP_SAMPLE_SCURVE 1543 #define IDC_BTN_KEYENCE_LKG5000_ETHERNET_READOUT2 1543 #define IDC_BUTTON_SO7_MOTION_CONFIG_OK2 1543 #define IDC_BUTTON_SO7_MOTION_CONFIG_SET_DEFAULT 1543 +#define IDC_BUTTON_SO7_EXTRIG_SET_PARA 1543 #define IDC_BTN_CONFIGURE_MOVEVOUT 1544 +#define IDC_BUTTON_SO7_EXTRIG_STOP3 1544 +#define IDC_BUTTON_SO7_EXTRIG_GET_PARA 1544 #define IDC_BUTTON_STOP_SCAN_KEYENCE_LK_GLASER 1545 #define IDC_BUTTON_SET_TRIGGER 1546 #define IDC_BUTTON_IMAGEDLL_GET_SCAN_LASER_DATA 1547 @@ -733,7 +739,6 @@ #define IDC_RADIO_TEST_IMAGE_DLL3 1598 #define IDC_BUTTON_SO7_CNC_PROGRAM 1599 #define IDC_BUTTON_PROGRAM_SET_ZERO_Z 1600 -#define IDC_BUTTON_SO7_CNC_PROGRAM2 1600 #define IDC_BUTTON_SO7_EXTERNAL_TRIG 1600 #define IDC_BUTTON_IMAGEDLL_STOP_SCAN_LASER 1601 #define IDC_STATIC_TC4000_PICTURE 1602 @@ -889,6 +894,7 @@ #define IDC_BUTTON_SO7_MOTION_CONFIG_CANCEL 1794 #define IDC_BTN_KEYENCE_LKG5000_ETHERNET_CONNECT1 1794 #define IDC_BUTTON_STIL_LASER_INIT 1794 +#define IDC_BUTTON_SO7_EXTRIG_START 1794 #define IDC_COMBO_RWDATA_ADDR 1795 #define IDC_BTN_KEYENCE_LKG5000_ETHERNET_CONNECT2 1795 #define IDC_BUTTON_STIL_LASER_SET_MODE 1795 @@ -896,6 +902,7 @@ #define IDC_COMBO_OUTPORT_NUMBER 1796 #define IDC_EDIT4 1797 #define IDC_EDIT_MOTION_SPEEDZ 1797 +#define IDC_EDIT_SO7_EXTRIG_RESULT 1797 #define IDC_EDIT_MOTION_SPEEDX 1798 #define IDC_BUTTON_SCAN_KEYENCE_LK_H_LASER 1799 #define IDC_BUTTON_STOP_SCAN_KEYENCE_LK_H_LASER 1800 @@ -908,6 +915,7 @@ #define IDC_RADIO_READ_OUTPUT_PORT 1805 #define IDC_RADIO_SO7_MOVE_SPEED_GEAR2 1805 #define IDC_RADIO_ART_PCI8622_MODE_NPTSEQ 1805 +#define IDC_RADIO_SO7_EXTRIG_SPECLOCATION 1805 #define IDC_RADIO_MACHINE_TESASTARE 1806 #define IDC_RADIO_READ_OUTPUT_PORT2 1806 #define IDC_EDIT_MOVETO_DEG 1807 @@ -1003,6 +1011,12 @@ #define IDC_EDIT_STIL_MESSAGE 1862 #define IDC_BUTTON_STIL_CLEAR_LOG 1863 #define IDC_BUTTON_S07_SET_IO_PURPOSE 1864 +#define IDC_RADIO_SO7_EXTRIG_EQDIS 1865 +#define IDC_RADIO_SO7_EXTRIG_X 1866 +#define IDC_RADIO_SO7_EXTRIG_Y 1867 +#define IDC_RADIO_SO7_EXTRIG_Z 1868 +#define IDC_EDIT_SO7_EXTRIG_EQDIS 1869 +#define IDC_LIST_SO7_EXTRIG_SPECLOCATION 1870 #define IDC_BUTTON_DIY_EXIT_BUTTON 32740 #define ID_EDIT_SO7_CONFIG_MOTION 32741 @@ -1010,9 +1024,9 @@ // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 191 +#define _APS_NEXT_RESOURCE_VALUE 193 #define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 1865 +#define _APS_NEXT_CONTROL_VALUE 1872 #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 b5c7e57..44de267 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