修改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