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

📄 gpsframe.cpp

📁 一个通讯管理机的源代码。比较好用。推荐
💻 CPP
字号:
#include "gpsframe.h"WORD BTI(WORD wBCD){	WORD wRet = (wBCD&0xf)+((wBCD&0xf0)>>4)*10;	wBCD >>= 8;	wRet += 100*(wBCD&0xf)+((wBCD&0xf0)>>4)*1000;	return wRet;}BYTE BTI(BYTE byBCD){	BYTE byRet = (byBCD&0xf)+((byBCD&0xf0)>>4)*10;	return byRet;}void CGpsFrame::FrameToBuf(CFrameNode& fn){	fn.m_byCID = 0;	fn.m_bySrcAddr = 0;	fn.m_wSize = 7;	fn.SetSize(fn.m_wSize);	memcpy(fn.m_pbyData,m_pData,fn.m_wSize);}bool CGpsFrame::BufferToFrame(CDQue* pPhyDQ){	Reset();	CDataNode *pDN = NULL;	bool bRet = false;	while (pPhyDQ->Get(pDN,50) && pDN)	{		if (m_wInLength + pDN->m_wSize > 17)		{			delete pDN;			break;		}		memcpy(&m_pbyInBuf[m_wInLength],pDN->m_pbyData,pDN->m_wSize);		m_wInLength += pDN->m_wSize;/*	for (WORD bbb=0; bbb< pDN->m_wSize; bbb++)	{		char c[16];		sprintf(c,"%02x ",pDN->m_pbyData[bbb]);		cout << c;		if ((bbb+1)%64 == 0) cout << endl;	}	cout <<endl;*/		delete pDN;		if (m_wInLength && (m_pbyInBuf[0] != 0x42))			break;		if (m_wInLength==GetEchoLen())		{			if (m_pbyInBuf[16] == 0xd)				bRet = true;			break;		}	}	if (bRet)	{		m_pData[0] = BTI(m_pbyInBuf[1]);		m_pData[1] = BTI(m_pbyInBuf[2]);		m_pData[2] = BTI(m_pbyInBuf[3]);		WORD* pw,* pw1;		pw = (WORD *)&m_pData[3];		pw1 = (WORD *)&m_pbyInBuf[4];		WORD wv = *pw1;		wv = CW(wv);		*pw = BTI(wv);		m_pData[5] = BTI(m_pbyInBuf[6]);		m_pData[6] = BTI(m_pbyInBuf[7]);		m_wLength = 7;	}	return bRet;}

⌨️ 快捷键说明

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