新增Tesa star e测试功能。
This commit is contained in:
@@ -44,7 +44,7 @@ CPSerial::CPSerial()
|
||||
{
|
||||
// Serial port is not open
|
||||
m_PortHandle = INVALID_HANDLE_VALUE;
|
||||
|
||||
m_IsWrtingData=FALSE;
|
||||
// Default port settings
|
||||
m_Port = 1;
|
||||
m_Baud = CBR_115200;
|
||||
@@ -323,6 +323,7 @@ DWORD CPSerial::Close()
|
||||
|
||||
DWORD CPSerial::Send(LPCSTR buffer, int l, BOOL /*needsResponse=FALSE*/)
|
||||
{
|
||||
m_IsWrtingData=TRUE;
|
||||
|
||||
return ( WritePort ((const char*) buffer, (DWORD) l));
|
||||
}
|
||||
@@ -488,10 +489,21 @@ void CPSerial::OnReceive()
|
||||
CurrentPointer = 0;
|
||||
int num = ReadPort(s, MAX_RECIEVE_BUFFER_SIZE);
|
||||
if ((num>0) && (num<MAX_RECIEVE_BUFFER_SIZE))
|
||||
{
|
||||
memset(m_RecvData,0,MAX_RECIEVE_BUFFER_SIZE);
|
||||
memcpy(m_RecvData,s, num);
|
||||
m_iRecvBytes=num;
|
||||
{
|
||||
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;
|
||||
}
|
||||
//LineReceive(s, num);
|
||||
@@ -639,6 +651,17 @@ int CPSerial::ProgramPort(int Port,int Baud,char Parity,int Bits,int StopBits,in
|
||||
SerialDCB.fOutxDsrFlow=FALSE;
|
||||
SerialDCB.XonLim=2048;
|
||||
SerialDCB.XoffLim=512;
|
||||
case CS_HANDSHAKE_FOR_TRESASTR_E:
|
||||
SerialDCB.EofChar = 26;
|
||||
SerialDCB.XonChar = 17;
|
||||
SerialDCB.XoffChar = 19;
|
||||
SerialDCB.fOutX=TRUE;
|
||||
SerialDCB.fInX=TRUE;
|
||||
SerialDCB.fRtsControl=RTS_CONTROL_DISABLE;
|
||||
SerialDCB.fDtrControl = DTR_CONTROL_ENABLE;
|
||||
SerialDCB.fDsrSensitivity=FALSE;
|
||||
SerialDCB.XonLim=256;
|
||||
SerialDCB.XoffLim=256;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -704,6 +727,18 @@ int CPSerial::ProgramPort(int Port,int Baud,char Parity,int Bits,int StopBits,in
|
||||
SerialDCB.XonLim=2048;
|
||||
SerialDCB.XoffLim=512;
|
||||
break;
|
||||
case CS_HANDSHAKE_FOR_TRESASTR_E:
|
||||
SerialDCB.EofChar = 26;
|
||||
SerialDCB.XonChar = 17;
|
||||
SerialDCB.XoffChar = 19;
|
||||
SerialDCB.fOutX=TRUE;
|
||||
SerialDCB.fInX=TRUE;
|
||||
SerialDCB.fRtsControl=RTS_CONTROL_DISABLE;
|
||||
SerialDCB.fDtrControl = DTR_CONTROL_ENABLE;
|
||||
SerialDCB.fDsrSensitivity=FALSE;
|
||||
SerialDCB.XonLim=256;
|
||||
SerialDCB.XoffLim=256;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -56,6 +56,7 @@ const int CS_HANDSHAKE_XONXOFF = 2;
|
||||
const int CS_HANDSHAKE_NONE = 3;
|
||||
const int CS_HANDSHAKE_RTSCTS_DTRDSR = 4;
|
||||
const int CS_HANDSHAKE_FOR_SO7 = 5;
|
||||
const int CS_HANDSHAKE_FOR_TRESASTR_E = 6;
|
||||
|
||||
|
||||
|
||||
@@ -178,6 +179,7 @@ private:
|
||||
|
||||
//Buffer for incomming commands:
|
||||
int CurrentPointer;
|
||||
BOOL m_IsWrtingData;
|
||||
public:
|
||||
HANDLE m_hWaitCMMResponse;
|
||||
HANDLE m_hNewRx;
|
||||
|
||||
Reference in New Issue
Block a user