基于GPS智能导游系统中定位数据提取方法研究.docVIP

基于GPS智能导游系统中定位数据提取方法研究.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于GPS智能导游系统中定位数据提取方法研究

基于GPS智能导游系统中定位数据提取方法研究   摘要:本文介绍了基于GPS(Global Positioning System)的旅游景区智能导游系统中定位导航数据的提取方法,用C++实现。文章首先分析了GPS导航数据的格式及在智能导游系统中需要的关键数据。然后阐述了提取GPS导航数据的串口操作及缓冲区的设置。最后给出了GPS串口通信及其定位导航数据提取模块的实现方法。   关键词:GPS数据;提取;串口通信;智能导游系统      1 引言      随着人们生活水平的日益提高,旅游在人们的生活中的地位已经越来越重要。在人们越来越热衷于旅游的同时,一些不可忽略的问题凸现出来,传统的人工导游已经不能满足游客的需求了。这就需要一种能够提供更加方便,更加贴心的智能导游。它可以向游客提供基本的导游解说,位置动态显示,景点预览,目的地最优路径规划,团队信息交互及集合等。在整个系统中最重要的一步是定位导航数据的提取。基于此,本文主要阐述了智能导游系统中关键GPS数据的提取方法及GPS串口通信模块的实现。      2 GPS及GPS数据格式      2.1 GPS简介   GPS利用导航卫星进行测时和测距,以构成全球定位系统。这一系统由空间星座、地面监控系统、用户接收机三大部分组成。用户通过接收机接收GPS卫星信号,经信号处理而获得三维位置、航向和时间等信息,进而实现利用GPS进行导航和定位的目的。   2.2 GPS数据格式   GPS定位信息格式常采用NEMA0183格式,数据内容较少,因此多用RS-232串口将定位信息从GPS接收机传送到数据处理模块中进行信息提取处理。数据主要由帧头、帧尾和帧内数据组成。根据数据帧的不同,帧头也不相同,主要有“$GPGGA”、“$GPGSA”、“$ GPGSV”以及“$GPRMC”等。在智能导游系统中,我们所关心的定位数据主要有经纬度、海拔高度等。这些数据可以从“$GPGGA”帧中获取得到,该帧的结构及各字段标记如下: $GPGGA,,,,,,,,,,M,,M,,*hh   本系统所需要的数据是“$GPGGA”的、、。、是定位的基本数据。是相对于海平面的高度,当景区是非平坦的地域时,它可以标识游客所处位置相对于海平面的高度。      3 定位导航数据的接收与处理      3.1 串口初始化操作   由于GPS定位信息内容较少,因此多用RS-232串口将定位信(NEMA0183语句)从GPS接收机传送到计算机中进行信息提取处理。从串口读取数据有多种方法,比如直接使用 Win32 API函数对其进行编程处理。在Windows下不允许直接对硬件端口进行控制操作,所有的端口均被视为“文件”,因此在对串口进行侦听之前需要通过打开文件来打开串口,并对其进行相关参数配置。串口设置一般为:1 bit开始位,8 bit数据位,1 bit结束位,没有奇偶校验,波特率参考设备说明书。   首先直接使用Win32 API函数CreateFile打开串口。与系统中其他对象一样,通信端口也是用句柄来标识的。CreateFile函数返回被操作的通信端口句柄,如果串口被成功打开时,则返回其句柄,否则返回INVALID_HANDLE_ VALUE。当调用CreateFile成功打开串口之后,接下来就要进行串口配置了。函数GetCommState和SetCommState可用于检索和设定端口设置的DCB(设备控制块)结构。该结构中BaudRate、ByteSize、StopBits和Parity为串口波特率、数据位数、停止位和奇偶校验控制等信息。程序中可先用GetCommState检索端口的当前设置修改其中的部分字段,然后再用函数SetCommState进行端口设定。   成功设置完端口参数后,就要进行超时参数的设置。通过GetCommTime-outs函数得到系统默认的超时参数,进行适当配置,然后用SetCommTime-outs函数进行重设超时参数。   串口初始化,还要进行串口缓冲区的设置。调用SetupComm(HANDLE hFile, DWORD dwInQueue, DWORD dwOutQueue)函数,其中第一个参数是打开串口的句柄,第二个参数是输入缓冲区大小,第三个是输出缓冲区大小。   3.2 定位数据的接收   在成功打开并设置串口后,可采用轮询串口方式或事件触发方式对GPS数据进行接收处理。采用事件触发方式效率比较高,调用SetCommMask函数设置串口事件。本文设为EV_RXCHAR事件触发方式,当串口有字符到达时就会启动ReadFile函数完成对GPS定位信息的接收。ReadFile函数负责将串口缓冲区中的数据读到缓存。   经过我们多次实验

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档