📄 myframe.cpp
字号:
#include "myframe.h"CMyFrame::CMyFrame(void){}CMyFrame::~CMyFrame(void){}bool CMyFrame::FrameToBuffer(CDataNode &dn){ bool bRet = false; if(m_bIsSetup) { dn.SetSize(GetSize()); WORD wDataSize = GetDataSize(); WORD* pw = (WORD *)dn.m_pbyData; *pw++ = 0xeb90; *pw++ = 0xeb90; *pw++ = wDataSize + 1;//data length + cid BYTE* pbyTemp = (BYTE *)pw; *pbyTemp++ = m_byCID; if (wDataSize) memcpy(pbyTemp,m_pData,wDataSize); pbyTemp += wDataSize; *pbyTemp = 0x16;//tail bRet = true; } return bRet;}void CMyFrame::SetupFrame(CFrameNode *pFNSend){ 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 CMyFrame::FrameToBuf(CFrameNode& fn){ fn.m_byCID = m_byCID; if (m_wLength) { fn.SetSize(m_wLength); memcpy(fn.m_pbyData,m_pData,m_wLength); }}bool CMyFrame::BufferToFrame(CDQue* pPhyDQ){ Reset(); CDataNode *pDN = NULL; bool bRet = false; while (pPhyDQ->Get(pDN) && pDN) { if (m_wInLength + pDN->m_wSize > 1008){ delete pDN; break;} memcpy(&m_pbyInBuf[m_wInLength],pDN->m_pbyData,pDN->m_wSize); m_wInLength += pDN->m_wSize;// TRACE("<%02x> ",pDN->m_pbyData[0]); delete pDN; if (m_wInLength>=8) { WORD* pw = (WORD *)&m_pbyInBuf[0]; if ((*pw++ != 0xeb90) || (*pw++ != 0xeb90)) break; else if ((*pw + 7) == m_wInLength) { BYTE* pby = &m_pbyInBuf[m_wInLength-1]; if (*pby == 0x16) bRet = true; break; } } } if (bRet) { WORD* pwTemp = (WORD *)m_pbyInBuf; pwTemp +=2; m_wLength = *pwTemp++ - 1; BYTE* pTemp = (BYTE *)pwTemp; m_byCID = *pTemp++; if (m_wLength) memcpy(m_pData,pTemp,m_wLength); } return bRet;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -