您当前的位置:五五电子网电子知识单片机-工控设备综合-其它基于Windows Mobile的蓝牙GPS数据采集方法的改进 正文
基于Windows Mobile的蓝牙GPS数据采集方法的改进

基于Windows Mobile的蓝牙GPS数据采集方法的改进

点击数:7554 次   录入时间:03-04 11:51:14   整理:http://www.55dianzi.com   综合-其它

  1.         前言

  随着手机软件硬件技术的发展,手机的功能越来越强大,同时手机与外界的数据连通显的愈发重要。 蓝牙 通信作为一种短距离无线通信技术标准,正逐渐普及,现在部分中高档手机已经配置了蓝牙模块。蓝牙有着比红外更快的速度、更远的传输距离、无角度等限制,为数据连通和交换提供了极大的便利,这为蓝牙发展和基于蓝牙的应用提供了广阔应用的前景。

  2.         GPS 系统介绍

  通常的GPS定位信息格式是NEMA0183格式,数据内容较少,因此多用RS-232串口将定位信息从GPS接收机传送到计算机中进行信息提取处理。对于嵌入式设备,采用CF卡GPS或者SD卡GPS信号接收机,该类型设备被映射为一个标准的串行口设备,GPS数据的获取也与通常的串行口通信相同。从串口读取数据有多种实现方法,在这里对串口数据读取部分不做详细的说明。下面对GPS接收机的接受数据过程做一个介绍。

  正常工作状态下,GPS接

收机就会不断地把接收并计算出的GPS导航定位信息传送到计算机中。没有进一步处理之前缓存中是一长串字节流,这些信息在没有经过分类提取之前是无法加以利用的。因此,必须通过程序将各个字段的信息从缓存字节流中提取出来,将其转化成有实际意义的,可使用的信息。同其它通讯协议类似,对GPS进行信息提取必须首先明确其帧的数据结构,然后才能根据其结构完成对各定位信息的提取,现对该规范中作者用到的$GPRMC格式举例介绍如下:

格式举例

  3.         GPS数据获取通常解决方法

  通常情况下,PDA的蓝牙通信一般是虚拟串口连了一个GPS,所以要做的主要工作是找出PDA上蓝牙模块模拟出的对应串口,找到对用的串口后,我需要从串口中将GPS数据读出来。

    GPS数据获取通常解决方法

  通常的GPS数据的读取如下:

  void ProcessGPSData(CString & strGPS)

  {

         CString sTime,sPositionX,sPositionY,sGpsStatus;       //读取到的gps数据

         sTime = "";                                                      //当前GPS时间

         sPositionX = "";                                               //当前位置X

         sPositionY = "";           

www.55dianzi.com

                     //当前位置Y

         int iPosiRMC = str GPS .Find(_T("$GPRMC,"));   //获取位置时间信息

         int iGPSlength =  strGPS.GetLength();

         if (iPosiRMC!= -1)                   & nbsp;                //获取位置、时间信息

         {     int SectionID="0";                                        //记录当前读取位置

                for (int i= iPosiRMC;i

                {

                       if ((strGPS.GetAt(i))==','){

                              SectionID++; continue;

                       }

                       else



www.55dianzi.com

                       {

  switch (SectionID)

                              {

                                     case 1:          &n bsp;                            //提取出时间

                                            sTime+=str GPS .GetAt(i);      break;

         case 2:                                //判断GPS信号是否可信                    if(strGPS.GetAt(i)=='A')    {sGpsStatus = "A";……}

                                            else if(strGPS.GetAt(i)=='V') { sGpsStatus = "V";……}

                                      break;

      

www.55dianzi.com                  case 3: //提取出纬度

                                         sPositionY+=str GPS .GetAt(i); break;

                &n bsp;                 case 5://提取出经度     

[1] [2]  下一页


本文关键字:蓝牙  数据采集  Mobile  Windows  综合-其它单片机-工控设备 - 综合-其它