From 53b685cd6ddea69e748a1a9f1a49e453e9ea33a6 Mon Sep 17 00:00:00 2001 From: TAO Cheng Date: Tue, 20 May 2014 22:24:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=A7=A6=E5=8F=91=E8=84=89?= =?UTF-8?q?=E5=86=B2=E6=B5=8B=E8=AF=95=E5=8A=9F=E8=83=BD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Base/Interfac/Msi/Hsi/SevenOcean/CMD_H.h | 21 ++- .../Interfac/Msi/Hsi/SevenOcean/SO7_Proto.cpp | 146 ++++++++++++++++++ .../Interfac/Msi/Hsi/SevenOcean/SO7_Proto.h | 31 +++- .../Tools/UsbUtility/Debug/UtilityDebug.Log | 4 + .../Hsi/Tools/UsbUtility/UsbUtil/Mv_Util.rc | 15 +- .../Tools/UsbUtility/UsbUtil/SO7_UtilDlg.cpp | 99 ++++++------ .../Tools/UsbUtility/UsbUtil/SO7_UtilDlg.h | 6 +- .../Hsi/Tools/UsbUtility/UsbUtil/resource.h | 16 +- .../Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo | Bin 135680 -> 135680 bytes 9 files changed, 276 insertions(+), 62 deletions(-) diff --git a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/CMD_H.h b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/CMD_H.h index 56f4d22..cb0fc36 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/CMD_H.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/CMD_H.h @@ -345,10 +345,14 @@ enum PRO_DATA CT_READ_SEQ_NUMBER, CT_WRITE_SEQ_NUMBER, + + CT_READ_TRIG_PULSE_PARA, + CT_WRITE_TRIG_PULSE_PARA, + CT_START_TRIG_PULSE, + CT_STOP_TRIG_PULSE, CT_DATA_TOTAL=255 }; - enum EHOME_MODE { CT_HOME_XYZ=1, @@ -361,7 +365,6 @@ enum EHOME_MODE CT_HOME_TOATAL=255 }; - enum E_GET_INTERRUPT_MSG_METHOD { E_GET_INTERRUPT_MSG_INTERRUPT=0, @@ -380,5 +383,17 @@ enum E_INTERRUPT_MSG EMSG_PROBE_1, EMSG_FINISHED_TYPE_TOATAL=20 }; - +enum E_DIS_TRIG_PULSE_METHOD +{ + E_DIS_TRIG_PULSE_EQDIS=0, + E_DIS_TRIG_PULSE_SPEC_LOCA, + E_DIS_TRIG_PULSE_TOTAL=255 +}; +enum E_ACTIVE_AXIS +{ + E_ACTIVE_AXIS_NONE=0, + E_ACTIVE_AXIS_X, + E_ACTIVE_AXIS_Y, + E_ACTIVE_AXIS_Z +}; #endif \ No newline at end of file diff --git a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.cpp b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.cpp index 99afd18..eb30386 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.cpp @@ -246,6 +246,12 @@ void CSO7_Proto::_process_rcv_transfer_data(int iEP) case CT_READ_SEQ_NUMBER: _process_SO7_CMD_GET_SEQ_NUMBER(); break; + case CT_READ_TRIG_PULSE_PARA: + _process_SO7_CMD_READ_TRIG_PULSE_PARA(); + break; + case CT_WRITE_TRIG_PULSE_PARA: + _process_SO7_CMD_WRITE_TRIG_PULSE_PARA(); + break; default: TRACE1("_process_rcv_transfer_data() : Unknown ep_buff[EP_02_CMD_IDX]._save_send_cmd : %X \r\n", ep_buff[EP_02_CMD_IDX]._save_send_cmd); @@ -5751,6 +5757,106 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_GET_SEQ_NUMBER() ReleaseMutex(g_hEP02_Serial_Mutex); return SSI_STATUS_MOTION_NORMAL; } + +//============================================================== +SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_READ_TRIG_PULSE_PARA(short ParaIndex) +{ + WaitForSingleObject(g_hEP02_Serial_Mutex, INFINITE); + memset(ep_buff[EP_02_CMD_IDX]._buffer, 0x00, MAX_BUFF_SIZE); + char cBuff(0); + + *(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; + *(ep_buff[EP_02_CMD_IDX]._buffer+2) = cBuff; + cBuff = ParaIndex & 0x0ff; + *(ep_buff[EP_02_CMD_IDX]._buffer+3) = cBuff; + + ep_buff[EP_02_CMD_IDX]._size = 0x04; + ep_buff[EP_82_DATA_IDX]._size = 0x08; + + g_hEP02_Thread_State=THREAD_RUNNING_STATE1; + g_hEP8x_Thread_State=THREAD_RUNNING_STATE2; + _do_single_threaded_usb_comm(EP_02_CMD_IDX); + ReleaseMutex(g_hEP02_Serial_Mutex); + return SSI_STATUS_MOTION_NORMAL; +} +//============================================================== +SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_WRITE_TRIG_PULSE_PARA(char ActiveAxis,char TrigMode,short StartIndex,short ParaNumber,short* Para) +{ + WaitForSingleObject(g_hEP02_Serial_Mutex, INFINITE); + memset(ep_buff[EP_02_CMD_IDX]._buffer, 0x00, MAX_BUFF_SIZE); + char cBuff(0); + *(ep_buff[EP_02_CMD_IDX]._buffer) = CT_DATA; + *(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_WRITE_TRIG_PULSE_PARA; + *(ep_buff[EP_02_CMD_IDX]._buffer+2) = ActiveAxis; + *(ep_buff[EP_02_CMD_IDX]._buffer+3) = TrigMode; + cBuff = (StartIndex>>8) & 0x0ff; + *(ep_buff[EP_02_CMD_IDX]._buffer+4) = cBuff; + cBuff = StartIndex & 0x0ff; + *(ep_buff[EP_02_CMD_IDX]._buffer+5) = cBuff; + cBuff = (ParaNumber>>8) & 0x0ff; + *(ep_buff[EP_02_CMD_IDX]._buffer+6) = cBuff; + cBuff = ParaNumber & 0x0ff; + *(ep_buff[EP_02_CMD_IDX]._buffer+7) = cBuff; + int j=8; + for (short i=0;i>8) & 0x0ff; + *(ep_buff[EP_02_CMD_IDX]._buffer+j) = cBuff; + j++; + cBuff = Para[i] & 0x0ff; + *(ep_buff[EP_02_CMD_IDX]._buffer+j) = cBuff; + j++; + } + ep_buff[EP_02_CMD_IDX]._size = j; + ep_buff[EP_82_DATA_IDX]._size = 0x02; + + g_hEP02_Thread_State=THREAD_RUNNING_STATE1; + g_hEP8x_Thread_State=THREAD_RUNNING_STATE2; + _do_single_threaded_usb_comm(EP_02_CMD_IDX); + ReleaseMutex(g_hEP02_Serial_Mutex); + return SSI_STATUS_MOTION_NORMAL; +} +//============================================================== +SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_TRIG_PULSE_START() +{ + WaitForSingleObject(g_hEP02_Serial_Mutex, INFINITE); + memset(ep_buff[EP_02_CMD_IDX]._buffer, 0x00, MAX_BUFF_SIZE); + + *(ep_buff[EP_02_CMD_IDX]._buffer) = CT_DATA; + *(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_START_TRIG_PULSE; + *(ep_buff[EP_02_CMD_IDX]._buffer+2)=0; + + ep_buff[EP_02_CMD_IDX]._size = 0x03; + ep_buff[EP_81_DATA_IDX]._size = 0x00; + + g_hEP02_Thread_State=THREAD_RUNNING_STATE2; + _do_single_threaded_usb_comm(EP_02_CMD_IDX); + ReleaseMutex(g_hEP02_Serial_Mutex); + return SSI_STATUS_MOTION_NORMAL; +} +//============================================================== +SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_TRIG_PULSE_STOP() +{ + WaitForSingleObject(g_hEP02_Serial_Mutex, INFINITE); + memset(ep_buff[EP_02_CMD_IDX]._buffer, 0x00, MAX_BUFF_SIZE); + + *(ep_buff[EP_02_CMD_IDX]._buffer) = CT_DATA; + *(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_STOP_TRIG_PULSE; + *(ep_buff[EP_02_CMD_IDX]._buffer+2)=0; + + ep_buff[EP_02_CMD_IDX]._size = 0x03; + ep_buff[EP_81_DATA_IDX]._size = 0x00; + + g_hEP02_Thread_State=THREAD_RUNNING_STATE2; + _do_single_threaded_usb_comm(EP_02_CMD_IDX); + ReleaseMutex(g_hEP02_Serial_Mutex); + return SSI_STATUS_MOTION_NORMAL; +} + + + //============================================================== SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_MOVE_X() { @@ -6104,4 +6210,44 @@ SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_GET_SEQ_NUMBER() { g_machine.SEQ_NUMBER=*(ep_buff[EP_82_DATA_IDX]._buffer); return SSI_STATUS_MOTION_NORMAL; +} +//============================================================== +SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_READ_TRIG_PULSE_PARA() +{ + int index(0); + g_machine.TrigPara.TrigPulseActiveAxis=*(ep_buff[EP_82_DATA_IDX]._buffer+index); + index++; + g_machine.TrigPara.TrigPulseMethod=*(ep_buff[EP_82_DATA_IDX]._buffer+index); + index++; + g_machine.TrigPara.TrigTotalNo._char_[1]=*(ep_buff[EP_82_DATA_IDX]._buffer+index); + index++; + g_machine.TrigPara.TrigTotalNo._char_[0]=*(ep_buff[EP_82_DATA_IDX]._buffer+index); + g_machine.TrigPara.TrigTotalNo._char_[2]=0; + g_machine.TrigPara.TrigTotalNo._char_[3]=0; + index++; + g_machine.TrigPara.TrigCurIndex._char_[1]=*(ep_buff[EP_82_DATA_IDX]._buffer+index); + index++; + g_machine.TrigPara.TrigCurIndex._char_[0]=*(ep_buff[EP_82_DATA_IDX]._buffer+index); + g_machine.TrigPara.TrigCurIndex._char_[2]=0; + g_machine.TrigPara.TrigCurIndex._char_[3]=0; + index++; + g_machine.TrigPara.TrigCurPara._char_[1]=*(ep_buff[EP_82_DATA_IDX]._buffer+index); + index++; + g_machine.TrigPara.TrigCurPara._char_[0]=*(ep_buff[EP_82_DATA_IDX]._buffer+index); + g_machine.TrigPara.TrigCurPara._char_[2]=0; + g_machine.TrigPara.TrigCurPara._char_[3]=0; + index++; + return SSI_STATUS_MOTION_NORMAL; +} +//============================================================== +SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_WRITE_TRIG_PULSE_PARA() +{ + int index(0); + g_machine.TrigPara.TrigTotalNo._char_[1]=*(ep_buff[EP_82_DATA_IDX]._buffer+index); + index++; + g_machine.TrigPara.TrigTotalNo._char_[0]=*(ep_buff[EP_82_DATA_IDX]._buffer+index); + g_machine.TrigPara.TrigTotalNo._char_[2]=0; + g_machine.TrigPara.TrigTotalNo._char_[3]=0; + index++; + return SSI_STATUS_MOTION_NORMAL; } \ No newline at end of file diff --git a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.h b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.h index 4b85c7e..c0c0cb8 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.h @@ -221,6 +221,28 @@ typedef struct s_so7_xyzzm double dFromMM; double dToMM; } SO7AXISMOVE; + +typedef struct s_so7_trigger_pulse +{ + char TrigPulseActiveAxis; + char TrigPulseMethod; + union + { + long _long_; + char _char_[4]; + }TrigTotalNo; + union + { + long _long_; + char _char_[4]; + }TrigCurIndex; + union + { + long _long_; + char _char_[4]; + }TrigCurPara; +} SO7TRIGPULSE; + //-------------------------------------------------------------------- // //-------------------------------------------------------------------- @@ -285,7 +307,7 @@ struct struct_so7_machine struct s_so7_axis y; struct s_so7_axis z; struct s_so7_axis zm; - + struct s_so7_trigger_pulse TrigPara; }; #define SEVENOCEAN_VID 0x4532 @@ -517,6 +539,10 @@ public: SSI_STATUS_MOTION _send_cmd_SO7_CMD_SET_CONSTANT_SPEED(int iSpeed,char axis_type,char xyz_gear); SSI_STATUS_MOTION _send_cmd_SO7_CMD_SET_SEQ_NUMBER(); SSI_STATUS_MOTION _send_cmd_SO7_CMD_GET_SEQ_NUMBER(); + SSI_STATUS_MOTION _send_cmd_SO7_CMD_READ_TRIG_PULSE_PARA(short ParaIndex); + SSI_STATUS_MOTION _send_cmd_SO7_CMD_WRITE_TRIG_PULSE_PARA(char ActiveAxis,char TrigMode,short StartIndex,short ParaNumber,short* Para); + SSI_STATUS_MOTION _send_cmd_SO7_CMD_TRIG_PULSE_START(); + SSI_STATUS_MOTION _send_cmd_SO7_CMD_TRIG_PULSE_STOP(); static SSI_STATUS_MOTION _process_SO7_CMD_MOVE_X(); @@ -556,7 +582,8 @@ public: static SSI_STATUS_MOTION _process_SO7_CMD_READ_FIRMWARE_VERSION_INFO(); static SSI_STATUS_MOTION _process_SO7_CMD_GET_INTERRUPT_MSG(BYTE Type); static SSI_STATUS_MOTION _process_SO7_CMD_GET_SEQ_NUMBER(); - + static SSI_STATUS_MOTION _process_SO7_CMD_READ_TRIG_PULSE_PARA(); + static SSI_STATUS_MOTION _process_SO7_CMD_WRITE_TRIG_PULSE_PARA(); }; #endif 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 c4acbf2..ca7d1ee 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/UtilityDebug.Log +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/UtilityDebug.Log @@ -4566,3 +4566,7 @@ 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/Mv_Util.rc b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Mv_Util.rc index ab1082c..77b2d4a 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 @@ -38,11 +38,11 @@ BEGIN CONTROL "输出口 (J3)",IDC_RADIO_READ_OUTPUT_PORT2,"Button",BS_AUTORADIOBUTTON,315,169,55,10 EDITTEXT IDC_EDIT_STATUS,247,270,199,117,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL GROUPBOX "CMD",IDC_STATIC,102,12,193,116 - CONTROL "Rel",IDC_RADIO_RELATIVE,"Button",BS_AUTORADIOBUTTON | WS_GROUP,139,144,27,8 - CONTROL "Abs",IDC_RADIO_ABSOLUTE,"Button",BS_AUTORADIOBUTTON,140,158,28,8 - EDITTEXT IDC_EDIT_POSITION,167,149,36,14,ES_AUTOHSCROLL - PUSHBUTTON "Go",IDC_BUTTON_GO,209,149,34,15 - PUSHBUTTON "Home",IDC_BUTTON_HOME,261,149,34,15 + CONTROL "等间距",IDC_RADIO_SO7_TRIGPULSE_EQDIS,"Button",BS_AUTORADIOBUTTON | WS_GROUP,140,142,41,8 + CONTROL "指定位移",IDC_RADIO_SO7_TRIGPULSE_SPECLOCATION,"Button",BS_AUTORADIOBUTTON,140,158,42,8 + EDITTEXT IDC_EDIT_SO7_TRIGPULSE_DIS,184,138,36,14,ES_AUTOHSCROLL + PUSHBUTTON "Start",IDC_BUTTON_SO7_TRIGPULSE_START,259,138,34,15 + PUSHBUTTON "Stop",IDC_BUTTON_SO7_TRIGPULSE_STOP,259,156,34,15 CONTROL "连续读取",IDC_CHECK_CONTINUOUS_READ_IO_STATUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,380,144,47,10 PUSHBUTTON "读取IO状态",IDC_BUTTON_SO7_READ_IN_PORT_STATUS,378,156,61,14 COMBOBOX IDC_COMBO_OUTPORT_NUMBER,314,189,29,34,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP @@ -161,7 +161,7 @@ BEGIN PUSHBUTTON "◢",IDC_BUTTON_SO7_MOVE_XR_YB,122,233,25,12 PUSHBUTTON "◤",IDC_BUTTON_SO7_MOVE_XL_YF,71,207,25,12 PUSHBUTTON "◣",IDC_BUTTON_SO7_MOVE_XL_YB,71,233,25,12 - GROUPBOX "Rotary",IDC_STATIC,135,129,163,44 + GROUPBOX "外触发",IDC_STATIC,135,129,163,44 CONTROL "ON",IDC_CHECK_SO7_TOP_LIGHT_ON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,366,28,26,10 CONTROL "ON",IDC_CHECK_SO7_BOTTOM_LIGHT_ON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,366,42,26,10 CONTROL "ON",IDC_CHECK_SO7_RING_LIGHT_ON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,366,56,26,10 @@ -175,6 +175,9 @@ BEGIN LTEXT "SEQ NO.",IDC_STATIC,232,69,29,8 PUSHBUTTON "Set SEQ NO.",IDC_BUTTON_SO7_SET_SEQ_NUMBER,230,108,60,15,BS_MULTILINE PUSHBUTTON "Set Ver NO.",IDC_BUTTON_SO7_SET_VER_NUMBER,230,45,60,15,BS_MULTILINE + PUSHBUTTON "Write",IDC_BUTTON_SO7_TRIGPULSE_WRITE_PARA,224,138,34,15 + PUSHBUTTON "Read",IDC_BUTTON_SO7_TRIGPULSE_READ_PARA,224,156,34,15 + EDITTEXT IDC_EDIT_SO7_TRIGPULSE_DIS2,184,155,36,14,ES_AUTOHSCROLL END IDD_SO7_UTIL_SEND_PARAMETER DIALOGEX 0, 0, 750, 480 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 0b45695..83dea12 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 @@ -66,7 +66,7 @@ void CSO7_UtilDlg::DoDataExchange(CDataExchange* pDX) DDX_Text(pDX, IDC_EDIT_X_SCALE_COEFFICIENT, m_cs_XScaleCoeff); DDX_Text(pDX, IDC_EDIT_Y_SCALE_COEFFICIENT, m_cs_YScaleCoeff); DDX_Text(pDX, IDC_EDIT_Z_SCALE_COEFFICIENT, m_cs_ZScaleCoeff); - DDX_Text(pDX, IDC_EDIT_POSITION, m_Rotary_Edit_Position); + DDX_Text(pDX, IDC_EDIT_SO7_TRIGPULSE_DIS, m_Rotary_Edit_Position); DDX_Control(pDX, IDC_BUTTON_SO7_MOVE_X_LEFT, m_Button_MoveX_Left); DDX_Control(pDX, IDC_BUTTON_SO7_MOVE_X_RIGHT, m_Button_MoveX_Right); @@ -126,8 +126,8 @@ BEGIN_MESSAGE_MAP(CSO7_UtilDlg, CDialog) ON_BN_CLICKED(IDC_RADIO_READ_INPUT_PORT, &CSO7_UtilDlg::OnBnClickedRadioReadInputPort) ON_BN_CLICKED(IDC_RADIO_READ_OUTPUT_PORT, &CSO7_UtilDlg::OnBnClickedRadioReadOutputPort) ON_BN_CLICKED(IDC_BUTTON_MOTION_PARAMETER, &CSO7_UtilDlg::OnBnClickedButtonMotionParameter) - ON_BN_CLICKED(IDC_BUTTON_HOME, &CSO7_UtilDlg::OnBnClickedButtonHome) - ON_BN_CLICKED(IDC_BUTTON_GO, &CSO7_UtilDlg::OnBnClickedButtonGo) + ON_BN_CLICKED(IDC_BUTTON_SO7_TRIGPULSE_STOP, &CSO7_UtilDlg::OnBnClickedButtonSo7TrigpulseStop) + ON_BN_CLICKED(IDC_BUTTON_SO7_TRIGPULSE_START, &CSO7_UtilDlg::OnBnClickedButtonSo7TrigpulseStart) ON_BN_CLICKED(IDC_CHECK_SO7_TOP_LIGHT_ON, &CSO7_UtilDlg::OnBnClickedCheckSo7TopLightOn) ON_BN_CLICKED(IDC_CHECK_SO7_BOTTOM_LIGHT_ON, &CSO7_UtilDlg::OnBnClickedCheckSo7BottomLightOn) ON_BN_CLICKED(IDC_CHECK_SO7_RING_LIGHT_ON, &CSO7_UtilDlg::OnBnClickedCheckSo7RingLightOn) @@ -140,6 +140,8 @@ BEGIN_MESSAGE_MAP(CSO7_UtilDlg, CDialog) ON_BN_CLICKED(IDC_BUTTON_SO7_SET_SEQ_NUMBER, &CSO7_UtilDlg::OnBnClickedButtonSo7SetSeqNumber) ON_BN_CLICKED(IDC_BUTTON_SO7_SET_VER_NUMBER, &CSO7_UtilDlg::OnBnClickedButtonSo7SetVerNumber) ON_BN_CLICKED(IDC_RADIO_READ_LIMIT_SWITCH, &CSO7_UtilDlg::OnBnClickedRadioReadLimitSwitch) + ON_BN_CLICKED(IDC_BUTTON_SO7_TRIGPULSE_WRITE_PARA, &CSO7_UtilDlg::OnBnClickedButtonSo7TrigpulseWritePara) + ON_BN_CLICKED(IDC_BUTTON_SO7_TRIGPULSE_READ_PARA, &CSO7_UtilDlg::OnBnClickedButtonSo7TrigpulseReadPara) END_MESSAGE_MAP() @@ -188,8 +190,8 @@ BOOL CSO7_UtilDlg::OnInitDialog() m_ReadIOStatusAddr=ESO7_CONTROLLER_LIMIT_SWITCH_ADDR; UpdateIOAddrCaption(); - ((CButton *)GetDlgItem(IDC_RADIO_RELATIVE))->SetCheck(true); - ((CButton *)GetDlgItem(IDC_RADIO_ABSOLUTE))->SetCheck(false); + ((CButton *)GetDlgItem(IDC_RADIO_SO7_TRIGPULSE_EQDIS))->SetCheck(true); + ((CButton *)GetDlgItem(IDC_RADIO_SO7_TRIGPULSE_SPECLOCATION))->SetCheck(false); CString csTmp=_T(""); ((CComboBox *)GetDlgItem(IDC_COMBO_OUTPORT_NUMBER))->ResetContent(); @@ -348,8 +350,8 @@ void CSO7_UtilDlg::UpdateCtrlsStatus(bool _bEnable) GetDlgItem(IDC_CHECK_SO7_COAXIAL_LIGHT_ON)->EnableWindow(_bEnable); GetDlgItem(IDC_CHECK_SO7_SPARE_LIGHT_ON)->EnableWindow(_bEnable); - GetDlgItem(IDC_BUTTON_HOME)->EnableWindow(_bEnable); - GetDlgItem(IDC_BUTTON_GO)->EnableWindow(_bEnable); + GetDlgItem(IDC_BUTTON_SO7_TRIGPULSE_STOP)->EnableWindow(_bEnable); + GetDlgItem(IDC_BUTTON_SO7_TRIGPULSE_START)->EnableWindow(_bEnable); GetDlgItem(IDC_EDIT_SET_SEQ_NO)->EnableWindow(_bEnable); GetDlgItem(IDC_BUTTON_SO7_GET_SEQ_NUMBER)->EnableWindow(_bEnable); GetDlgItem(IDC_BUTTON_SO7_SET_SEQ_NUMBER)->EnableWindow(_bEnable); @@ -1510,49 +1512,60 @@ void CSO7_UtilDlg::OnBnClickedButtonSo7CncProgram() } SetTimer(1,m_ReadAxisIntervalTime,NULL); } -//================================================= -// Move one revolution 2**23 -// When the rotary 停止, take the curr pos - ref pos. -// g_machine.z._pos_fixed._char_[3] -// -void CSO7_UtilDlg::OnBnClickedButtonHome() +//====================================================== +void CSO7_UtilDlg::OnBnClickedButtonSo7TrigpulseStart() { - long lMax = 90000; // This value is try and error. there must be a mapping I do not understand. - m_pSO7_Proto->g_machine.x._pos_fixed._long_ = 0; - m_pSO7_Proto->g_machine.y._pos_fixed._long_ = 0; - m_pSO7_Proto->g_machine.z._pos_fixed._long_ = lMax; - m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_TO_POS_XYZ(CT_MOVETOXYZ); - Sleep(200); - m_pSO7_Proto->_send_cmd_SO7_CMD_READ_ZSIGNAL_POS_Z(); - m_ZsignalPosZ=m_pSO7_Proto->g_machine.z._ZSignal_pos._long_; - m_pSO7_Proto->_send_cmd_SO7_CMD_READ_AXIS_XYZ(); - double lZ = m_pSO7_Proto->g_machine.z._scale_pos._long_; - lZ; - - // set the home position. - // show the Z position in Angle - // show the signal position in Angle + m_pSO7_Proto->_send_cmd_SO7_CMD_TRIG_PULSE_START(); } - -//================================================ -// Change Angle to scale -// -void CSO7_UtilDlg::OnBnClickedButtonGo() +//====================================================== +void CSO7_UtilDlg::OnBnClickedButtonSo7TrigpulseStop() +{ + m_pSO7_Proto->_send_cmd_SO7_CMD_TRIG_PULSE_STOP(); +} +//====================================================== +void CSO7_UtilDlg::OnBnClickedButtonSo7TrigpulseWritePara() { UpdateData(TRUE); USES_CONVERSION; - const char* cMove_to_Rotary=T2A(m_Rotary_Edit_Position); - double dPos = atof(cMove_to_Rotary); - if (((CButton *)GetDlgItem(IDC_RADIO_RELATIVE))->GetCheck()) + short TrigDis[2]={0}; + char ActiveAxis(E_ACTIVE_AXIS_X); + char TrigMode(E_DIS_TRIG_PULSE_EQDIS); + short StartIndex(0); + short ParaNumber(0); + CString csText(_T("")); + GetDlgItem(IDC_EDIT_SO7_TRIGPULSE_DIS)->GetWindowText(csText); + const char* cTxt=T2A(csText); + TrigDis[0]= static_cast(atoi(cTxt)); + GetDlgItem(IDC_EDIT_SO7_TRIGPULSE_DIS2)->GetWindowText(csText); + cTxt=T2A(csText); + TrigDis[1] = static_cast(atoi(cTxt)); + + if (((CButton *)GetDlgItem(IDC_RADIO_SO7_TRIGPULSE_SPECLOCATION))->GetCheck()) { - // m_pSO7_Proto->g_machine.z._pos_fixed._long_ = atoi(cMove_to_Z) - (m_pSO7_Proto->g_machine.z._scale_pos._long_-m_pSO7_Proto->g_machine.z._lSet_Zero_Pos); - dPos; - } else + TrigMode=E_DIS_TRIG_PULSE_SPEC_LOCA; + ParaNumber=2; + } + else { - // m_pSO7_Proto->g_machine.z._pos_fixed._long_ = atoi(cMove_to_Z) - (m_pSO7_Proto->g_machine.z._scale_pos._long_-m_pSO7_Proto->g_machine.z._lSet_Zero_Pos); - }; - m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_TO_POS_Z(); + TrigMode=E_DIS_TRIG_PULSE_EQDIS; + ParaNumber=1; + } + m_pSO7_Proto->_send_cmd_SO7_CMD_WRITE_TRIG_PULSE_PARA(ActiveAxis,TrigMode,StartIndex,ParaNumber,TrigDis); + + m_OutMessage.Format(_T("[Write Trig Para]:R TotalNo=%d"),m_pSO7_Proto->g_machine.TrigPara.TrigTotalNo); + OutputWithScroll(m_OutMessage,m_edMSG); } +//====================================================== +void CSO7_UtilDlg::OnBnClickedButtonSo7TrigpulseReadPara() +{ + UpdateData(TRUE); + USES_CONVERSION; + short GetIndex(0); + m_pSO7_Proto->_send_cmd_SO7_CMD_READ_TRIG_PULSE_PARA(GetIndex); - + m_OutMessage.Format(_T("[Read Trig Para]:R Axis=%d,Method=%d,TotalNo=%d,CurIndex=%d,CurPara=%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.TrigCurPara); + OutputWithScroll(m_OutMessage,m_edMSG); +} diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_UtilDlg.h b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_UtilDlg.h index 284502e..b5d93cf 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_UtilDlg.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_UtilDlg.h @@ -116,8 +116,8 @@ public: afx_msg void OnBnClickedRadioReadInputPort(); afx_msg void OnBnClickedRadioReadOutputPort(); afx_msg void OnBnClickedButtonMotionParameter(); - afx_msg void OnBnClickedButtonHome(); - afx_msg void OnBnClickedButtonGo(); + afx_msg void OnBnClickedButtonSo7TrigpulseStop(); + afx_msg void OnBnClickedButtonSo7TrigpulseStart(); afx_msg void OnBnClickedCheckSo7TopLightOn(); afx_msg void OnBnClickedCheckSo7BottomLightOn(); afx_msg void OnBnClickedCheckSo7RingLightOn(); @@ -130,4 +130,6 @@ public: afx_msg void OnBnClickedButtonSo7SetSeqNumber(); afx_msg void OnBnClickedButtonSo7SetVerNumber(); afx_msg void OnBnClickedRadioReadLimitSwitch(); + afx_msg void OnBnClickedButtonSo7TrigpulseWritePara(); + afx_msg void OnBnClickedButtonSo7TrigpulseReadPara(); }; 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 05918e4..7d65f60 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h @@ -701,10 +701,10 @@ #define IDC_RADIO_KEYENCE_LASER_LK_G 1584 #define IDC_BUTTON3 1585 #define IDC_BUTTONIDC_BUTTON_TESA_STAR_MOVETO 1585 -#define IDC_BUTTON_HOME 1585 +#define IDC_BUTTON_SO7_TRIGPULSE_STOP 1585 #define IDC_BTN_KEYENCE_LKG5000_ETHERNET_STORAGEDATA2 1585 #define IDC_BUTTON_INIT_SCAN_KEYENCE_LK_GLASER 1586 -#define IDC_BUTTON_GO 1586 +#define IDC_BUTTON_SO7_TRIGPULSE_START 1586 #define IDC_BTN_KEYENCE_LKG5000_ETHERNET_STORAGEDATA1 1586 #define IDC_BUTTON_HOME2 1586 #define IDC_BUTTON_R2_HOME 1586 @@ -930,12 +930,12 @@ #define IDC_EDIT_SO7_PROGEAM_INTERCAL_TIME_PER_CNC 1822 #define IDC_CHECK_SO7_RING_LIGHT_SEG_ON1 1822 #define IDC_CHECK_SO7_RING_LIGHT_SEG_ON2 1823 -#define IDC_EDIT_POSITION 1824 -#define IDC_RADIO_RELATIVE 1825 +#define IDC_EDIT_SO7_TRIGPULSE_DIS 1824 +#define IDC_RADIO_SO7_TRIGPULSE_EQDIS 1825 #define IDC_EDIT_POSITION2 1825 #define IDC_EDIT_R1_TARGET_POSITION 1825 #define IDC_RADIO_ABS 1826 -#define IDC_RADIO_ABSOLUTE 1826 +#define IDC_RADIO_SO7_TRIGPULSE_SPECLOCATION 1826 #define IDC_EDIT_POSITION3 1826 #define IDC_EDIT_R2_CURRENT_POSITION 1826 #define IDC_KEYENCE_LKG5000_IPADDRESS1 1827 @@ -946,6 +946,7 @@ #define IDC_CHECK_SO7_SPARE_LIGHT_ON 1828 #define IDC_RADIO_R1_RELATIVE 1828 #define IDC_RADIO_R1_ABSOLUTE 1829 +#define IDC_EDIT_SO7_TRIGPULSE_DIS2 1829 #define IDC_EDIT_KEYENCE_LKG5000_MSG 1830 #define IDC_RADIO_R2_RELATIVE 1830 #define IDC_BTN_KEYENCE_LKG5000_ETHERNET_START_SCAN 1831 @@ -982,6 +983,9 @@ #define IDC_RADIO_ART_PCI8622_MODE_NPTTRIG 1852 #define IDC_EDIT_ART_PCI8622_READ_TIMES 1853 #define IDC_EDIT_ART_PCI8622_GET_DATA_NUMBER 1854 +#define IDC_BUTTON_SO7_TRIGPULSE_WRITE_PARA 1854 +#define IDC_BUTTON5 1855 +#define IDC_BUTTON_SO7_TRIGPULSE_READ_PARA 1855 #define IDC_BUTTON_DIY_EXIT_BUTTON 32740 #define ID_EDIT_SO7_CONFIG_MOTION 32741 @@ -991,7 +995,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 191 #define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 1854 +#define _APS_NEXT_CONTROL_VALUE 1855 #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 c57f500165db62745cacfd1152cbf9a9245d8e62..efa86a641322ba3f014b6803b3f794438a12c787 100644 GIT binary patch delta 3554 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 RRze8v0n~8QK_?7Z{{_$LjeP(B