VC++实现GPS全球定位系统定位数据的提取

       本文提出了一种在VC下实现对GPS全球定位系统定位信息的接收以及对各定位参数数据的提取方法。

     卫星导航技术的飞速发展已逐渐取代了无线电导航、天文导航等传统导航技术,而成为一种普遍采用的导航定位技术,并在精度、实时性、全天候等方面取得了长 足进步。现不仅应用于物理勘探、电离层测量和航天器导航等诸多民用领域,在军事领域更是取得了广泛的应用--在弹道导弹、野战指挥系统、精确弹道测量以及 军用地图快速测绘等领域均大量采用了卫星导航定位技术。有鉴于卫星导航技术在民用和军事领域的重要意义,使其得到了许多国家的关注。我国也于2000年 10月31日和12月21日成功发射了第一颗和第二颗导航定位试验卫星并建立了我国第一代卫星导航定位系统--"北斗导航系统",但由于起步晚也没有得到 广泛应用。目前在我国应用最多的还是美国的GPS系统。本文就针对当前比较普及的GPS系统,对其卫星定位信息的接收及其定位参数提取的实现方法予以介绍。
     通常GPS定位信息接收系统主要由GPS接收天线、变频器、信号通道、微处理 器、存储器以及电源等部分组成。由于GPS定位信息内容较少,因此多用RS-232串口将定位信息(NEMA0183语句)从GPS接收机传送到计算机中 进行信息提取处理。从串口读取数据有多种方法,在此直接使用 Win32 API函数对其进行编程处理。在Windows下不允许直接对硬件端口进行控制操作,所有的端口均被视为"文件",因此在对串口进行侦听之前需要通过打开 文件来打开串口,并对其进行相关参数配置: 

      m_hCom=CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,0,NULL, 

         OPEN_EXISTING, FILE_FLAG_OVERLAPPED,NULL); //以异步方式打开COM1口 

      SetCommMask (m_hCom, EV_RXCHAR )  //添加或修改Windows所报告的事件列表 

      SetupComm (m_hCom,READBUFLEN/*读缓冲*/,WRITEBUFLEN/*写缓冲*/); // 初始化通讯设备参数  // 清除缓冲信息 

      PurgeComm (m_hCom, PURGE_TXABORT | PURGE_RXABORT |           PURGE_TXCLEAR | PURGE_RXCLEAR)  

      // 对异步I/O进行设置 

      CommTimeOuts.ReadIntervalTimeout = MAXDWORD  //接收两连续字节的最大时间间隔 

      CommTimeOuts.ReadTotalTimeoutMultiplier =0; //接收每字节的平均允许时间 

猜你喜欢

转载自blog.csdn.net/hycx2018/article/details/79929603