基于javacommunicalapi的gps串口通信.docxVIP

  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文档。上传文档
查看更多

基于javacommunicalapi的gps串口通信

gps和gis是交通运输应用的中心关键技术。在交通运输方面,我们需要开发gis数据处理软件,并将gis软件与gis软件相结合。在开发GPS数据处理软件时,首先要解决计算机与GPS接收机的串口通信问题。在GPS接收机和计算机进行数据传输的过程中,计算机的串行端口提供了两者之间数据传输的通道。GPS接收机采用异步串行的方式,利用RS232串行二进制数据交换,电缆接口将采集到的数据通过串行端口传输到计算机。在GPS接收机和计算机通信方面的商业产品具有一定的局限性,难以进行扩展。因此,自行开发这方面相关的软件对于智能交通系统开发还是具有一定的实际意义。

Java具有开放性、平台无关性和面向对象等特性,是一个理想的GIS软件开发平台。本文作者利用Java串口通信API开发了一个用于GPS通讯的Java程序,大大简化了对串口进行操作的过程,并且还结合MapObjectsJavaEdition开发工具实现了对GPS信号的实时跟踪和显示。Java串口通信API(Jm)是一个Java扩展类库,并不包括在标准的Java2SDK当中,需要进行安装。作者所开发的程序在Windows2000上编译通过并成功运行,所使用的Java2SDK版本是较新的1.4.2。

1事件接收过程

利用串口接收GPS数据总的数据流程如图1。

GPS接收机采用NMEA-0183协议进行通信。NMEA语句的格式有多种,所有的语句都是由范围在16进制的HEX14到HEX7E的ASCII字符组成,并且每条语句都有固定的格式,其中的每个字段都有确定的定义,例如下面就是一条典型NMEA语句:

GPGGA,111200.02,6016.3092,N,02458.3841,E,1,09,0.8,30.6,M,18.1,M,*5D

整个接收过程分为下面4步:

(1)从串口读取字节码。该任务由类NMEADataProcessor负责完成,在通讯的时候运用了Java的多线程技术;

(2)提取NMEA语句。NMEA0183Sentence雷被设计成对应于NMEA语句,它的一些私有变量分别对应了NMEA语句的一些字段;

(3)提取有效字段。ProcessNMEASentence方法完成从NMEA语句中提取所需要的信息,如经纬度和高度等。为简单起见,作者的程序仅对包含信息较多的GGA格式的语句进行了字段的提取。如果需要对其他格式的语句如GLL、RMC等进行提取,可以设计相应的类来完成;

(4)建立事件监听器接口。Java中事件是一个非常通用的概念,并不仅仅局限于基于窗口的应用程序。在程序中该接口由GPSPositionListener来完成,它只有一个GPSPositionReceived方法。

2gps多线程技术

该任务由类NMEADataProcessor来完成。为了在接收GPS数据、分析NMEA语句和提取有效字段的同时希望能够不中断程序其他部分的执行,作者运用了Java的多线程技术,在NMEADataProcessor类中新建一个线程来完成GPS数据的接收和处理。程序执行到NMEADataProcessor。start()时开始生成自己的线程,然后由方法NMEADataProcessor。run()负责处理GPS数据。

3基于cesrara的nmoa法

从串口接收到的NMEA语句是由许多条连续的单一语句组成的,中间由ASCII字符CR和LF隔开。ProcessRawData()方法把字节码分解为一条一条的单一NMEA语句,然后再调用方法NMEA0183Sentence()构造每一条NMEA语句以作进一步的处理。

当提取到了一条NMEA语句之后必须要检验它的有效性。通过计算整个NMEA语句的校验和,把计算所得的校验和与所接收到校验和作比较,如果不相等该语句就无效。

4ence提取经纬度信息

NMEA语句的格式有多种,本文仅对GGA语句进行了精度和纬度信息的提取。方法processNM-EASentence()完成从GGA格式语句中提取经纬度信息。

NMEA的经纬度格式是xxmm.dddd,xx代表度,mm代表分,dddd是以分的十进制小数表示,方法nmeaLatOrLonToDouble把字符串形式的经纬度转换成以度的十进制表示的双精度数值。类GPSPosition有2个私有变量_latitude和_longitude,分别代表纬度值和精度值。

5gpspod方

文档评论(0)

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

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

1亿VIP精品文档

相关文档