搜索
bottom↓
回复: 2

求助帖!在gps数据的提取中 VC编译能够通过.GCC就不行 希望有人帮忙 发代码

[复制链接]

出0入0汤圆

发表于 2011-8-29 09:36:32 | 显示全部楼层 |阅读模式
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <gpsmes.h>


int gps_mes_process(char * buff)
{
       
  int i=0;
                        //GPRMC&A////
                  
     if((*(buff+i)=='$') &&(*(buff+i+1)=='G') && (*(buff+i+2)=='P') &&(*(buff+i+3)=='R') &&(*(buff+i+4)=='M') &&(*(buff+i+5)=='C') &&(*(buff+i+18)=='A'))  //
                    {  
                                     while((*(buff+i))!=',') i++;    //  查逗号
                        
                        i++;  
                                               
                        sscanf((buff+i),"%2d,%2d,%2d",&gpsmes1.h,&gpsmes1.m,&gpsmes1.s);
                                                       
                                               
                        while((*(buff+i))!=',') i++;    //查逗号
                        
                        i++;                      //已到数据位

                        //跳过  已判定

                        while((*(buff+i))!=',') i++;    //鏌?閫楀彿

                        
                        i++;                      //已到数据位

                                 //绾害  ddmm.mmmm   9
                       
                       sscanf((buff+i),"%f",&gpsmes1.latitude);
                        
                        while((*(buff+i))!=',') i++;    //查逗号
                        
                        i++;                      //已到数据位

                        gpsmes1.part_la=(*(buff+i));          // N or  S
                                               
                        while((*(buff+i))!=',') i++;    //查逗号
                        
                        i++;                      //已到数据位

                                //longitude  ddmm.mmmm   9
                        
                     sscanf((buff+i),"%f",gpsmes1.longitude);
                       
                        while((*(buff+i))!=',') i++;    //查逗号
                       
                        i++;                      //已到数据位

                        gpsmes1.part_lo=(*(buff+i)); //E or W
                        while((*(buff+i))!=',') i++;    //查逗号
                        
                        i++;                          //已到数据位

                        
                            sscanf((buff+i),"%f",gpsmes1.speed);
                       
                          i++;
                       
                       
                            sscanf((buff+i),"%f",gpsmes1.angle);
                           
                     
                        while((*(buff+i))!=',') i++;    //查逗号
                        
                        i++;                      //已到数据位
                             //date
                        sscanf((buff+i),"%2d,%2d,%2d",&gpsmes1.h,&gpsmes1.m,&gpsmes1.s);
                       
                    }
                                       
                                        ///////GPGGA//////
         else if((*(buff+i)=='$') &&(*(buff+i+1)=='G')&&(*(buff+i+2)=='P')&& (*(buff+i+3)=='G')&&(*(buff+i+4)=='G')&&(*(buff+i+5)=='A'))
               {      
                          
                                while((*(buff+i))!=',')i++;    //查逗号
                    
                      i++;                      //已到数据位

                           //UTC   hhmmss   
                    
                        sscanf((buff+i),"%2d,%2d,%2d",&gpsmes1.h,&gpsmes1.m,&gpsmes1.s);
                  
                    while((*(buff+i))!=',')i++;    //查逗号
               
                    i++;                      //已到数据位

                                       
                     //latitude  ddmm.mmmm   
                       
                    sscanf((buff+i),"%f",&gpsmes1.latitude);
                  
                    while((*(buff+i))!=',')i++;    //查逗号
                    
                    i++;                      //已到数据位

                    gpsmes1.part_la=(*(buff+i));          // N or S
                    
                                        while((*(buff+i))!=',')i++;    //查逗号
                    
                    i++;                      //已到数据位

                    //longitude  ddmm.mmmm   9

                   sscanf((buff+i),"%f",&gpsmes1.longitude);
       
                }
       
       
            }
        //if(gpsmes2.flag==0)gpsmes2=gpsmes1;
        return 0;
}



下面是gpsmes.h的内容
//////////////////////////
//                     //
//// gps 数据结构体  ///
//                   //
//////////////////////
int gps_mes_process(char * buff)

struct gps_mes
{
   
    int flag;   //是否使用过该数据
    int h,m,s;  
    char part_la,part_lo;
    float latitude;
    float longitude;
    float  speed;
    float  angle;
} gpsmes1,gpsmes2;

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2011-8-29 09:37:00 | 显示全部楼层
求大师指点!

出0入0汤圆

发表于 2011-8-31 15:51:32 | 显示全部楼层
报什么错? 说出来讨论。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-16 05:07

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表