⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cscframe.cpp

📁 一个通讯管理机的源代码。比较好用。推荐
💻 CPP
字号:
#include "cscframe.h"bool CCSCFrame::FrameToBuffer(CDataNode &dn){	bool bRet = false;	if(m_bIsSetup) 	{ 		WORD wDataSize = GetDataSize();		dn.SetSize(wDataSize+4);//		dn.m_wSize = wDataSize+5;		dn.m_pbyData[0]=wDataSize+3;		dn.m_pbyData[1]=m_byDAddr;		dn.m_pbyData[2]=m_bySAddr; //src addr; 		dn.m_pbyData[3]=m_byCID; //类型; 		if (wDataSize)			memcpy(dn.m_pbyData+4,m_pData,wDataSize); //		BYTE* pby = (dn.m_pbyData+4+wDataSize);//		*pby = GetCHKSUM(dn.m_pbyData,wDataSize+4);		bRet = true;	} 	return bRet;}void CCSCFrame::SetupFrame(CFrameNode *pFNSend){	m_bySAddr = (BYTE)(pFNSend->m_wSAddr);	m_byDAddr = (BYTE)(pFNSend->m_wDAddr);	if (pFNSend->m_pbyData && pFNSend->m_wSize)	{		m_wLength = pFNSend->m_wSize;		memcpy(m_pData,pFNSend->m_pbyData,pFNSend->m_wSize);	}	else m_wLength = 0;	m_byCID = pFNSend->m_byCID;	m_bIsSetup = true;}void CCSCFrame::FrameToBuf(CFrameNode& fn){	fn.m_byCID = m_byCID;	fn.m_wDAddr = m_byDAddr;	fn.m_wSAddr = m_bySAddr;	fn.m_wSize = m_wLength;	if (fn.m_wSize)	{		fn.SetSize(fn.m_wSize);		memcpy(fn.m_pbyData,m_pData,fn.m_wSize);	}}bool CCSCFrame::BufferToFrame(CDQue* pPhyDQ){	Reset();	CDataNode *pDN = NULL;	bool bIsComplete;	m_wInLength = 0;	while (bIsComplete = pPhyDQ->Get(pDN,0) && pDN)	{		WORD wSize = 0;//		cout << "{" << pDN->m_wSize << "} ";		while ((wSize<pDN->m_wSize) && (pDN->m_wSize < 32))		{//			char c[16];//			sprintf(c,"\\%02x ",pDN->m_pbyData[wSize]);//			cout << c;			if (ByteIn(pDN->m_pbyData[wSize++]))			{				delete pDN;//				cout  << endl;				goto check;			}		}//		cout  << endl;		delete pDN;	}check:	if (bIsComplete)	{		BYTE* pTemp = m_pbyInBuf;//		WORD wSize = m_wInLength;		m_wLength = *pTemp++ - 3;		m_byDAddr = *pTemp++;		m_bySAddr = *pTemp++;		m_byCID = *pTemp++;		if (m_wLength)			memcpy(m_pData,pTemp,m_wLength);//		pTemp += m_wLength;		//		if (*pTemp != GetCHKSUM(m_pbyInBuf,m_wInLength-1))//			return false;		m_bIsSetup = true;	}	return m_bIsSetup;}bool CCSCFrame::ByteIn(BYTE b){	bool bRet = false;	m_pbyInBuf[m_wInLength++] = b;	if (m_wInLength == 1)		m_wLength = m_pbyInBuf[0]+1;	else if (m_wLength == m_wInLength)		bRet = true;	return bRet;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -