GPSGIS
文章编号:1008-0570(2006)10-1-0218-03
中文核心期刊微
计算机信息》(测控自动化)2006年第22卷第10-1期《
应用
Delphi实现GPS接收机与MapInfo之间的通讯
CommunicationtechniquebetweenGPSreceiverandMapInfoBasedonDelphi
(江苏科技大学)
朱志宇张代华
Zhu,ZhiyuZhang,Daihua
摘要:本文讨论了Windows环境下GPS接收机与地理信息
软件MapInfo之间的通讯原理,利用Delphi中的面向对象,线程多处理技术以及Windows中的动态数据交换(DDE)技术,编写了通讯服务
程序,实现了GPS接收机的数据采集和处理,以及与计算机之间的通讯.关键词:串行通讯;Delphi;多线程;动态数据交换(DDE);MapInfo中图分类号TN741.1文献标识码:A
技术创新
Abstract:ThispaperdiscussesthecommunicationprinciplebetweenGPSreceiverandGISsoftware--MapInfointhewindowsenvi-ronment,compilesthecommunicationprogramthroughtheobject-orientation,multi-threadtechniquesofDelphiandWindowsDy-managementandcommunicationwithcomputer.namicDataExchange(DDE)technique,realizesGPSreceiverdatacollection,Key
words:SerialCommunication,Delphi,Multi-thread,Dynamicdataexchange(DDE),MapInfo
引言
通过将PC机,MapInfo和GPS接收机组合起来,可以构成一个卫星
导航定位
系统.由MapInfo生成全局矢量地图,使用PC机从GPS接收机读取定位信息,再通过DDE动态数据交换,将数据提供给GIS软件,从而在全局矢量地图上实现目标的实时显示与跟踪.同时,在差分GPS系统中,基站平差计算机需要GPS接收机实时提供经纬度,伪距等定位数据和卫星电文,联合已知的基站WGS-84经纬度,求解伪距误差定期发送给多用户进行定位修正.由此可见,计算机与GPS接收机之间的
通信至关重要.但是,MapInfo不能直接读取串行通讯端口,它必须借助于外部程序才能完成与GPS接收机之间的串行通讯,再通过Windows内部通讯机制中的DDE动态数据交换功能从外部程序获取经处理后的GPS定位数据.
WindowsAPI函数编程复杂一些,但效率较高;ActiveX
控件编程最为简单,但效率也最低.这三种方法各有优缺点,广泛应用于测控技术领域.本文选用Delphi6.0,通过调用API,实现了GPS接收机与Mapinfo之间的通讯.
1通讯原理
要实现GPS接收机和GIS开发平台之间正常的数据交换,其通讯软件必须满足:应用程序应该既能实时读取GPS接收机送来的定位数据及GPS卫星电文,向GPS接收机输出设置信息,又能在无需延时或不丢失数据的前提下,同时对接收到的数据进行各种处理,并将所需信息实时传送给信息管理软件.根据以上需求,就需要利用Windows的多任务和事件驱动机制,当GIS软件在前台运行时,可在后台运行通讯任务程序,其原理流程图如下:
Delphi具有功能完备的可视组件库--VCL,可以直接调用windowsAPI函数以及直接嵌入式汇编语言等特点,使其应用越来越广泛,其多线程技术使数据
处理速度更加快捷.
Delphi没有提供相应的串口通讯VCL控件.Del-phi利用嵌入式汇编语言,WindowAPI函数和ActiveX的SPComm和MSComm通讯控件,都能实现对串行口
的读写操作.利用嵌入式汇编代码简单,效率高;利用朱志宇:硕士基金项目:国防预研基金(编号不公开)
-218-