完善Tesa star e测试功能。
This commit is contained in:
@@ -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) && (num<MAX_RECIEVE_BUFFER_SIZE))
|
||||
{
|
||||
if(m_IsWrtingData)
|
||||
{
|
||||
memset(m_RecvData,0,MAX_RECIEVE_BUFFER_SIZE);
|
||||
m_IsWrtingData=FALSE;
|
||||
m_iRecvBytes=0;
|
||||
if (m_HandShake==CS_HANDSHAKE_FOR_TRESASTR_E)
|
||||
{
|
||||
int num = ReadPort(s, MAX_RECIEVE_BUFFER_SIZE);
|
||||
if ((num>0) && (num<MAX_RECIEVE_BUFFER_SIZE))
|
||||
{
|
||||
if(m_IsWrtingData)
|
||||
{
|
||||
memset(m_RecvData,0,MAX_RECIEVE_BUFFER_SIZE);
|
||||
m_IsWrtingData=FALSE;
|
||||
m_iRecvBytes=0;
|
||||
}
|
||||
TRACE1("----RECV%d----\r\n",num);
|
||||
TRACE3("%02X %02X %02X ",s[0],s[1],s[2]);
|
||||
TRACE3("%02X %02X %02X ",s[3],s[4],s[5]);
|
||||
TRACE3("%02X %02X %02X\r\n",s[6],s[7],s[8]);
|
||||
for(int i=0;i<num;i++)
|
||||
{
|
||||
m_RecvData[m_iRecvBytes++]=s[i];
|
||||
}
|
||||
m_iRecvState=TRUE;
|
||||
}
|
||||
TRACE1("----RECV%d----\r\n",num);
|
||||
TRACE3("%02X %02X %02X ",s[0],s[1],s[2]);
|
||||
TRACE3("%02X %02X %02X ",s[3],s[4],s[5]);
|
||||
TRACE3("%02X %02X %02X\r\n",s[6],s[7],s[8]);
|
||||
for(int i=0;i<num;i++)
|
||||
}
|
||||
else
|
||||
{
|
||||
int num = ReadPort(s, 252);
|
||||
if ((num>0) && (num<MAX_RECIEVE_BUFFER_SIZE))
|
||||
{
|
||||
m_RecvData[m_iRecvBytes++]=s[i];
|
||||
memset(m_RecvData,0,m_iRecvBytes);
|
||||
memcpy(m_RecvData,s, num);
|
||||
m_iRecvBytes=num;
|
||||
m_iRecvState=TRUE;
|
||||
}
|
||||
m_iRecvState=TRUE;
|
||||
}
|
||||
//LineReceive(s, num);
|
||||
}
|
||||
|
||||
@@ -6,64 +6,43 @@ const int MAX_RETRY_CNTS=5;
|
||||
CTesaStarE::CTesaStarE(void)
|
||||
{
|
||||
SerialComPort=1;
|
||||
m_pSerial=NULL;
|
||||
_bReading=FALSE;
|
||||
bEnComm=false;
|
||||
m_TesaStarEAngle[0]=(double)0.0;
|
||||
m_TesaStarEAngle[1]=(double)0.0;
|
||||
memset(m_RecvData,0,sizeof(m_RecvData));
|
||||
|
||||
}
|
||||
//==================================================================
|
||||
CTesaStarE::~CTesaStarE(void)
|
||||
{
|
||||
if (this->m_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
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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;i<iRecvBytes;i++)
|
||||
{
|
||||
if((BYTE)m_RecvData[i]>32)
|
||||
@@ -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;i<iRecvBytes;i++)
|
||||
{
|
||||
@@ -209,15 +210,15 @@ void TestTesaStarEDialog::OnBnClickedButtonTesaStarSendmsg()
|
||||
m_StatusBar.SetText(m_OutMessage, 2, 0);
|
||||
}
|
||||
|
||||
g_pTesaStarE->m_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;
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user