软件导刊官方 国内统一刊号:CN 42-1671/TP
国际标准刊号:ISSN 1672-7800
* 投稿网站
软件导刊
《 软件导刊 》
级别:省级     分类:科技    周期:月刊
主管单位:湖北省科学技术厅
主办单位:湖北省信息学会
国内刊号:CN 42-1671/TP
国际刊号:ISSN 1672-7800
收稿编辑:QQ /电话2880067970 / 0531-85701017
投稿邮箱:rjdk@tougao.cc
期刊名称 (*)投稿期刊名称
文章标题 (*)投稿论文的题目
作者姓名 (*)只需填写通讯作者
作者电话 (*)方便编辑及时沟通
作者邮箱 (*)方便编辑做详细用稿答复
上传稿件 (*)限word文件
投稿附言   
期刊信息
期刊名称:软件导刊
主      编:高建平
出版周期:月刊
出版地区:湖北省武汉市
定      价:25.00元
收      录:知网、万方、维普
社      址:武汉市洪山路2号科教大厦D座5楼
邮政编码:430071
范文-基于Windows XP平台的航测软件简介-软件导刊

 基于Windows XP平台的航测软件简介

刘士凯1,2胡明考1,.2
(1.核工业航测遥感中心,河北 石家庄 050002
2.中核集团铀资源地球物理勘查技术中心(重点实验室),河北 石家庄 050002)
摘要:通过引进消化吸收开发的方式,研建了AGRSS航测系统。ADASNT系统控制及数据采集软件是其配套开发的航测软件。在WindowsXP操作环境下,以C++Builder为开发工具,很好地解决了系统访问硬件的一些关键技术,实现了计算机与外设之间的串口通信、CPU访问I/O端口,以及模拟信号的输出等,并实现了基于WindowsXP平台的航空物探数据的采集、记录、显示等有关功能。
关键词:航测软件 Windows XP平台 数据收录 系统控制
1.引言
在原进口设备逐步进入退役的过程中,核工业航测遥感中心通过进口探测器主要部件、市场采购通用部件、委托加工专用部件、自主开发系统控制、数据收录平台的方式,研建了AGRSS航测系统。实现了具有自主知识产权的、高集成度小型化、智能化的航测系统。该系统以工业PC机为基础,附加GPS定位仪、航空多道能谱仪、航空磁力仪、雷达高度计、气压高度计、机外温度计等探测器借口插板,在Windows XP操作环境下,用C++ BuilderXE语言开发了包括系统控制、数据初步分析、数据收录等功能的航空物探测量软件,简称ADASNT航测软件。
2软件设计
航测系统包含放射性伽玛能谱、磁力、GPS等多种探测系统,并且是动态测量,航测软件必须具备如下功能:
——同步,以系统时钟为标识,确保记录数据的空间位置吻合;
——系统控制,如能谱仪稳谱,确保各个外设工作正常;
——数据初步分析,确保采集数据可信;
——实时显示,为操作员实时提供测量结果及系统和各个外设工作状态的模拟和/或数字显示;
——记录数据,对采集数据进行完整记录;
——记录结果校验,确保记录结果可信;
——数据备份,采用双硬盘或存储卡对记录数据实时备份,以防数据灭失。
2.1系统分析
在PC机上以WindowsXP操作系统为基础,以Borland C++ BuilderXE为软件开发工具,采用高精度多媒体定时器进行精确定时,用WinIO提供的端口操作函数进行硬件I/O编程,用PComm Pro提供的函数进行串行通信编程,采用多线程编程技术来实现GPIB(General Purpose Interface Bus通用接口总线)数据的采集及稳谱处理,实现了以下功能:
GPIB数据接收及稳谱功能
分辨率计算及谱线显示功能
串口数据接收功能
AD\DA转换功能
数据显示:测线号、基点号、GPS定位坐标,系统时间、磁盘剩余时间。
数据模拟曲线显示:屏幕显示不同变量曲线,每屏显示选定8条变量曲线。同时显示变量名称、实时测量数据。
数据模拟曲线滚动:由于测量时间长,记录曲线要像纸带卷动一样滚动显示。
数据记录:将数据保存到数据文件。
帮助。
2.2 系统控制的关键技术
在Windows XP环境下,处于Windows用户状态的应用程序不能直接对硬件设备进行操作,必须通过处于核心态的设备驱动程序间接与硬件交互。因此,编制相应的设备驱动程序是进行计算机硬件设备开发必须面临的问题。在整个系统的设计过程中,数据的接收和记录是最为重要的部分,其关键技术是如何实现在Windows XP环境下利用C++Builder编程技术实现I/O端口的访问、串口通信的实现、多线程及多媒体定时器等编程技术。
1) 用WinIO函数实现C++Builder在WindowsXP下的端口访问技术。
C++builder在Win95/98的OS可以直接调用inport和outport等函数,但到Win2000以后,因为这些函数不能直接进入ring0层,所以inport这些端口操作函数是不能在Win2000以后的OS上直接调用的。Winio驱动程序通过使用内核模式下设备驱动程序和其它一些底层编程技巧绕过Windows安全保护机制,这样应用层对IO端口的访问就不会导致异常了,允许32位Windows程序直接对I/O口进行操作。
2) 用PCommPro动态连接库开发C++Builder在Windows下的串行通信技术。
PCommPro通讯动态链接库建立在Win32的通讯API的基础之上,将Win32的通讯API进行包装,为用户提供较为高级的接口。PCommPro提供专为串口通信而设计的50多个API函数,支持VB、C/C++和Delphi等多种编程语言,在功能和应用上都不会像MicrosoftWin32COMMAPI那样让开发者感到困扰。因此,在C++Builder中利用PCommPro通讯动态链接库开发串行程序时变得非常轻松,大大节省了开发时间和成本。
3) 采用多媒体定时器(MultimediaTimer)技术。
虽然C++BuilderXE有专用的定时器控件Timer,而且使用很方便,可以实现一定的定时功能,但最小计时精度仅为55ms,且定时器消息在多任务操作系统中的优先级很低,不能得到及时响应,往往不能满足实时控制环境下的应用。采用Windows下提供的多媒体定时器,优先级别高,其定时分辨率(Resolution)最高为1ms,远远高于C++BuilderXE默认的Timer定时器的性能(55ms)。
4) 多线程技术。
Win32是一种抢占式多任务操作系统,他为每一个线程轮流分配时间段,让线程在分配的时间段里运行。每个进程除了系统自动生成的主线程外,还可以创建多个线程来协同完成指定的操作。利用多线程可以大大提高CPU的利用率。对于该应用程序,由于要处理的数据量非常大,只有利用多线程才能满足要求,才能保证数据不丢失。
2.3系统结构设计
综合考虑本系统的功能,系统应该以数据采集为中心。系统主要处理的是一个数据的交互问题,即保障PC机与硬件设备的通信正常。在通信正常的情况下,PC机将采集到的数据进行处理,并通过对Windows窗体的设计,实现对数据进行接收、处理、显示、保存及控制的功能。系统框图见图2.1。
 
图2.1系统框图
2.4程序结构设计
根据系统要实现的功能,本着该程序软件模块化、可视化、菜单式功能的设计理念,整个系统的程序框架设计可分为六个部分来完成,即GPIB数据接收功能、分辨率计算及谱线显示功能、串口数据接收功能、模拟输入/输出转换功能、测量数据记录及模拟曲线显示功能、帮助等。其中每个部分的模块再根据要求详细设计。
由于整个设计的功能实现是基于C++BuilderXE环境下制作的窗体的,因此每个部分模块都是以窗体的形式实现。系统模块框图见图2.2。
 
图2.2系统模块框图
2.4.1主界面设计
在一个应用程序中必须对界面进行友好的设计,使其既能完成程序的功能,又能方便用户操作。本系统主界面采用通用的MID窗体模式,实现了实时显示,初步分析处理,记录及计算分辨率、参数设置、调用帮助等功能。
该界面中添加了主菜单、快捷栏、状态栏、图形显示控件,主菜单中囊括了主要功能,快捷栏可方便用户快速进行操作,状态栏可用于显示系统时间、磁盘剩余空间、程序工作状态等。图形控件用于绘制选定变量的曲线、显示变量名称、实时测量数值。
2.4.2参数设置界面
该界面主要实现对串口参数及曲线通道参数的设置,保存等功能。依次在每个复合框中填入数据,根据硬件设备的串口配置参数,选定合适的串口参数进行操作,通过下拉复合框可对参数进行设置修改,保证串口通信的正常。
 
2.4.3分辨率界面
该界面用于将采集到的温度、湿度、露点存储在数据库中,用DataGridview对数据进行绑定显示。然后对该数据库进行各种操作。点击”退出”按钮即可退出数据输入界面。分辨率测试计算界面如图2.3所示: 
图2.3分辨率测试计算界面
2.4.4帮助界面
帮助用户了解航测软件的功能、操作以及简单故障排除的方法。
联机帮助系统是应用软件的重要组成部分,为应用软件的使用提供了极大的方便和帮助。本帮助文件使用HtmlHelp帮助系统采用的统一窗口,其左侧包括目录、主题索引、查询等可相互切换的窗格;右侧显示主题文档的内容。这种布局可使用户随意选择目录主题进行浏览,而且随时可以知道正在阅读文档的哪一部分,就象看书一样方便。帮助界面如图2.4所示:
 
图2.4帮助界面
3结语
高度集成化的AGRSS航测系统自2011年研制成功后,经过4年的实践改进,目前已有4套投入生产,并完成了近60万测线公里的航测生产;在2013年 “基于无人机的航空物探(电、磁、放)综合站测量技术研发与应用示范”项目的进一步推广应用,数据通讯功能得到完善和提升。ADASNT航测软件具有运行速度快,用户界面友好,信息丰富,操作简单,系统移植性、扩充性能良好等优点;同时数据记录真实可靠,可以永久保存。它不但能够满足航空综合找矿、航空环境监测的需要,而且还适用于地面汽车能谱测量。
参考文献
[1]余明兴,吴明哲等.BorlandC++Builder6程序设计经典[M].北京:科学出版社,2004.
[2]谭浩强.C语言程序设计[M].北京:清华大学出版社,2004.
[3]雷丽文,朱晓华等.微机原理与接口技术[M].北京:电子工业出版社,2001.