int GPS _ parse _ line (struct GPS _ t *
{
float lon,lat;
char gps_status;
char n=0,m=0,f=0;
if () buffer[1]=='g ' ) )
(buffer[2]=='P ' )
(buffer[3]=='R ' )
(buffer[4]=='M ' )
(buffer[5]=='C ' ) ) ) (//GPRMC
{
for(n=0; n100; n )
{
if(buffer[n]==',')
{
m;
if(m==2) )。
{
gps_status=buffer[n 1];
() ) ) ) )。
if(m==3) )。
{
if(GPS_status=='a ' )
{
lat=() ) (float ) ) buffer[n 1] ) ) )。
() ) ) ) )。
() ) ) ) )。
if(m==4) )。
{
' n ';
() ) ) ) )。
if(m==5) )。
{
lon=() ) float ) ) buffer[n 1] ) )。
() ) ) ) )。
if(m==6) )。
{
' e ';
() ) ) ) )。
() ) ) ) )。
() ) ) ) )。
() ) ) ) )。
gps-lat=lat;
gps-lon=lon;
返回0;
() ) ) ) )。
intGPS_get(structGPS_t*GPS,float *lon,float *lat ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )。)
{
返回0;
() ) ) ) )。
主:
intmain(intargc,char *argv想与人在一起的奇迹) ) ) ) ) ) ) ) ) ) ) ) ) ) )。
{
float lon,lat;
struct gps_t gps;
char *buffer='$GPRMC,013946.00,a,3202.1855,n,11849.0769,e,0.05,218.30,11105,4.5,w,A*20 ';
GPS_parse_line(GPS,buffer,strlen ) ) buffer );
GPS_get(GPS,lon,lat );
printf(lon:%f,lat:%f(n ),lon,lat );
getchar (;
() ) ) ) )。
lat值将为410.000000;
lon值将为477.000000;
调试时gps-lat显示: GPS-lat-1.0737418 e 008浮动
[此帖最后由Rick_gu于2014-5-29 15:40编辑]
搜索更多相关主题帖子: