diff --git a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/CMMIO_SERIAL.CPP b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/CMMIO_SERIAL.CPP index 349b50e..2bf8d20 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/CMMIO_SERIAL.CPP +++ b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/CMMIO_SERIAL.CPP @@ -56,6 +56,7 @@ CPSerial::CPSerial() m_TXTimeout = CS_DEFAULT_TX_TIMEOUT; m_iRecvState=FALSE; m_iRecvBytes=0; + memset(m_RecvData,0,MAX_RECIEVE_BUFFER_SIZE); // Everything else set to NULL m_ThreadHandle = NULL; //m_TXHead = NULL; @@ -487,24 +488,38 @@ void CPSerial::OnReceive() char s[MAX_RECIEVE_BUFFER_SIZE]={0}; s[1]='\0'; CurrentPointer = 0; - int num = ReadPort(s, MAX_RECIEVE_BUFFER_SIZE); - if ((num>0) && (num0) && (num0) && (numm_pSerial) - { - this->m_pSerial->Close(); - delete this->m_pSerial; - this->m_pSerial=NULL; - } } //================================================================== BOOL CTesaStarE::Initialization(bool _bInitConfig) { BOOL status(FALSE); - if (!m_pSerial) - { - m_pSerial = new CPSerial(); - } if (_bInitConfig) { LoadConfig(); } - if (m_pSerial) + m_pSerial.SetPort(SerialComPort,TESASTARE_BAUD,TESASTARE_PARITY,TESASTARE_BITS,TESASTARE_STOPBITS,TESASTARE_HandShake); + if(m_pSerial.Open()) { - m_pSerial->SetPort(SerialComPort,TESASTARE_BAUD,TESASTARE_PARITY,TESASTARE_BITS,TESASTARE_STOPBITS,TESASTARE_HandShake); - if(m_pSerial->Open()) - { - bEnComm=TRUE; - status=CheckStatus(); - status=SetPassword(); - } - else - { - status=FALSE; - bEnComm=FALSE; - delete m_pSerial; - m_pSerial=NULL; - } + bEnComm=TRUE; + status=CheckStatus(); + status=SetPassword(); + } + else + { + status=FALSE; + bEnComm=FALSE; } return status; } //================================================================== BOOL CTesaStarE::Unload() { - if (m_pSerial) - { - m_pSerial->Close(); - delete m_pSerial; - m_pSerial=NULL; - } + m_pSerial.Close(); + Sleep(500); return TRUE; } //================================================================== @@ -434,7 +413,7 @@ BOOL CTesaStarE::_Send_Command(const char* _SendData,DWORD _SendDataLength) if (bEnComm) { DWORD iWriteByte(0); - iWriteByte=m_pSerial->Send(_SendData,_SendDataLength); + iWriteByte=m_pSerial.Send(_SendData,_SendDataLength); } return rStatus; }; @@ -446,26 +425,26 @@ BOOL CTesaStarE::_Receive_Data(char* _SendData,DWORD& _RecvDataLength) { INT iRetrys(0); CString csTemp; - while(!m_pSerial->m_iRecvState && iRetrys<20) + while(!m_pSerial.m_iRecvState && iRetrys<20) { iRetrys++; Sleep(100); } - if (m_pSerial->m_iRecvState) + if (m_pSerial.m_iRecvState) { - if(m_pSerial->m_RecvData[0]==0) + if(m_pSerial.m_RecvData[0]==0) { - m_pSerial->m_iRecvState=FALSE; + m_pSerial.m_iRecvState=FALSE; INT iRetrys2(0); - while(!m_pSerial->m_iRecvState && iRetrys2<60) + while(!m_pSerial.m_iRecvState && iRetrys2<60) { iRetrys2++; Sleep(100); } } - memcpy(_SendData,m_pSerial->m_RecvData,m_pSerial->m_iRecvBytes); - _RecvDataLength=m_pSerial->m_iRecvBytes; - m_pSerial->m_iRecvState=FALSE; + memcpy(_SendData,m_pSerial.m_RecvData,m_pSerial.m_iRecvBytes); + _RecvDataLength=m_pSerial.m_iRecvBytes; + m_pSerial.m_iRecvState=FALSE; rStatus=TRUE; } else diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tesa/TesaStarE.h b/PcDmis/Base/Interfac/Msi/Hsi/Tesa/TesaStarE.h index 3f2fc31..622a501 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tesa/TesaStarE.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tesa/TesaStarE.h @@ -17,8 +17,8 @@ public: void LoadConfig(); BOOL SetTesaStarEAngle(const int& _AngleNumber,double* _Angle,bool _bReturnPosInfo=false); BOOL GetTesaStarEAngle(int& _AngleNumber,double* _Angle); - CPSerial* m_pSerial; -protected: + CPSerial m_pSerial; +private: BOOL ReadTesaStarEAngle(); BOOL CheckStatus(); BOOL SetPassword(); 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 8b8be2f..484a7a0 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/UtilityDebug.Log +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/UtilityDebug.Log @@ -2394,3 +2394,8 @@ Unable to open device 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. diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Release/UtilityDebug.Log b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Release/UtilityDebug.Log index 50fc5df..fe3e081 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Release/UtilityDebug.Log +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Release/UtilityDebug.Log @@ -138,3 +138,8 @@ Construct Cso7_Proto. Destruct Cso7_Proto. Construct Cso7_Proto. Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/TestTesaStarEDialog.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/TestTesaStarEDialog.cpp index c8732e5..7c723ca 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/TestTesaStarEDialog.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/TestTesaStarEDialog.cpp @@ -116,6 +116,7 @@ void TestTesaStarEDialog::OnBnClickedButtonTesaStarSendmsg() DWORD iSendDataLength(0); DWORD iWriteByte(0); + CPSerial *pSerial = &(g_pTesaStarE->m_pSerial); if (m_SendType==0) { @@ -126,7 +127,7 @@ void TestTesaStarEDialog::OnBnClickedButtonTesaStarSendmsg() { bSendData[i]=(BYTE)strtol(cSendData+i*3,&stop,16); } - iWriteByte=g_pTesaStarE->m_pSerial->Send((const char*)bSendData,iSendDataLength); + iWriteByte=pSerial->Send((const char*)bSendData,iSendDataLength); } else { @@ -134,7 +135,7 @@ void TestTesaStarEDialog::OnBnClickedButtonTesaStarSendmsg() csSendData+=_T("\r"); cSendData=T2A(csSendData); iSendDataLength=csSendData.GetLength(); - iWriteByte=g_pTesaStarE->m_pSerial->Send(cSendData,iSendDataLength); + iWriteByte=pSerial->Send(cSendData,iSendDataLength); } m_OutMessage=_T("[Send] ")+csSendData; @@ -150,29 +151,29 @@ void TestTesaStarEDialog::OnBnClickedButtonTesaStarSendmsg() do { iRetrys=0; - while(!g_pTesaStarE->m_pSerial->m_iRecvState && iRetrys<20) + while(!pSerial->m_iRecvState && iRetrys<20) { iRetrys++; Sleep(100); } - if (g_pTesaStarE->m_pSerial->m_iRecvState) + if (pSerial->m_iRecvState) { - if(g_pTesaStarE->m_pSerial->m_RecvData[0]==0) + if(pSerial->m_RecvData[0]==0) { - g_pTesaStarE->m_pSerial->m_iRecvState=FALSE; + pSerial->m_iRecvState=FALSE; INT iRetrys2(0); - while(!g_pTesaStarE->m_pSerial->m_iRecvState && iRetrys2<60) + while(!pSerial->m_iRecvState && iRetrys2<60) { iRetrys2++; Sleep(100); } m_OutMessage=_T("[Recv]"); - memcpy(m_RecvData,g_pTesaStarE->m_pSerial->m_RecvData, g_pTesaStarE->m_pSerial->m_iRecvBytes); - iRecvBytes=g_pTesaStarE->m_pSerial->m_iRecvBytes; - TRACE1("====RECV%d====\r\n",g_pTesaStarE->m_pSerial->m_iRecvBytes); - TRACE3("%02X %02X %02X ",g_pTesaStarE->m_pSerial->m_RecvData[0],g_pTesaStarE->m_pSerial->m_RecvData[1],g_pTesaStarE->m_pSerial->m_RecvData[2]); - TRACE3("%02X %02X %02X ",g_pTesaStarE->m_pSerial->m_RecvData[3],g_pTesaStarE->m_pSerial->m_RecvData[4],g_pTesaStarE->m_pSerial->m_RecvData[5]); - TRACE3("%02X %02X %02X\r\n",g_pTesaStarE->m_pSerial->m_RecvData[6],g_pTesaStarE->m_pSerial->m_RecvData[7],g_pTesaStarE->m_pSerial->m_RecvData[8]); + memcpy(m_RecvData,pSerial->m_RecvData, pSerial->m_iRecvBytes); + iRecvBytes=pSerial->m_iRecvBytes; + TRACE1("====RECV%d====\r\n",pSerial->m_iRecvBytes); + TRACE3("%02X %02X %02X ",pSerial->m_RecvData[0],pSerial->m_RecvData[1],pSerial->m_RecvData[2]); + TRACE3("%02X %02X %02X ",pSerial->m_RecvData[3],pSerial->m_RecvData[4],pSerial->m_RecvData[5]); + TRACE3("%02X %02X %02X\r\n",pSerial->m_RecvData[6],pSerial->m_RecvData[7],pSerial->m_RecvData[8]); for (INT i=0;i32) @@ -188,13 +189,13 @@ void TestTesaStarEDialog::OnBnClickedButtonTesaStarSendmsg() else { m_OutMessage=_T("[Recv]"); - memcpy(m_RecvData,g_pTesaStarE->m_pSerial->m_RecvData, g_pTesaStarE->m_pSerial->m_iRecvBytes); - iRecvBytes=g_pTesaStarE->m_pSerial->m_iRecvBytes; + memcpy(m_RecvData,pSerial->m_RecvData, pSerial->m_iRecvBytes); + iRecvBytes=pSerial->m_iRecvBytes; - TRACE1("====RECV%d====\r\n",g_pTesaStarE->m_pSerial->m_iRecvBytes); - TRACE3("%02X %02X %02X ",g_pTesaStarE->m_pSerial->m_RecvData[0],g_pTesaStarE->m_pSerial->m_RecvData[1],g_pTesaStarE->m_pSerial->m_RecvData[2]); - TRACE3("%02X %02X %02X ",g_pTesaStarE->m_pSerial->m_RecvData[3],g_pTesaStarE->m_pSerial->m_RecvData[4],g_pTesaStarE->m_pSerial->m_RecvData[5]); - TRACE3("%02X %02X %02X\r\n",g_pTesaStarE->m_pSerial->m_RecvData[6],g_pTesaStarE->m_pSerial->m_RecvData[7],g_pTesaStarE->m_pSerial->m_RecvData[8]); + TRACE1("====RECV%d====\r\n",pSerial->m_iRecvBytes); + TRACE3("%02X %02X %02X ",pSerial->m_RecvData[0],pSerial->m_RecvData[1],pSerial->m_RecvData[2]); + TRACE3("%02X %02X %02X ",pSerial->m_RecvData[3],pSerial->m_RecvData[4],pSerial->m_RecvData[5]); + TRACE3("%02X %02X %02X\r\n",pSerial->m_RecvData[6],pSerial->m_RecvData[7],pSerial->m_RecvData[8]); for (INT i=0;im_pSerial->m_iRecvState=FALSE; + pSerial->m_iRecvState=FALSE; } else { m_StatusBar.SetText(_T("Time Out!"), 2, 0); BYTE bSendData[MAX_OUTPUT_BUFFER_SIZE]={0x0d}; - iWriteByte=g_pTesaStarE->m_pSerial->Send((const char*)bSendData,1); + iWriteByte=pSerial->Send((const char*)bSendData,1); } - iRecvBytes=g_pTesaStarE->m_pSerial->m_iRecvBytes; + iRecvBytes=pSerial->m_iRecvBytes; if(iRecvBytes<3) { iRecvBytes=3; 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 b04d92e..3fc2e2a 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