修改RS232通信

This commit is contained in:
TAO Cheng
2013-06-26 17:53:59 +08:00
parent b26d5826ee
commit 61a49df5ee
8 changed files with 112 additions and 121 deletions
@@ -6,7 +6,7 @@
#define MAX_OUTPUT_BUFFER_SIZE 2048
#define MAX_RECIEVE_BUFFER_SIZE 16000
#define MAX_RECIEVE_BUFFER_SIZE 30000
// TCP, serial style routines
struct SerialList
@@ -55,9 +55,7 @@ CPSerial::CPSerial()
m_RXTimeout = CS_DEFAULT_RX_TIMEOUT;
m_TXTimeout = CS_DEFAULT_TX_TIMEOUT;
m_iRecvState=FALSE;
m_csRecv=_T("");
m_iRecvByte=0;
m_iReadDataNum=255;
m_iRecvBytes=0;
// Everything else set to NULL
m_ThreadHandle = NULL;
//m_TXHead = NULL;
@@ -482,33 +480,19 @@ void CPSerial::ReceiveTask( void )
void CPSerial::OnReceive()
{
// Dummy OnReceieve if not used
char s[255]={0};
char s[MAX_RECIEVE_BUFFER_SIZE]={0};
CStringA csTemp;
s[1]='\0';
CurrentPointer = 0;
int num=0;
num = ReadPort(s, MAX_RECIEVE_BUFFER_SIZE);
num = ReadPort(s, m_iReadDataNum);
//for (int i=0;i<num;i++)
//{
// csTemp
// m_csRecv+=csTemp;
//}
if (num!=0)
if (num>0)
{
for (int i=0;i<255;i++)
{
m_RecvData[i]=0;
}
for (int i=0;i<num;i++)
{
m_RecvData[i]=s[i];
}
csTemp.Format("%s",m_RecvData);
m_csRecv=csTemp;
m_iRecvByte=num;
memset(m_RecvData,0,MAX_RECIEVE_BUFFER_SIZE);
memcpy(m_RecvData,s, num);
m_iRecvBytes=num;
m_iRecvState=TRUE;
}
@@ -185,10 +185,8 @@ public:
// BV Nov 2001: Made public
// CRITICAL_SECTION m_QueueLock;
BOOL m_iRecvState;
CString m_csRecv;
INT m_iRecvByte;
int m_iReadDataNum;
char m_RecvData[255];
INT m_iRecvBytes;
char m_RecvData[MAX_RECIEVE_BUFFER_SIZE];
};
#endif // CMMIO_SERIAL_H
@@ -1481,3 +1481,23 @@ Construct Cso7_Proto.
Exit: Exit_SO7Usb
Destruct Cso7_Proto.
Construct Cso7_Proto.
Init:Open device succeed .
_start_machine
Exit: Exit_SO7Usb
Init:Open device succeed .
_start_machine
Construct Cso7_Proto.
Init:Open device succeed .
_start_machine
Exit: Exit_SO7Usb
Destruct Cso7_Proto.
@@ -542,17 +542,14 @@ double CSO7_Automatic_Zoom::ReadZoomAngle()
}
if (m_pSO7_PCDSerial->m_iRecvState)
{
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
if(m_pSO7_PCDSerial->m_RecvData[0]==0)
Sleep(50);
USES_CONVERSION;
char *cRecvData= NULL;
char *token = NULL;
char cTemp[20]={0};
cRecvData=T2A(m_pSO7_PCDSerial->m_csRecv);
char seps[] = "$AD:";
token = strtok(cRecvData,seps);
token = strtok(m_pSO7_PCDSerial->m_RecvData,seps);
if (token)
{
memcpy(cTemp,token,8);
@@ -566,8 +563,7 @@ double CSO7_Automatic_Zoom::ReadZoomAngle()
dZoomAngle=-1;
};
token=NULL;
cRecvData=NULL;
m_pSO7_PCDSerial->m_csRecv=_T("");
m_pSO7_PCDSerial->m_iRecvState=FALSE;
return dZoomAngle;
@@ -585,10 +581,11 @@ BOOL CSO7_Automatic_Zoom::CalibrateEncoder()
char sendDataII[6]={'S','C',':','1',13,10};
char sendDataIII[6]={'R','F',':','1',13,10};
CString csRightRecv;
CStringA m_csRecv("");
csRightRecv.Format(_T("@OK\r\n"));
INT iRetrys(0);
DWORD iWriteByte(0);
m_pSO7_PCDSerial->m_csRecv=_T("");
m_pSO7_PCDSerial->m_iRecvState=FALSE;
//Phase I
@@ -601,12 +598,13 @@ BOOL CSO7_Automatic_Zoom::CalibrateEncoder()
if (m_pSO7_PCDSerial->m_iRecvState)
{
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
if(m_pSO7_PCDSerial->m_RecvData[0]==0)
Sleep(100);
if(m_pSO7_PCDSerial->m_csRecv==csRightRecv)
m_csRecv.Format(("%s"),m_pSO7_PCDSerial->m_RecvData);
if((CString)m_csRecv==csRightRecv)
{
m_pSO7_PCDSerial->m_csRecv=_T("");
m_pSO7_PCDSerial->m_iRecvState=FALSE;
iRetrys=0;
iWriteByte=0;
@@ -620,12 +618,13 @@ BOOL CSO7_Automatic_Zoom::CalibrateEncoder()
}
if(m_pSO7_PCDSerial->m_iRecvState)
{
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
if(m_pSO7_PCDSerial->m_RecvData[0]==0)
Sleep(100);
if(m_pSO7_PCDSerial->m_csRecv==csRightRecv)
m_csRecv.Format(("%s"),m_pSO7_PCDSerial->m_RecvData);
if((CString)m_csRecv==csRightRecv)
{
m_pSO7_PCDSerial->m_csRecv=_T("");
m_pSO7_PCDSerial->m_iRecvState=FALSE;
iRetrys=0;
iWriteByte=0;
@@ -639,12 +638,13 @@ BOOL CSO7_Automatic_Zoom::CalibrateEncoder()
}
if(m_pSO7_PCDSerial->m_iRecvState)
{
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
if(m_pSO7_PCDSerial->m_RecvData[0]==0)
Sleep(100);
if(m_pSO7_PCDSerial->m_csRecv==csRightRecv)
m_csRecv.Format(("%s"),m_pSO7_PCDSerial->m_RecvData);
if((CString)m_csRecv==csRightRecv)
{
m_pSO7_PCDSerial->m_csRecv=_T("");
m_pSO7_PCDSerial->m_iRecvState=FALSE;
iRetrys=0;
iWriteByte=0;
@@ -652,7 +652,7 @@ BOOL CSO7_Automatic_Zoom::CalibrateEncoder()
}
else
{
m_pSO7_PCDSerial->m_csRecv=_T("");
m_pSO7_PCDSerial->m_iRecvState=FALSE;
return FALSE;
}
@@ -664,7 +664,7 @@ BOOL CSO7_Automatic_Zoom::CalibrateEncoder()
}
else
{
m_pSO7_PCDSerial->m_csRecv=_T("");
m_pSO7_PCDSerial->m_iRecvState=FALSE;
return FALSE;
}
@@ -677,7 +677,7 @@ BOOL CSO7_Automatic_Zoom::CalibrateEncoder()
}
else
{
m_pSO7_PCDSerial->m_csRecv=_T("");
m_pSO7_PCDSerial->m_iRecvState=FALSE;
return FALSE;
}
@@ -749,7 +749,7 @@ void CSO7_Automatic_Zoom::OnBnClickedButtonSendData()
UpdateData(TRUE);
CString csSendData("");
GetDlgItem(IDC_EDIT_DATASEND)->GetWindowText(csSendData);
m_pSO7_PCDSerial->m_csRecv=_T("");
USES_CONVERSION;
//加上回车换行符
CString csTemp;
@@ -766,6 +766,7 @@ void CSO7_Automatic_Zoom::OnBnClickedButtonSendData()
csSendData.Format(_T("Send(%dByte)"),iWriteByte);
m_StatusBar.SetText(csSendData, 1, 0);
//接受数据
CStringA m_csRecv("");
INT iRetrys(0);
while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys<20)
{
@@ -774,7 +775,7 @@ void CSO7_Automatic_Zoom::OnBnClickedButtonSendData()
}
if (m_pSO7_PCDSerial->m_iRecvState)
{
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
if(m_pSO7_PCDSerial->m_RecvData[0]==0)
{
m_pSO7_PCDSerial->m_iRecvState=FALSE;
INT iRetrys2(0);
@@ -783,16 +784,16 @@ void CSO7_Automatic_Zoom::OnBnClickedButtonSendData()
iRetrys2++;
Sleep(100);
}
((CListBox *)GetDlgItem(IDC_LIST_SHOWMESSAGE))->InsertString(-1,CString(_T("[Recv]: "))+m_pSO7_PCDSerial->m_csRecv);
m_pSO7_PCDSerial->m_csRecv=_T("");
csSendData.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvByte);
m_csRecv.Format(("%s"),m_pSO7_PCDSerial->m_RecvData);
((CListBox *)GetDlgItem(IDC_LIST_SHOWMESSAGE))->InsertString(-1,CString(_T("[Recv]: "))+(CString)m_csRecv);
csSendData.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvBytes);
m_StatusBar.SetText(csSendData, 2, 0);
}
else
{
((CListBox *)GetDlgItem(IDC_LIST_SHOWMESSAGE))->InsertString(-1,CString(_T("[Recv]: "))+m_pSO7_PCDSerial->m_csRecv);
m_pSO7_PCDSerial->m_csRecv=_T("");
csSendData.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvByte);
m_csRecv.Format(("%s"),m_pSO7_PCDSerial->m_RecvData);
((CListBox *)GetDlgItem(IDC_LIST_SHOWMESSAGE))->InsertString(-1,CString(_T("[Recv]: "))+(CString)m_csRecv);
csSendData.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvBytes);
m_StatusBar.SetText(csSendData, 2, 0);
}
@@ -399,18 +399,15 @@ double CSetup_so7config::ReadZoomAngle()
}
if (m_pSO7_PCDSerial->m_iRecvState)
{
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
if(m_pSO7_PCDSerial->m_RecvData[0]==0)
Sleep(40);//200
char *cRecvData= NULL;
char *token = NULL;
char cTemp[20]={0};
USES_CONVERSION;
cRecvData=T2A(m_pSO7_PCDSerial->m_csRecv);
char seps[] = "$AD:";
token = strtok(cRecvData,seps);
token = strtok(m_pSO7_PCDSerial->m_RecvData,seps);
if (token)
{
memcpy(cTemp,token,8);
@@ -418,8 +415,6 @@ double CSetup_so7config::ReadZoomAngle()
dZoomAngle=dZoomAngle*180/PI;
};
token=NULL;
cRecvData=NULL;
m_pSO7_PCDSerial->m_csRecv=_T("");
m_pSO7_PCDSerial->m_iRecvState=FALSE;
_bReading=false;
return dZoomAngle;
@@ -482,9 +477,10 @@ BOOL CSetup_so7config::CalibrateEncoder()
char sendDataIII[6]={'R','F',':','1',13,10};
CString csRightRecv;
csRightRecv.Format(_T("@OK\r\n"));
CStringA m_csRecv("");
INT iRetrys(0);
DWORD iWriteByte(0);
m_pSO7_PCDSerial->m_csRecv=_T("");
m_pSO7_PCDSerial->m_iRecvState=FALSE;
//Phase I
@@ -497,12 +493,12 @@ BOOL CSetup_so7config::CalibrateEncoder()
if (m_pSO7_PCDSerial->m_iRecvState)
{
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
if(m_pSO7_PCDSerial->m_RecvData[0]==0)
Sleep(100);
if(m_pSO7_PCDSerial->m_csRecv==csRightRecv)
m_csRecv.Format(("%s"),m_pSO7_PCDSerial->m_RecvData);
if((CString)m_csRecv==csRightRecv)
{
m_pSO7_PCDSerial->m_csRecv=_T("");
m_pSO7_PCDSerial->m_iRecvState=FALSE;
iRetrys=0;
iWriteByte=0;
@@ -512,16 +508,16 @@ BOOL CSetup_so7config::CalibrateEncoder()
while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys<20 && iWriteByte==6)
{
iRetrys++;
Sleep(50);
Sleep(100);
}
if(m_pSO7_PCDSerial->m_iRecvState)
{
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
if(m_pSO7_PCDSerial->m_RecvData[0]==0)
Sleep(100);
if(m_pSO7_PCDSerial->m_csRecv==csRightRecv)
{
m_pSO7_PCDSerial->m_csRecv=_T("");
m_csRecv.Format(("%s"),m_pSO7_PCDSerial->m_RecvData);
if((CString)m_csRecv==csRightRecv)
{
m_pSO7_PCDSerial->m_iRecvState=FALSE;
iRetrys=0;
iWriteByte=0;
@@ -531,24 +527,23 @@ BOOL CSetup_so7config::CalibrateEncoder()
while(!m_pSO7_PCDSerial->m_iRecvState && iRetrys<20 && iWriteByte==6)
{
iRetrys++;
Sleep(50);
Sleep(100);
}
if(m_pSO7_PCDSerial->m_iRecvState)
{
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
if(m_pSO7_PCDSerial->m_RecvData[0]==0)
Sleep(100);
if(m_pSO7_PCDSerial->m_csRecv==csRightRecv)
{
m_pSO7_PCDSerial->m_csRecv=_T("");
m_csRecv.Format(("%s"),m_pSO7_PCDSerial->m_RecvData);
if((CString)m_csRecv==csRightRecv)
{
m_pSO7_PCDSerial->m_iRecvState=FALSE;
iRetrys=0;
iWriteByte=0;
return TRUE;
}
else
{
m_pSO7_PCDSerial->m_csRecv=_T("");
{
m_pSO7_PCDSerial->m_iRecvState=FALSE;
return FALSE;
}
@@ -560,7 +555,7 @@ BOOL CSetup_so7config::CalibrateEncoder()
}
else
{
m_pSO7_PCDSerial->m_csRecv=_T("");
m_pSO7_PCDSerial->m_iRecvState=FALSE;
return FALSE;
}
@@ -573,7 +568,7 @@ BOOL CSetup_so7config::CalibrateEncoder()
}
else
{
m_pSO7_PCDSerial->m_csRecv=_T("");
m_pSO7_PCDSerial->m_iRecvState=FALSE;
return FALSE;
}
@@ -202,8 +202,7 @@ void CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineSendData()
DWORD iSendDataLength(0);
DWORD iWriteByte(0);
m_pSO7_PCDSerial->m_iReadDataNum=255;
m_pSO7_PCDSerial->m_csRecv=_T("");
if (m_SendType==HEXADECIMAL)
{
char* stop;
@@ -239,7 +238,7 @@ void CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineSendData()
}
if (m_pSO7_PCDSerial->m_iRecvState)
{
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
if(m_pSO7_PCDSerial->m_RecvData[0]==0)
{
m_pSO7_PCDSerial->m_iRecvState=FALSE;
INT iRetrys2(0);
@@ -249,28 +248,28 @@ void CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachineSendData()
Sleep(100);
}
m_OutMessage=_T("[Recv]");
for (INT i=0;i<m_pSO7_PCDSerial->m_iRecvByte;i++)
for (INT i=0;i<m_pSO7_PCDSerial->m_iRecvBytes;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_OutMessage.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvBytes);
m_StatusBar.SetText(m_OutMessage, 2, 0);
}
else
{
m_OutMessage=_T("[Recv]");
for (INT i=0;i<m_pSO7_PCDSerial->m_iRecvByte;i++)
for (INT i=0;i<m_pSO7_PCDSerial->m_iRecvBytes;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_OutMessage.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvBytes);
m_StatusBar.SetText(m_OutMessage, 2, 0);
}
m_pSO7_PCDSerial->m_csRecv=_T("");
m_pSO7_PCDSerial->m_iRecvState=FALSE;
}
else
@@ -283,7 +282,6 @@ void CSo7_Manual_Machine::OnBnClickedCheckSo7ManualMachineReadPosContinue()
{
if (!((CButton*)(GetDlgItem(IDC_CHECK_SO7_MANUAL_MACHINE_READ_POS_CONTINUE)))->GetCheck())
{
m_pSO7_PCDSerial->m_iReadDataNum=255;
KillTimer(1);
}
}
@@ -296,7 +294,6 @@ void CSo7_Manual_Machine::OnBnClickedButtonSo7ManualMachinereadPos()
UpdatePosDisplay();
if (((CButton*)(GetDlgItem(IDC_CHECK_SO7_MANUAL_MACHINE_READ_POS_CONTINUE)))->GetCheck())
{
m_pSO7_PCDSerial->m_iReadDataNum=255;
SetTimer(1,200,NULL);
}
else
@@ -309,8 +306,7 @@ BOOL CSo7_Manual_Machine::_Send_Common_CMD(const char* _SendData,DWORD _SendDa
{
BOOL rStatus(FALSE);
DWORD iWriteByte(0);
m_pSO7_PCDSerial->m_csRecv=_T("");
m_pSO7_PCDSerial->m_iReadDataNum=255;
iWriteByte=m_pSO7_PCDSerial->Send(_SendData,_SendDataLength);
m_OutMessage.Format(_T("Send(%dByte)"),iWriteByte);
m_StatusBar.SetText(m_OutMessage, 1, 0);
@@ -324,7 +320,7 @@ BOOL CSo7_Manual_Machine::_Send_Common_CMD(const char* _SendData,DWORD _SendDa
}
if (m_pSO7_PCDSerial->m_iRecvState)
{
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
if(m_pSO7_PCDSerial->m_RecvData[0]==0)
{
m_pSO7_PCDSerial->m_iRecvState=FALSE;
INT iRetrys2(0);
@@ -334,10 +330,10 @@ BOOL CSo7_Manual_Machine::_Send_Common_CMD(const char* _SendData,DWORD _SendDa
Sleep(100);
}
}
m_OutMessage.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvByte);
m_OutMessage.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvBytes);
m_StatusBar.SetText(m_OutMessage, 2, 0);
m_pSO7_PCDSerial->m_csRecv=_T("");
m_pSO7_PCDSerial->m_iRecvState=FALSE;
rStatus=TRUE;
}
@@ -369,8 +365,7 @@ void CSo7_Manual_Machine::_Send_CMD_ReadPositionX()
BYTE bSendData[2]={0xF4,0x0D};
DWORD iSendDataLength(2);
DWORD iWriteByte(0);
m_pSO7_PCDSerial->m_csRecv=_T("");
m_pSO7_PCDSerial->m_iReadDataNum=255;
iWriteByte=m_pSO7_PCDSerial->Send((const char*)bSendData,iSendDataLength);
m_OutMessage.Format(_T("Send(%dByte)"),iWriteByte);
m_StatusBar.SetText(m_OutMessage, 1, 0);
@@ -384,7 +379,7 @@ void CSo7_Manual_Machine::_Send_CMD_ReadPositionX()
}
if (m_pSO7_PCDSerial->m_iRecvState)
{
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
if(m_pSO7_PCDSerial->m_RecvData[0]==0)
{
m_pSO7_PCDSerial->m_iRecvState=FALSE;
INT iRetrys2(0);
@@ -396,10 +391,10 @@ void CSo7_Manual_Machine::_Send_CMD_ReadPositionX()
}
m_pSO7_Proto->g_machine.x._d_cur_pos_=HEXDataToIntScalePosX(&m_pSO7_PCDSerial->m_RecvData[2]);
m_pSO7_Proto->g_machine.x._d_cur_pos_ *= m_pSO7_Proto->g_machine.s_machine_config.x_axis._scale_resolution;
m_OutMessage.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvByte);
m_OutMessage.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvBytes);
m_StatusBar.SetText(m_OutMessage, 2, 0);
m_pSO7_PCDSerial->m_csRecv=_T("");
m_pSO7_PCDSerial->m_iRecvState=FALSE;
}
else
@@ -413,8 +408,7 @@ void CSo7_Manual_Machine::_Send_CMD_ReadPositionY()
BYTE bSendData[2]={0xF5,0x0D};
DWORD iSendDataLength(2);
DWORD iWriteByte(0);
m_pSO7_PCDSerial->m_csRecv=_T("");
m_pSO7_PCDSerial->m_iReadDataNum=255;
iWriteByte=m_pSO7_PCDSerial->Send((const char*)bSendData,iSendDataLength);
m_OutMessage.Format(_T("Send(%dByte)"),iWriteByte);
m_StatusBar.SetText(m_OutMessage, 1, 0);
@@ -428,7 +422,7 @@ void CSo7_Manual_Machine::_Send_CMD_ReadPositionY()
}
if (m_pSO7_PCDSerial->m_iRecvState)
{
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
if(m_pSO7_PCDSerial->m_RecvData[0]==0)
{
m_pSO7_PCDSerial->m_iRecvState=FALSE;
INT iRetrys2(0);
@@ -440,10 +434,10 @@ void CSo7_Manual_Machine::_Send_CMD_ReadPositionY()
}
m_pSO7_Proto->g_machine.y._d_cur_pos_=HEXDataToIntScalePosY(&m_pSO7_PCDSerial->m_RecvData[2]);
m_pSO7_Proto->g_machine.y._d_cur_pos_ *= m_pSO7_Proto->g_machine.s_machine_config.y_axis._scale_resolution;
m_OutMessage.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvByte);
m_OutMessage.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvBytes);
m_StatusBar.SetText(m_OutMessage, 2, 0);
m_pSO7_PCDSerial->m_csRecv=_T("");
m_pSO7_PCDSerial->m_iRecvState=FALSE;
}
else
@@ -457,8 +451,7 @@ void CSo7_Manual_Machine::_Send_CMD_ReadPositionZ()
BYTE bSendData[2]={0xF6,0x0D};
DWORD iSendDataLength(2);
DWORD iWriteByte(0);
m_pSO7_PCDSerial->m_csRecv=_T("");
m_pSO7_PCDSerial->m_iReadDataNum=255;
iWriteByte=m_pSO7_PCDSerial->Send((const char*)bSendData,iSendDataLength);
m_OutMessage.Format(_T("Send(%dByte)"),iWriteByte);
m_StatusBar.SetText(m_OutMessage, 1, 0);
@@ -472,7 +465,7 @@ void CSo7_Manual_Machine::_Send_CMD_ReadPositionZ()
}
if (m_pSO7_PCDSerial->m_iRecvState)
{
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
if(m_pSO7_PCDSerial->m_RecvData[0]==0)
{
m_pSO7_PCDSerial->m_iRecvState=FALSE;
INT iRetrys2(0);
@@ -484,10 +477,10 @@ void CSo7_Manual_Machine::_Send_CMD_ReadPositionZ()
}
m_pSO7_Proto->g_machine.z._d_cur_pos_=HEXDataToIntScalePosZ(&m_pSO7_PCDSerial->m_RecvData[2]);
m_pSO7_Proto->g_machine.z._d_cur_pos_ *= m_pSO7_Proto->g_machine.s_machine_config.z_axis._scale_resolution;
m_OutMessage.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvByte);
m_OutMessage.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvBytes);
m_StatusBar.SetText(m_OutMessage, 2, 0);
m_pSO7_PCDSerial->m_csRecv=_T("");
m_pSO7_PCDSerial->m_iRecvState=FALSE;
}
else
@@ -501,7 +494,7 @@ void CSo7_Manual_Machine::_Process_RecvData()
CString csTemp;
if (m_pSO7_PCDSerial->m_iRecvState)
{
if(m_pSO7_PCDSerial->m_csRecv==_T(""))
if(m_pSO7_PCDSerial->m_RecvData[0]==0)
{
m_pSO7_PCDSerial->m_iRecvState=FALSE;
INT iRetrys2(0);
@@ -512,18 +505,18 @@ void CSo7_Manual_Machine::_Process_RecvData()
}
}
//m_OutMessage=_T("[Recv]");
//for (INT i=0;i<m_pSO7_PCDSerial->m_iRecvByte;i++)
//for (INT i=0;i<m_pSO7_PCDSerial->m_iRecvBytes;i++)
//{
// csTemp.Format(_T("%X "),(BYTE)m_pSO7_PCDSerial->m_RecvData[i]);
// m_OutMessage+=csTemp;
//}
//OutputWithScroll(m_OutMessage,m_edMSG);
int i=0;
while(i<m_pSO7_PCDSerial->m_iRecvByte)
while(i<m_pSO7_PCDSerial->m_iRecvBytes)
{
if ((BYTE)m_pSO7_PCDSerial->m_RecvData[i]==0xF4)//x
{
if ((m_pSO7_PCDSerial->m_iRecvByte-i)>=12)
if ((m_pSO7_PCDSerial->m_iRecvBytes-i)>=12)
{
m_pSO7_Proto->g_machine.x._d_cur_pos_=HEXDataToIntScalePosX(&m_pSO7_PCDSerial->m_RecvData[i+1]);
m_pSO7_Proto->g_machine.x._d_cur_pos_ *= m_pSO7_Proto->g_machine.s_machine_config.x_axis._scale_resolution;
@@ -533,7 +526,7 @@ void CSo7_Manual_Machine::_Process_RecvData()
}
else if ((BYTE)m_pSO7_PCDSerial->m_RecvData[i]==0xF5)//y
{
if ((m_pSO7_PCDSerial->m_iRecvByte-i)>=12)
if ((m_pSO7_PCDSerial->m_iRecvBytes-i)>=12)
{
m_pSO7_Proto->g_machine.y._d_cur_pos_=HEXDataToIntScalePosY(&m_pSO7_PCDSerial->m_RecvData[i+1]);
m_pSO7_Proto->g_machine.y._d_cur_pos_ *= m_pSO7_Proto->g_machine.s_machine_config.y_axis._scale_resolution;
@@ -542,7 +535,7 @@ void CSo7_Manual_Machine::_Process_RecvData()
}
else if ((BYTE)m_pSO7_PCDSerial->m_RecvData[i]==0xF6)//z
{
if ((m_pSO7_PCDSerial->m_iRecvByte-i)>=12)
if ((m_pSO7_PCDSerial->m_iRecvBytes-i)>=12)
{
m_pSO7_Proto->g_machine.z._d_cur_pos_=HEXDataToIntScalePosZ(&m_pSO7_PCDSerial->m_RecvData[i+1]);
m_pSO7_Proto->g_machine.z._d_cur_pos_ *= m_pSO7_Proto->g_machine.s_machine_config.z_axis._scale_resolution;
@@ -555,10 +548,10 @@ void CSo7_Manual_Machine::_Process_RecvData()
}
};
m_OutMessage.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvByte);
m_OutMessage.Format(_T("Recv(%dByte)"),m_pSO7_PCDSerial->m_iRecvBytes);
m_StatusBar.SetText(m_OutMessage, 2, 0);
m_pSO7_PCDSerial->m_csRecv=_T("");
m_pSO7_PCDSerial->m_iRecvState=FALSE;
}
else