www.pudn.com > HPMapx.rar > GpsData.CPP


// GpsData.cpp 
 
#include "stdafx.h" 
#include "gpsdata.hpp" 
 
 
//************************** GPS GGA RMC Data *****************************/ 
 
// 定位代码 
B_EXIST _GPSGGA_Data::SetCode() 
{ 
	if( *pData != ',' ) 
	{ 
		chCode = *pData; 
		pData += 1; 
	} 
	pData += 1; 
 
	if(chCode == 0x00) chIsParsed = 0x00; 
} 
 
// 卫星数量 
B_EXIST _GPSGGA_Data::SetStarNumber() 
{ 
	char szNumber[5]; 
 
	for(char i=0; *(pData+i) !=','; i++) 
	szNumber[i] = *(pData+i); 
	szNumber[i] = '\0'; 
	 
	chNumber = atoi(szNumber); 
	pData += ++i; 
} 
 
// 水平稀释精度 
B_EXIST _GPSGGA_Data::SetDilution() 
{ 
	char szNumber[5]; 
 
	for(char i=0; *(pData+i) !=','; i++) 
	szNumber[i] = *(pData+i); 
	szNumber[i] = '\0'; 
	 
	fDilution = (float)atof(szNumber); 
	pData += ++i; 
} 
 
// 海拔高度 
B_EXIST _GPSGGA_Data::SetAltitude() 
{ 
	char szNumber[5]; 
	if( *pData != ',' ) 
	{ 
		for(char i = 0; *(pData+i) !=','; i++) 
		szNumber[i] = *(pData+i); 
		szNumber[i] = '\0'; 
 
		fAltitude = (float)atof(szNumber); 
		pData += i; 
	} 
	pData += 1; 
} 
 
// 海拔高度单位 
B_EXIST _GPSGGA_Data::SetchFD() 
{ 
	if( *pData != ',' ) 
	{ 
		chFD = *pData; 
		pData+=1; 
	} 
	pData+=1; 
} 
 
// 地表平均高度 
B_EXIST _GPSGGA_Data::SetAverageHigh() 
{ 
	if( *pData != ',' ) 
	{ 
		char szNumber[5]; 
 
		for(char i = 0; *(pData+i) !=','; i++) 
		szNumber[i] = *(pData+i); 
		szNumber[i] = '\0'; 
 
		fAvgHigh = (float)atof(szNumber); 
		pData += i; 
	} 
	pData+=1; 
} 
 
// 地表平均高度单位 
B_EXIST	_GPSGGA_Data::SetchFA() 
{ 
	if( *pData != ',' ) 
	{ 
		chFA = *pData; 
		pData+=1; 
	} 
	pData+=1; 
} 
 
// 偏差修正使用时间 
B_EXIST _GPSGGA_Data::SetchMTime() 
{ 
	if( *pData != ',' ) 
	{ 
		char szNumber[5]; 
 
		for(char i = 0; *(pData+i) !=','; i++) 
		szNumber[i] = *(pData+i); 
		szNumber[i] = '\0'; 
		chMTime = atoi(szNumber); 
		pData += i; 
	} 
	pData+=1; 
} 
 
// 偏差修正,基地台代码 
B_EXIST _GPSGGA_Data::SetchMCode() 
{ 
	for(char i = 0; *(pData+i) !='*'; i++) 
	chMCode[i] = *(pData+i); 
	chMCode[i] = '\0'; 
 
	pData += ++i; 
} 
 
// 综合检查码 
B_EXIST _GPSGGA_Data::SetSum() 
{ 
	sprintf(chSum,"%s",pData); 
}