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);
}