Palm串行通讯GPS数据读取的实现

上传人:平*** 文档编号:12785338 上传时间:2017-10-20 格式:DOC 页数:7 大小:58.50KB
返回 下载 相关 举报
Palm串行通讯GPS数据读取的实现_第1页
第1页 / 共7页
Palm串行通讯GPS数据读取的实现_第2页
第2页 / 共7页
Palm串行通讯GPS数据读取的实现_第3页
第3页 / 共7页
Palm串行通讯GPS数据读取的实现_第4页
第4页 / 共7页
Palm串行通讯GPS数据读取的实现_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《Palm串行通讯GPS数据读取的实现》由会员分享,可在线阅读,更多相关《Palm串行通讯GPS数据读取的实现(7页珍藏版)》请在金锄头文库上搜索。

1、Palm 串行通讯 GPS 数据读取的实现 作者:taling 来源:cnemb 时间:2003 年 6 月 4 日 4:21 阅读 3455 次 李鲁群 () 山东科技大学计算中心 2001 年 11 月 关于 J2ME 程序编写的教程,各大网站均有介绍。但是 J2ME 教程的学习与实际应用毕竟还有一段距离。笔者从事 J2ME 一年多,已经成功地开发出基于无线互联网 palm 与 GPS、电子地图结合个人导航系统。该系统利用 Palm 通过串口采集 GPS 数据,将 GPS 数据在电子地图上定位,地图数据的更新或空间属性分析通过掌上电脑 Palm 的红外口与手机相连,将数据请求发送到服务器,

2、服务器接收请求后,将处理结果返回给 Palm 用户。以下介绍该系统中比较重要技术1 引言目前,无论作为 GIS 应用体现的自定位导航系统,大多数采用笔记本电脑或特别定做硬件,其显示设备的成本占去了整个系统成本的绝大部分,硬件平台的性能和成本制约这些高新技术的推广和应用,个人消费这个巨大的市场一时还难以启动,无法适应某些特殊行业(如:公安、消防、地名数据采集、野外探险导航等)的应用。随着计算机软件硬件技术发展, WAP 无线互联网技术的成功应用、各种具有无线互联网功能的移动智能终端(如:掌上电脑、WAP 手机、Pager 等)的出现,使得拥有这些智能终端的人们可以随时随地完成以前只有办公室或家里

3、才能完成的工作,人们可以在移动中办公,智能终端无线互联网已经成功地应用到人们生活的方方面面。与此同时,与这些智能终端配套的外围硬件(如:GPS、GSM 模块等)的出现,进一步拓展了这些智能终端的应用领域。不言而喻,智能终端、GPS、无线互联网等新技术在 GIS 领域的应用,势必丰富 GIS 理论和拓展 GIS 应用领域。基于这些移动智能终端平台的 GISGPS无线互联网一体化的研究,必然成为 GIS 领域中一个新兴的重要研究领域。国际 GIS 界将 GISGPS无线互联网一体化的研究称为移动 GIS(Mobile GIS)。笔者从事该领域研究 1 年有余,已经成功地开发出基于无线互联网 pal

4、m 与 GPS、电子地图结合个人导航系统。该系统利用 Palm 通过串口采集 GPS 数据,将 GPS 数据在电子地图上定位,地图数据的更新或空间属性分析通过掌上电脑 Palm 的红外口与手机相连,将数据请求发送到服务器,服务器接收请求后,将处理结果返回给 Palm 用户。以下介绍该系统中比较重要技术PDA(palm)GPS 数据的读取。2 Palm 掌上电脑介绍2.1 硬件介绍 Palm 是 3Com 公司的产品,其操作系统为 PalmOS。Palm OS 是一种 32 位的嵌入式操作系统。Palm 提供了串行通讯接口和红外线传输接口。利用它可以方便地与其他外部设备通讯、传输数据。Palm

5、OS 与同步软件(HotSync)结合可以使掌上电脑与 PC 机上的信息实现同步,把台式机的功能扩展到了手掌上。Palm 应用范围相当广泛,如:联络及工作表管理、电子邮件及互联网通讯、销售人员及组别自动化、等等。Palm 外围硬件也十分丰富,有数码相机,GPS 接收器,调制解调器,GSM 无线电话,数码音频播放设备,便携键盘,语音记录器,条码扫描,无线寻呼接收器,探测仪等许多许多。其中 Palm 与 GPS 结合的应用,可以不但可以做导航定位,还可以结合 GPS 做气候的监测、地名调查等。2.2 开发工具选取目前针对 Palm 环境的开发工具主要有 CodeWarror C、JAVA、AppF

6、orgePersonal(Basic)等等。由于 Palm 平台与微机硬件、软件平台有着本质的差异,为了减少开发人员的培训费用,提高开发速度,我们采用 Java 语言作为系统开发工具。Java 技术由三个版本组成:.Micro 微版(J2ME)、. Standard 标准版(J2SE)、 Enterprise 企业版(J2EE)。其中 J2ME 主要针对消费电子类产品(如日常用品,如微小的智能卡,机顶盒,各种手持设备等)和嵌入式设备的开发工具和运行环境。J2ME 具有很多 java 技术特性,它可以在各种支持 java 的设备上运行、代码短小、安全性好、 用 J2ME 实现的应用可以方便地升级

7、到 J2SE, J2EE。图 1 Java 技术结构图3 PDA 与 GPS 通讯的 NMEA 协议 GPS 即全球定位系统,它主要有三大组成部分,即空间星座部分、地面监控部分和用户设备部分。其中 GPS 空间星座部分、地面监控部分均为美国所控制;GPS 的用户设备主要由接收机硬件和处理软件组成。用户通过用户设备接收 GPS 卫星信号,经信号处理而获得用户位置、速度等信息,最终实现利用 GPS 进行导航和定位的目的。目前许多 GPS 厂商遵循NMEA0183 协议针对 PDA 掌上电脑开发许多导航型 GPS。这些 GPS 提供串行通讯接口,串行通讯参数为:波特律4800 数据位8 位 停止位1

8、 位 无奇偶校验GPS 与掌上电脑通讯时,通过串口每秒钟发送 10 条数据。实际导航应用读取 GPS 的空间定位数据时,我们可以根据需要每隔几秒钟更新一次经纬度和时间数据。而更频繁的数据更新就没有必要了,而且会白白浪费 Palm 掌上设备有限的电池。我们不需要了解 NMEA 0183 通讯协议的全部信息,仅需要从中挑选出我们需要的那部分定位数据。其余的信息我们忽略掉。如果此时和卫星的通讯正常的话,可以接收到的数据格式样如下:$GPRMC,204700,A,3403.868,N,11709.432,W,001.9,336.9,170698,013.6,E*6E数据说明如下:$GPRMC 代表 G

9、PS 推荐的最短数据 204700 UTC_TIME 24 小时制的标准时间,按照小时/分钟/秒的格式 A A 或者 V A 表示数据OK,V 表示一个警告 3403.868 LAT 纬度值,精确到小数点前 4 位,后 3 位 N LAT_DIR N 表示北纬,S 表示南纬 11709.432 LON 经度值,精确到小数点前5 位,后 3 位 W LON_DIR W 表示西经,E 表示东经如果当前没有和卫星取得联系,那么字符串的格式为:$GPRMC,UTC_TIME,V,.下面是一个例子:$GPRMC,204149,V,170698,*3A4 J2ME 串行读写 GPS 数据的实现 Palm

10、的 J2ME 对 GPS 串口数据读写可以采用两种方式,一种是采用对串口采用原始单个字节数据读写,另一种采用缓冲区字节数组读写。(注意:J2ME 为 Palm 提供的 KVM 的 1.0 版本不支持串行通讯速率 4800 波特,GPS 串行通讯速率为 4800 波特,必须采用CLDC1.02 以上版本或 KAWT 提供的 Color KVM)在实际 Palm 对串口 GPS 数据读写实验中,我们发现前者效率低、读写速度慢,平均每 37 秒才能读取到所需的 GPS 定位数据,而后者读写速度快,可以每秒读到所需的 GPS 数据,没有 GPS 数据丢失。所以,在此仅介绍后一种 GPS 的读取方式。J

11、2ME 和 Palm Profile 中已经提供了对串口读写的类 Protocol,通过构造 Protocol 实例serialPort,利用 serialPort.openInputStream()获得输入流 InputStream,利用 InputStream 将GPS 串口数据读入到一个缓冲区字节数组,将字节数组转化为字符串,判断 GPS 坐标标志$GPRMC,截取坐标数据。图 2 Palm 对 GPS 读取 UML 协作图见源程序 PrintMe.javapackage earth_survy;import java.util.*;import javax.microedition.i

12、o.*;import java.io.*;import com.sun.kjava.*;import m.*;public class GetGpsData extends Spotlet static Graphics g=Graphics.getGraphics();static Protocol serialPort = new Protocol();static String url=0;baudrate=4800;bitsperchar=8;stopbits=1;parity=none;static InputStream is;/ Open the serial Port for

13、Gps Data Inputpublic boolean openPort()try serialPort.open(url,1, true);is=serialPort.openInputStream();return true;catch (Exception ex) return false;file:/Close the serial Portpublic boolean closePort()try is.close();serialPort.close();return true;catch (Exception ex) return false;file:/Read the GP

14、S datafile:/Mark is $GPRMCfile:/rdLen is the buffer lengthfile:/getlen is the return lenth;public String readGpsData(String mark,int rdlen,int getlen)byte readBuffer = new byterdlen;String rawGpsData;String Gprmc;while (true)tryfile:/Read raw GPS data into a buffer;is.read(readBuffer); rawGpsData=ne

15、w String(readBuffer);file:/determin the positon of the Mark= $GPRMC;int pos=rawGpsData.indexOf(mark);if (pos-1)Gprmc=rawGpsData.substring(pos);if (Gprmc.length()getlen)Gprmc=Gprmc.substring(0,getlen);break;catch(Exception e)return Gprmc;/end loop/end method参考文献 龚健雅.整体 SIS 的数据组织与处理方法.武汉:武汉测绘科技大学出版社,1993 http:/ C.Thomas Wu.An Introduction to Object-Oriented Programming with Java.2001 蒋慧等.UML 设计核心技术.北京:希望电子出版社.2001 关于作者 李鲁群,男,辽宁省沈阳市人,博士生,高级工程师,从事计算机网络应用、Web GIS、Mobile GIS 研究。Email:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号