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

📄 c-gps.txt

📁 以前用VB
💻 TXT
字号:
[讨论]开源的GPS解码思路,付代码。【中国IT软件知识库/大中华软件交易网】软件公司/软件开发人员社区论坛 软件项目交易网(软件外包、项目外包承接、软件供求交易、软件招标投标、投资融资合作)  
              【主页】   【登陆论坛】   【免费注册会员】   【关闭窗口】  


             


       您的位置:首页->软件论坛 -> C/C++技术->C语言  搜索:  

            站内导航
            软件技术论坛
            软件采购区
            软件供应区
            项目外包项目区
            软件下载频道
            IT软件公司速查手册
            企业招聘专栏
            人才求职
            Flash动画游戏
            音乐欣赏
            域名注册/主机托管 
            C/C++技术
            C语言 
            非技术区 
            工具平台和程序库 
            C++语言 
            新手乐园 
            模式及实现 
            其它技术问题 
            C语言 Top10
            时间复杂度如何计算 
            为什么我的C程序会出现declaration syntax error呢 ? 
            C语言中浮点数比较的问题 
            求DOS下汉字显示的C语言源程序 
            pv操作的问题,实在是搞不懂了。 
            请问文件结束符是哪个字符啊? 
            关于SIZEOF的用法 
            C语言读取数据,怎样进行? 
            请高手指教一下C语言的题...谢谢!! 这周要交作业了...急....大恩!!!! 
            怪异问题 
            C语言 最新10
            上面的宏定义怎么解释? 
            请求平衡二叉树的算法 
            紧急求助 
            高手们,拜托了!QQ:84758181 
            程序运行不对,问题出在哪?高手们,拜托了~! 
            c语言中标点符号及英文字母的处理 
            在设置P89C669串口0的时候出了点问题..哪位高人能解答一下啊! 
            这是怎么回是? 
            请高手进来看看,小弟感激不尽,在线等待! 
            各位大侠 , 有没有 C语言图形程序设计 方面的 电子书 啊 ?谢谢! 
            主  题:[讨论]开源的GPS解码思路,付代码。
            发布日期:2006-1-9 6:46:53 
            作  者:request(我有问题) 
            问题分数:0
            回 复 数:7
            人气指数:58点
            信 誉 值:100
            等  级:
            所属社区:C/C++技术 -> C语言 
首先,我不会C,其次i am a new bie。
我想写一个开源的、通用的GPS解码思路。
以前用VB,C#等很轻松将GPS信息解码。但是最近要使用C语言,(网上有一个VC的按位解的)苦于C操作字符串的难度,请各位大侠放出一份C代码解GPS。
我先贴上我用C解的代码,是直接将VB和C#的思路转过来的。
现在可以读出经度或纬度,但是不能同时读出,这点我很郁闷~~~~(    printf("ltt:%s\n", tltt);//没出错,但停止在这里了!程序不动了。。。)代码很笨拙。请大家帮助解决。

这是全部代码,有些是设备自带的环境设置参数。

——————————————————————————————————————

  #include <stdio.h>
  #include <conio.h>
  #include <process.h>
  #include <commplus.h>
  #include <infrared.h>

extern _stklen = 4096u;   /* it very useful to reduce memory in HT-1800 */
extern _heaplen  = 4096u;  /*    both stack & heap length must be set    */
int main()
{
 while(1 == 1)//这么写应该能过去吧,呵呵……
 {
 gps();
 }
return 0;
}

int  gps()
  {
    char *gpsStr;
    int charI;
    int akey;
   unsigned char cm;
   unsigned char p;
   unsigned int  baudtmp, baud;
   int           exitloop = 0;
   unsigned char ab, st;
   unsigned long b;
   unsigned char p1;
   unsigned char iroldstat;
   char str1[] = "$PNMRX103,GGA,1,GSA,0,GSV,0,RMC,0,GLL,0,GSV,0,VTG,0,ZDA,*xx\r\n";
   int i;
   char tStrArr[254],tlttArr[9],tlgtArr[10];
   char *tgga,*tgsa,*trmc,*tltt,*tlgt;

   charI = 0;
   if (!ComPlsInstalled())
      {
       if (InstallComPls(0) == 2)
          {
           cprintf("BIOS Setting for COM1 or COM2 Error!!!!\r\n\n");
           return 0;
          }
      }

   //printf("\nBaudRate:");
   //scanf("%ld",&b);
   //scanf("%c",&akey);

   //printf("Port(1/2):");
   //scanf("%c",&p1);
   //scanf("%c",&akey);

   //printf("Input ...");

   IRPowerCtrl(0x01);
   SetIRMFreq(38000);
   SetIROutput(2);
   GetCommMode(&cm, &p, &baud);

   if (b >= 115200)
      baudtmp = 0xFFF0;
   else
      baudtmp = (int)b;

   if (p1 == 2)
      {
       if (b == 9600)
          {
           iroldstat = IRPowerCtrl(5);
           SetIRMFreq(38000);
          }
       if (b == 19200)
          {
           iroldstat = IRPowerCtrl(5);
           SetIRMFreq(307680);
          }
      }

   SetCommMode(3, 2-1, 4800);
   EnableRx(0);
   exitloop = 0;
   akey = 0;

   for (i=0;i<sizeof(str1);i++)
   PutAuxByte(str1[i]);
   do
   {

  if (kbhit())
       {
        akey = getch();
        if (akey != 27)
           {
            if (!exitloop)
               //printf("\n");
            exitloop = -1;
            //PutAuxByte((char)akey);
            //printf("%c",akey);
           }
       }
    if (ExistAuxBGot(&ab, &st))
       {
         if (ab == 13)
            //printf("\n");
            exitloop = 0;
            tStrArr[charI] = ab;
            charI++;
        if(charI == 254)
        {
            gpsStr = &tStrArr[0];
            tgga = strstr(gpsStr,"GPGGA");
            //printf("gga:%s",tgga);
/*
            tlgt = getpart(tgga,",",4);
            tltt = getpart(tgga,",",2);
            printf("%s\n",tltt);*/
            break;
        }
       }
   }while (akey != 27);
    SetCommMode(cm, p, baud);
    iroldstat = IRPowerCtrl(0);
    SetIRMFreq(0);
    DisableRx();
    //printf("gga:%s",tgga);
    tlgt = getpart(tgga,",",4);
    printf("lgt:%s\n", tlgt);
    //printf("%s",tgga);
    tltt = getpart(tgga,",",2);
    printf("ltt:%s\n", tltt);//没出错,但停止在这里了!程序不动了。。。
    return 0;
  }

int getpart(char *SourceStr,char *ConnStr,int PartInt)
    {
    int PartI = 1;
    char *ResultStr,*tempStr,*dropStr;
    int OriLen,DropLen;
    //PartInt++;
    tempStr = SourceStr;
    while(PartI <= PartInt)
    {
      tempStr = strstr(tempStr,ConnStr);
      tempStr++;
      PartI++;
    }
      OriLen = strlen(tempStr);
      dropStr = strstr(tempStr,ConnStr);
      DropLen = strlen(dropStr);
      strncpy(ResultStr,tempStr,OriLen - DropLen);
      if(dropStr == NULL)//这里防止取到不存在的字符串
      {
        return(NULL);
      }
        else
      {
        return(ResultStr);
      }
}

 

              
            回复人: expert(技术专家)   信誉:100 2006-1-9 6:46:53得分: 0
为什么显示不到列表中。。。。555555
100分的帖子都没人看啊~~~~~~~~
 

            【Top】 
            回复人: expert(技术专家)   信誉:100 2006-1-9 6:46:53得分: 0
以前写过C的。。。。忘记了,找找去~
 

            【Top】 
            回复人: expert(技术专家)   信誉:100 2006-1-9 6:46:53得分: 0
标记下,以后看

 

            【Top】 
            回复人: expert(技术专家)   信誉:100 2006-1-9 6:46:54得分: 0
TO:dragonzxh(河马MiaMia~小雨特批C++非技术区技术灌水员~)

期待中……
 

            【Top】 
            回复人: expert(技术专家)   信誉:100 2006-1-9 6:46:54得分: 0
自己顶一下。希望对GPS感兴趣的朋友帮忙看一看。
 

            【Top】 
            回复人: expert(技术专家)   信誉:100 2006-1-9 6:46:54得分: 0
MARK !!
 

            【Top】 
            回复人: expert(技术专家)   信誉:100 2006-1-9 6:46:54得分: 0
我留下联系方式,对GPS解码感兴趣的朋友欢迎+我,大家讨论。
期待大家帮助!!!/BOW

白天-msn:webmaster@365n.net
晚上-qq:3110616 

            【Top】 

      【登陆论坛】    





      【中国IT软件知识库/大中华软件交易网】软件公司/软件开发人员社区论坛 软件项目交易网(软件外包、项目外包承接、软件供求交易、软件招标投标、投资融资合作) 





      版权所有【中国IT软件知识库/大中华软件交易网】&copy; 2004-2005 鲁ICP备05026886号 
      电话:0531-86586797 高小姐 Email:避免Email骚扰

      ooReports网上直报(网络直报)统计分析系统 ooReports系统功能描述: 公司主站:http://www.etcell.com/ 
      网上直报主站:http://report.etcell.com/ 网上直报系统采用B/S模式的WEB形式,界面清新简洁明了,即学即会;开发工具: 
      .NET(C#)和ATGrid报表控件开发完成; ooReports支持的功能如下: 1. 
      WEB服务器支持:WebLogic、TOMCAT、IIS等; 2. 支持数据库:SQL Server,Oracle,Sybase,DB2等; 3. 
      支持XML: 通过XML和后台数据库进行绑定; 4. 可以直接把Excel,html文件到入系统,还可以把任何报表转换为Excel,HTML文件; 
      5. 支持报表类型:普通报表,套打报表,财务报表,分组报表,主从报表,交叉报表, 
      统计报表、汇总报表、多行显示,工业报表、生产报表、建筑报表、财务报表、销售报表、销售日报、资产负债表、自定义等WEB报表; 6. 
      报表填报类型:年报、半年报、季报、月报、周报、日报、实时报、临时报、一次性报等 7. 可视化自定义报表工具; 8. 
      集成数据采集、数据上报、数据挖掘、数据分析、图表分析(曲线图,柱状图,柄状图等)与一体 9. 
      系统自动创建数据库和报表模板进行数据绑定,减轻维护人员的工作量; 10. 
      查询出来的数据可以通过多种形式进行显示,显示形式自由切换:XSL,HTML,ET,图表; 11.支持在线填报、离线填报两种方式; 12. 
      软件使用群体:统计局、财政局、税务(国税,地税[重点税源])、交通厅(交通局)、集团公司(包括分公司、办事处) 
      旅游局、银行系统、农机局、建设部门、卫生厅(卫生局病情上报)等各个行业,是一款通用性及强的平台。 13. 软件模块如下: (1) 
      直报平台[前端界面] 使用群体:报表填报单位,例如:供应商/客户/分销商/地市分局/集团分公司...... 功能简述: 
      填写报表、审核报表、审核勾级关系...... (2) 后台管理维护平台使用群体: 系统管理员/集团总部/部级单位/厅级单位/地市局...... 
      功能简述: 定义报表模板、定义报表勾级关系、定义直报的各种功能、权限分配、报表审核、统计、汇总、数据分析、报表打印...... (3) 
      报表模板设计器可以采用两种方式进行可视化自定义设计报表模板, ①利用WinTable报表设计器; ②利用Web方式的可视化设计器; 
      设计结束后保存模板,然后通过HTTP或者FTP保存到WEB服务器。网络报表系统 网络报表设计器 网上报表系统 网上报表工具 
      网上财务报表公司主站:http://www.etcell.com/ 
      ooReports网上直报主站:http://report.etcell.com/ 济南昂利万软件有限公司荣誉出品 
      联系电话:0531-86586797 0531-88166797 

⌨️ 快捷键说明

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