基于.NET的雷传产品传输程序设计与实现

时间:2023-06-07 19:30:09 公文范文 来源:网友投稿

摘 要:为了实现与水务部门及时分享特定时次的雷达产品,便于部门联动开展防灾减灾工作,该文采用.NET技术和Visual Basic.NET编程语言在VS2008开发环境下,开发了阳江市雷达产品传输程序。该程序实现了自动筛选当前特定源数据和通过专用光纤传输目标数据的功能。程序投入使用期间,运行平稳,保证了特定时次雷达产品传输的实时性和可靠性,对推进信息资源共享进行了有效尝试。

关键词:雷达产品;传输;程序设计

中图分类号 TN959.4 文献标识码 A 文章编号 1007-7731(2016)21-0091-04

Design and Implementation of Radar Products Transmission Program Based on .NET

Wu Changchun et al.

(Yangjiang Meteorological Office, Guangdong Province, Yangjiang 529500,China)

Abstract:In order to realize timely sharing specified radar data with the water sector, and resume its work on meteorological disaster prevention and mitigation through departmental interaction,the program is successfully developed in Microsoft Visual Studio IDE 2008 with VB.NET programming language.The technology of Microsoft Company-

.NET is adopted. The program can query the specified source data automatically,and transmit target data by using of the special optical fiber. It runs smoothly, during the period of its running, and guarantees the real-time and security in specified radar data transmission efficiently. This work is an effective attempt for information resource sharing.

Key words:Radar products;Transmission;Program design

当前,气象灾害已成为制约人类社会和经济可持续发展的重要因素,而我国是世界上受气象灾害影响最为严重的国家之一[1]。广东地处低纬、濒临海洋,天气气候异常复杂,是全国气象灾害的频发地区,灾害性天气全年都可能发生,且多种灾害可交替出现,气象原因引起的灾害占70%以上[2]。阳江市特殊的喇叭口地形增加了气象灾害发生的强度和频率,也相应地提高了气象防灾减灾的难度。

提高整个社会气象防灾减灾能力,部门联动必不可少。为了切实增强气象等灾害的监测预报预警能力,充分发挥全市水文、气象资源在防汛抗旱工作中的作用,阳江市气象局和阳江市水务局签订了《阳江市气象、水务合作框架协议》(2012年)。立足现代通信搭建气象防灾减灾快速通道,是适应现代社会需求,提升气象业务服务能力,提高气象服务的社会效益及经济效益的必然选择[3]。而天气雷达是探测降水系统的主要手段[4],天气雷达对于所收集的气象信息的传输保证了人们对临近天气状况的掌握[5]。

基于上述协议的要求和具体需要,笔者进行了本程序的开发。为了便于信息资料的共享,阳江气象局与水务局先行架设了专用通信光纤,即使用专用网络进行双方数据的交换共享。在互联网的地址架构中,专用网络是指遵守RFC 1918和RFC 4193规范 [6]。专用网络最大的优点在于其安全性,外界无法进入该网络,因而专用网络的使用保证了双方数据传输的安全性和完整性。

1 项目需求分析

气象图形产品不但能用于气象专业领域,也能走进寻常百姓家[7]。雷达图形产品形象直观,对于相关人员经过培训后,能够更直接地了解当前的气象信息、理解大气演变及其变化趋势[8]。

项目要求对雷达产品中的半点、整点的强度图和速度图在无人值守情况下能够自动筛选,然后按照给定的网络地址进行传输。为了保障源数据的可靠性和稳定性,提供雷达产品的服务器只允许局域网客户访问其提供的数据资源,且不允许在该服务器新建、删除等写操作,而接受雷达产品的服务器(目的地服务器)允许通过来自专用光纤上指定IP的客户进行写操作。通过分析双方服务器给定的网络权限可知,源数据服务器需要的安全级别高于目的地服务器。为了保证源数据服务器的安全运行,要求在二者之间执行雷达产品传输的程序不能直接运行在源数据服务器上,即二者之间不能直接通信。因此,所开发的程序需要在气象局局域网服务器上运行,进而便于在其源数据服务器和目的地服务器上进行数据传输。事实上,该程序起到了桥梁的作用。

局域网服务器上的操作系统是Windows 2003 Server,该服务器操作系统包含公共语言运行库(Common Language Runtime,CLR)。CLR属于.NET Framework的一部分,且是.NET Framework的基础。.NET是一个程序设计层,它的设计理念是“多种语言,一个平台”,不同于Java的“一种语言,多个平台”[9]。即.NET能够保证基于它的程序(无论是何种或几种语言编写)能够兼容运行,保证运行环境的平稳,进而避免为了程序运行而额外搭建运行环境,从而提高了程序开发效率。

CLR是.NET程序的运行环境,能够为.NET程序提供强大的后台支撑。CLR运行库能够为托管代码提供各种服务,如代码访问安全性、对象生存期管理等[10-12]。尤其重要的是,CLR能为.NET程序提供强大的垃圾回收机制,程序员不用考虑内存如何释放,可以更多关注应用程序的功能实现上,而不必过多考虑程序运行环境的平稳。进一步讲,CLR实际工作中能够为运行在同一计算机的若干.NET程序合理分配内存资源,并且及时回收已结束的程序所占用的资源,因而能够防止内存溢出,保障运行环境的平稳[13]。本项目要求的程序必须常驻内存,循环执行一系列指令,内存开销可观,因而对内存资源的占有要求较高。

因此,选用基于微软.NET的Visual Studio软件开发平台具有天然的优势,CLR强大的后台支撑能保证基于

.NET程序的安全平稳运行。VB.NET语言做为一种公认高效简洁的语言,能把编程人员从编写复杂Windwows程序的繁琐工作中解放出来,让他们集中精力去解决实际问题[14]。最终,在Visual Studio 2008+.NET3.0开发环境下我们采用VB.NET语言成功开发了程序,实现了项目要求的功能。

2 程序设计路线与主要技术实现

程序采用单窗口界面编制。编制程序时考虑到了网络地址可能出现的变更情况,因此,界面由两个文本框分别作为源文件根目录、目的地根目录输入框,程序默认源文件和目的地地址。程序初始运行时,会读取后台保存的路径信息。在完成每次雷达产品传输后,会显示该时次产品完成的传输情况。为了便于查看程序运行情况,程序界面右下方记录最近一次开始运行时间。程序运行界面如图1所示。

2.1 程序设计路线 完成文件传输的有多种技术,常用的比如FTP、HTTP等。项目程序在专用光纤上完成数据传输,能够保证带宽、网速稳定和网络安全,因此程序设计不必将过多精力放在网络运行状态和网络安全方面。雷达产品是以.gif存储的图像文件。GIF文件,因其体积小而成像相对清晰,它采用无损压缩技术,只要图像不多于256色,则可既减少文件的大小,又保持成像的质量[15]。因此,雷达图形产品通常以以.gif存储的图像文件。常规雷达产品强度图、速度图容量仅有几十KB大小。程序要循环访问源文件根目录、文件,目的地目录、文件,涉及到文件及文件夹存在与否,根据时间在目的地服务器创建与源文件目录对待的目录,以便存放相应雷达产品。程序要循环涉及到文件及文件夹的访问,故本程序要实现以上功能,结合每个雷达产品的容量及程序所运行的微软服务器操作系统,最终采用FSO(File System Object,文件系统对象)模型。通过采用object.method(对象方法)这种在面向对象编程中广泛使用的技术[16-18],将一系列操作文件和文件夹的动作通过调用对象本身的属性直接实现。而FSO的实际应用依赖于服务器是否开放FSO功能[19]。本项目程序所涉及到三方服务器,除了源服务器不允许写操作外,其他两个服务器均拥有完全的写操作权限。因此,采用依托于.NET的FSO技术可以很好地实现项目要求。

根据项目要求,程序要无限次循环执行,故采用了Timer控件,将FSO功能模块镶嵌在Timer模块内,根据系统时间设置时间间隔,实现了程序的循环执行。

考虑到程序所运行的服务器存在不定时启动的情况,因而程序必须设为开机启动项。程序设置为开机启动,保证程序开机自动运行。程序启动后,在load事件中触发窗口“运行”按钮,然后“运行”按钮调用Timer模块。如此,程序就会在无人值守情况下自动运行,执行循环传输任务。程序设计及运行路线,如图2所示。

2.2 主要技术实现

2.2.1 雷达产品名称命名、存放目录命名和相关操作的算法 通过观察解析雷达产品命名,不难发现,雷达产品诸如YVCyyyyMMddhhmm.gif格式的命名,YVC表示产品类型,yyyyMMddhhmm表示以世界时命名(年月日时分),

.gif是后缀,表示产品是gif图片格式。通过察看源数据服务器的雷达产品存放形式,是以多级目录形式存放的。以世界时命名的雷达产品是存放在北京时命名的“/年/月/日”多级目录里。因此我们在查找筛选指定整点和半点雷达产品时,需要在以北京时为命名规则的目录里筛选复制。在复制传输雷达产品的同时,在目的地服务器创建以北京时命名的目录,以满足目的地服务器所在的雷达产品客户端程序能够读取雷达产品。整个筛选传输流程见图3所示。

按照给定多目录存放提取系统日期后,因为世界时晚于北京时8h,当北京时间小于8时,相应时次雷达产品命名要利用函数DateAdd(timeinterva_,number,date)转换。可以将指定 number 时间间隔(有符号整数)与指定的datepart 相加后,返回该 date。这里我们将timeinterval设置为“d”,即日,number设置为“-1”,date设置为“Now”,亦即当前系统日期减1d。

2.2.2 Timer控件属性设置 因为需要整点和半点的230KM、460KM雷达强度图及速度图,为了减轻服务器负担,程序首先要判断当前时间中的时刻。鉴于雷达产品生成需要数分钟时间,当以最终雷达产品存放在源数据服务器时大概是在整点或半点后数分钟后,因此鉴于兼顾传输的及时性和避免空循环的双重考虑,我们设定循环体的执行时间为每个小时的第10min和第40min。

另外,timer控件执行指令时,需要一定的时间周期来完成,原理上会出现给定的时间片内指令还无法完成的现象,而本项目采用的是专用光纤通信能够保证传输速度和网络稳定,通过测试我们将timer的interval属性设置为30 000ms(30s)能够满足实际需要。

3 结语

本项目首先综合分析了服务器操作系统、通信网络、安全权限等,根据服务器运行的Windows2003 Sever操作系统这一实际情况,灵活采用了微软.NET技术,选用VB.NET编程语言开发了特定时次的雷达产品传输程序。专用通信光纤的架设为本程序平稳运行提供了物理介质基础。因此,本项目能够实现预期目标,是“软硬兼施”的结果。本项目的完成是对跨部门信息共享的有效尝试,为今后信息共享和数据传输积累了经验。

参考文献

[1]穆治霖.完善气象灾害防御机制的思考[J].中国人口资源与环境,2008,18(4):15-19.

[2]林良勋,冯业荣,黄忠,等.广东省天气预报技术手册[M].北京:气象出版社,2006:10-11.

[3]罗雪玲,郭启云,李戟.市级气象台公共气象服务发布与管理平台设计与实现[J].气象科技,2014,42(4):635-640.

[4]俞小鼎,姚秀萍,能廷南,等.多普勒天气雷达原理与业务应用[M].北京:气象出版社,2006.

[5]胡继荣.气象雷达数据的传输方式和算法的基本研究[J].电子设计, 2016,24(4):125-127.

[6]专用网络[EB/OL].[2016-06-19].http://baike.baidu.com/view/2150902.html.

[7]郑虹晖.自动气象站数据图形化应用研究[D].长沙:国防科技大学,2010.

[8]吴彬,李艳芳,张喜亮,等.湖州气象图形可视化软件的设计与实现[J].气象水文海洋仪器,2013,1.

[9]Bryan Newsome,著.李周芳,陶永才,译.Visual Basic 2012入门经典[M].北京:清华大学出版社,2013.

[10]Wikipedia,Common Language Runtime.[EB/OL].[2016-08-02].https://en.wikipedia.org/wiki /Common-_LanguageRuntime.

[11]Paul Deotel,Harvey Deitel著,张君、张学敏等译.Visual C#2012大学教程[M].北京:电子工业出版社,2014:10-11.

[12]Bill Sheldon,Billy Hollis,Rob Windsor,Paul Deotel,Harvey Deitel等著,王净译.NET4.5与Visual Basic 2012高级编程[M].北京:电子工业出版社,2014:48-49.

[13]Bill Sheldon,Billy Hollis,Rob Windsor,Paul Deotel,Harvey Deitel等著,王净译..NET4.5与Visual Basic 2012高级编程[M].北京.电子工业出版社,2014:59-60.

[14]Bryan Newsome,著.李周芳,陶永才,译.Visual Basic 2012入门经典[M].北京:清华大学出版社,2013.

[15]刘宏新,贾儒,周兴宇,等.基于物元标识的人机交互式机械排种器虚拟装配[J].农业工程学报,2016,32(1).

[16]孙康生.应用FSO对象模型实现文件查找的探讨[J].开封大学学报,2004,18(2).

[17]常婉纶.利用FSO 实现文本记录导入ACCESS 数据库[J].安庆师范学院学报(自然科学版),2008,14(1).

[18]王小敏.JavaScript FSO实现客户端XML文件读写Reading and Writ ing XML in the Client by JavaScript FSO[J].电脑开发与应用,2010,(23)12.

[19]夏端峰,王建红.FSO在ASP中的应用及安全防范[J].科技信息,2007,30. (责编:张宏民)

推荐访问:程序设计 传输 产品 net