diff --git a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/CMMIO_SERIAL.CPP b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/CMMIO_SERIAL.CPP index 22a3880..34e0b1e 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/CMMIO_SERIAL.CPP +++ b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/CMMIO_SERIAL.CPP @@ -482,6 +482,7 @@ void CPSerial::OnReceive() { // Dummy OnReceieve if not used char s[255]={0}; + CStringA csTemp; s[1]='\0'; CurrentPointer = 0; @@ -496,7 +497,15 @@ void CPSerial::OnReceive() if (num!=0) { - csTemp.Format("%s",s); + for (int i=0;i<255;i++) + { + m_RecvData[i]=0; + } + for (int i=0;iSetCheck(TRUE); ((CButton *)GetDlgItem(IDC_RADIO_SO7_MANUAL_MACHINE_SEND_DATA_TYPE_ANSCII))->SetCheck(FALSE); + m_SendType=HEXADECIMAL; //=============================================================================== // 创建状态栏 @@ -86,7 +88,8 @@ BOOL CSo7_Manual_Machine::OnInitDialog() m_StatusBar.SetText(_T("System ready."), 0, 0); GetDlgItem(IDC_BUTTON_SO7_MANUAL_MACHINE_SEND_DATA)->EnableWindow(FALSE); - + GetDlgItem(IDC_BUTTON_SO7_MANUAL_MACHINE_STOP_MACHINE)->EnableWindow(FALSE); + UpdateData(FALSE); return TRUE; // return TRUE unless you set the focus to a control } @@ -95,16 +98,36 @@ BOOL CSo7_Manual_Machine::OnInitDialog() //=================================================== void CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineStartMachine() { - if (m_pSO7_Serial) + if (m_pSO7_PCDSerial) { - CString Params; - Params =_T("[COM1]Baud=19200,Parity=N,Data=8,Stop=0"); + m_pSO7_PCDSerial->SetPort(1,CBR_19200); + CString Param,Params; + int Port; + int Baud; + char Parity; + int Bits; + int StopBits; + int HandShake; + m_pSO7_PCDSerial->GetPortData(&Port,&Baud,&Parity,&Bits,&StopBits,&HandShake); + + Params.Format( TEXT("[COM%d]"), Port ); + Param.Format( TEXT(" Baud=%d"), Baud ); + Params += Param; + Param.Format( TEXT(" Parity=%c"), Parity ); + Params += Param; + Param.Format( TEXT(" Data=%d"), Bits ); + Params += Param; + Param.Format( TEXT(" Stop=%d"), StopBits ); + Params += Param; m_StatusBar.SetText(Params, 0, 0); - if(m_pSO7_Serial->Open(1,19200)) + if(m_pSO7_PCDSerial->Open()) { m_StatusBar.SetText(_T("成功打开串口"), 1, 0); GetDlgItem(IDC_BUTTON_SO7_MANUAL_MACHINE_SEND_DATA)->EnableWindow(TRUE); + GetDlgItem(IDC_BUTTON_SO7_MANUAL_MACHINE_STOP_MACHINE)->EnableWindow(TRUE); + GetDlgItem(IDC_BUTTON_SO7_MANUAL_MACHINE_START_MACHINE)->EnableWindow(FALSE); + } else { @@ -117,29 +140,30 @@ void CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineStartMachine() //=================================================== void CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineStopMachine() { - if (m_pSO7_Serial) + if (m_pSO7_PCDSerial) { - m_pSO7_Serial->Close(); + m_pSO7_PCDSerial->Close(); } - GetDlgItem(IDC_BUTTON_SO7_MANUAL_MACHINE_SEND_DATA)->EnableWindow(TRUE); + GetDlgItem(IDC_BUTTON_SO7_MANUAL_MACHINE_SEND_DATA)->EnableWindow(FALSE); + GetDlgItem(IDC_BUTTON_SO7_MANUAL_MACHINE_START_MACHINE)->EnableWindow(TRUE); } //=================================================== void CSo7_Manual_Machine::OnBnClickedRadioSo7ManualMachineCommonCmd1() { - // TODO: Add your control notification handler code here + GetDlgItem(IDC_EDIT_SO7_MANUAL_MACHINE_DATA)->SetWindowTextW(_T("F4 0D")); } //=================================================== void CSo7_Manual_Machine::OnBnClickedRadioSo7ManualMachineCommonCmd2() { - // TODO: Add your control notification handler code here + GetDlgItem(IDC_EDIT_SO7_MANUAL_MACHINE_DATA)->SetWindowTextW(_T("F5 0D")); } //=================================================== void CSo7_Manual_Machine::OnBnClickedRadioSo7ManualMachineCommonCmd3() { - // TODO: Add your control notification handler code here + GetDlgItem(IDC_EDIT_SO7_MANUAL_MACHINE_DATA)->SetWindowTextW(_T("F6 0D")); } //=================================================== @@ -164,30 +188,27 @@ void CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineSendData() GetDlgItem(IDC_EDIT_SO7_MANUAL_MACHINE_DATA)->GetWindowText(csSendData); const char* cSendData=T2A(csSendData); - int iSendDataLength(0); - int iWriteByte(0); - int iReadByte(0); - - if (m_SendType==HEXADECIMAL) + DWORD iSendDataLength(0); + DWORD iWriteByte(0); + m_pSO7_PCDSerial->m_csRecv=_T(""); + if (true)//m_SendType==HEXADECIMAL) { char* stop; BYTE bSendData[MAX_OUTPUT_BUFFER_SIZE]={0}; iSendDataLength=(csSendData.GetLength()+1)/3; - for(int i=0;iSendData((const char*)bSendData,iSendDataLength); + iWriteByte=m_pSO7_PCDSerial->Send((const char*)bSendData,iSendDataLength); } else { //加上回车换行符 - CString csTemp; - csTemp.Format(_T("\r\n")); - csSendData+=csTemp; + csSendData+=_T("\r\n"); cSendData=T2A(csSendData); iSendDataLength=csSendData.GetLength(); - iWriteByte=m_pSO7_Serial->SendData(cSendData,iSendDataLength); + iWriteByte=m_pSO7_PCDSerial->Send(cSendData,iSendDataLength); } m_OutMessage=_T("[Send] ")+csSendData; @@ -197,19 +218,47 @@ void CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineSendData() m_StatusBar.SetText(m_OutMessage, 1, 0); //接受数据 INT iRetrys(0); - while(!m_pSO7_Serial->ReadDataWaiting() && iRetrys<20) + CString csTemp; + while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys<20) { iRetrys++; Sleep(100); } - if (iRetrys<20) + if (m_pSO7_PCDSerial->m_iRecvState) { - BYTE RecvData[MAX_OUTPUT_BUFFER_SIZE]={0}; - iReadByte=m_pSO7_Serial->ReadData(RecvData,MAX_OUTPUT_BUFFER_SIZE); - m_OutMessage.Format(_T("[Recv]%s"),RecvData); - OutputWithScroll(m_OutMessage,m_edMSG); - m_OutMessage.Format(_T("Recv(%dByte)"),iReadByte); - m_StatusBar.SetText(m_OutMessage, 2, 0); + if(m_pSO7_PCDSerial->m_csRecv==_T("")) + { + m_pSO7_PCDSerial->m_iRecvState=FALSE; + INT iRetrys2(0); + while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys2<60) + { + iRetrys2++; + Sleep(100); + } + m_OutMessage=_T("[Recv]"); + for (INT i=0;im_iRecvByte;i++) + { + csTemp.Format(_T("%X "),m_pSO7_PCDSerial->m_RecvData[i]); + m_OutMessage+=csTemp; + } + OutputWithScroll(m_OutMessage,m_edMSG); + m_OutMessage.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvByte); + m_StatusBar.SetText(m_OutMessage, 2, 0); + } + else + { + m_OutMessage=_T("[Recv]"); + for (INT i=0;im_iRecvByte;i++) + { + csTemp.Format(_T("%X "),(BYTE)m_pSO7_PCDSerial->m_RecvData[i]); + m_OutMessage+=csTemp; + } + OutputWithScroll(m_OutMessage,m_edMSG); + m_OutMessage.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvByte); + m_StatusBar.SetText(m_OutMessage, 2, 0); + } + m_pSO7_PCDSerial->m_csRecv=_T(""); + m_pSO7_PCDSerial->m_iRecvState=FALSE; } else { @@ -219,26 +268,41 @@ void CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineSendData() //=================================================== void CSo7_Manual_Machine::OnEnKillfocusEditXScaleCoefficient() -{ - // TODO: Add your control notification handler code here +{ + UpdateData(TRUE); + USES_CONVERSION; + CString str; + GetDlgItem(IDC_EDIT_X_AXIS)->GetWindowText(str); + const char* cTempValue=T2A(str); + m_pSO7_Proto->g_machine.s_machine_config.x_axis._scale_resolution=atof(cTempValue); } //=================================================== void CSo7_Manual_Machine::OnEnKillfocusEditYScaleCoefficient() { - // TODO: Add your control notification handler code here + UpdateData(TRUE); + USES_CONVERSION; + CString str; + GetDlgItem(IDC_EDIT_Y_AXIS)->GetWindowText(str); + const char* cTempValue=T2A(str); + m_pSO7_Proto->g_machine.s_machine_config.y_axis._scale_resolution=atof(cTempValue); } //=================================================== void CSo7_Manual_Machine::OnEnKillfocusEditZScaleCoefficient() { - // TODO: Add your control notification handler code here + UpdateData(TRUE); + USES_CONVERSION; + CString str; + GetDlgItem(IDC_EDIT_Z_AXIS)->GetWindowText(str); + const char* cTempValue=T2A(str); + m_pSO7_Proto->g_machine.s_machine_config.z_axis._scale_resolution=atof(cTempValue); } //=================================================== void CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineClearMsg() { - // TODO: Add your control notification handler code here + GetDlgItem(IDC_EDIT_MANUAL_MACHINE_MSG)->SetWindowTextW(_T("")); } //=================================================== diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Manual_Machine.h b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Manual_Machine.h index 1b5ca44..9faf7c3 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Manual_Machine.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Manual_Machine.h @@ -22,12 +22,13 @@ protected: virtual BOOL OnInitDialog(); DECLARE_MESSAGE_MAP() protected: - CStatusBarCtrl m_StatusBar; + RS232SendType m_SendType; CString m_OutMessage; + CStatusBarCtrl m_StatusBar; CEdit m_edMSG; - char m_SendType; - void OutputWithScroll(const CString &strNewText,CEdit &edtOutput); + public: + void OutputWithScroll(const CString &strNewText,CEdit &edtOutput); afx_msg void OnBnClickedButtonSo7ManualMachineStartMachine(); afx_msg void OnBnClickedButtonSo7ManualMachineStopMachine(); afx_msg void OnBnClickedRadioSo7ManualMachineCommonCmd1(); diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Option.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Option.cpp index a39bf04..3265655 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Option.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Option.cpp @@ -39,7 +39,7 @@ #include "afxdialogex.h" //#define _RELEASE_ONLY_ONE_FUNCTION -CSerial* m_pSO7_Serial=NULL; +//CSerial* m_pSO7_Serial=NULL; CPSerial* m_pSO7_PCDSerial=NULL; CSO7_Proto* m_pSO7_Proto=NULL; CKeyence_Laser* m_pKeyence_Laser=NULL; @@ -198,20 +198,33 @@ void CSo7_Option::OnBnClickedOk() { CSO7_Verfication_Algorithm* pSO7_Verfication_Algorithm=new CSO7_Verfication_Algorithm(); pSO7_Verfication_Algorithm->DoModal(); + delete pSO7_Verfication_Algorithm; } else if (((CButton *)GetDlgItem(IDC_RADIO__SO7_RS232))->GetCheck()) { - if (!m_pSO7_Serial) - m_pSO7_Serial = new CSerial(); + if (!m_pSO7_Proto) + { + m_pSO7_Proto = new CSO7_Proto(); + } + if (!m_pSO7_PCDSerial) + { + m_pSO7_PCDSerial = new CPSerial(); + } CSo7_Manual_Machine* pSo7_Manual_Machine=new CSo7_Manual_Machine(); pSo7_Manual_Machine->DoModal(); + delete pSo7_Manual_Machine; - if (m_pSO7_Serial) + if (m_pSO7_PCDSerial) { - delete m_pSO7_Serial; - m_pSO7_Serial=NULL; + delete m_pSO7_PCDSerial; + m_pSO7_PCDSerial=NULL; } + if (m_pSO7_Proto) + { + delete m_pSO7_Proto; + m_pSO7_Proto=NULL; + } } 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 0192be3..e893a3d 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h @@ -254,6 +254,7 @@ #define IDC_CHECK_MIRROR_VERTICALLY 1204 #define IDC_CHECK_SV2000E_MIRROR_VERTICALLY 1204 #define IDC_CHECK_CONTINUE_READ_LASER_VALUE 1204 +#define IDC_CHECK_SO7_MANUAL_MACHINE_READ_POS_CONTINUE 1204 #define IDC_RADIO_MACHINE_SevenOcean 1205 #define IDC_CHECK_CONTINUE_READ_LASER_LK_H_VALUE 1205 #define IDC_BUTTON_INIT_SO7USB 1206 @@ -345,7 +346,6 @@ #define IDC_EDIT_IMAGEDLL_2LASER_TOPZ1 1274 #define IDC_EDIT_FRESHSPEED_X2 1275 #define IDC_EDIT_IMAGEDLL_2LASER_TOPZ2 1275 -#define IDC_EDIT_REPRETEST2 1275 #define IDC_EDIT_MANUAL_MACHINE_MSG 1275 #define IDC_EDIT_FRESHSPEED_X3 1276 #define IDC_EDIT_IMAGEDLL_2LASER_TOPZ3 1276 @@ -743,6 +743,8 @@ #define IDC_EDIT_IMAGEDLL_2LASER_MEASURED_VALUE9 1610 #define IDC_EDIT_TEST_KEYENCE_SETFOCUS 1650 #define IDC_RADIO_SO7_VERIFICATION_ALGORITHM 1651 +#define IDC_BUTTON4 1652 +#define IDC_BUTTON_SO7_MANUAL_MACHINEREAD_POS 1652 // Next default values for new objects // @@ -750,7 +752,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 168 #define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 1652 +#define _APS_NEXT_CONTROL_VALUE 1653 #define _APS_NEXT_SYMED_VALUE 101 #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 8063e95..bf06d31 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