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 c57f500..efa86a6 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