孙 婧,刘 莹,孟景涛,李 伟
(1.中国电子科技集团公司第五十四研究所,河北 石家庄 050081;
2.空军北京航空装备训练基地,北京 100076;
3.河北远东通信系统工程有限公司,河北 石家庄 050200)
基于XML的软件通用程序框架
孙婧1,刘莹2,孟景涛3,李伟1
(1.中国电子科技集团公司第五十四研究所,河北 石家庄 050081;
2.空军北京航空装备训练基地,北京 100076;
3.河北远东通信系统工程有限公司,河北 石家庄 050200)
摘要航天测控设备管理存在分机多、分机之间的数据交互格式复杂、内容多变等特点,测控软件开发较为困难。针对这一难题,介绍了XML配置文件的格式,分析了测控设备软件接口的特点,提出了一种基于XML的可配置、易更新的通用测控程序框架,应用于测控设备软件开发,对软件的开发流程在效率和正确率方面有明显提高。
关键词XML;航天测控;设备管理;程序框架
0引言
在航天测控工程中,系统软件需要通过串口、PCI总线、网络等多种接口与各分系统或设备分机进行数据交互,实现对测控设备的管理。因此在测控软件的开发过程中,需要花费大量人力、时间去进行接口与通讯的设计、编码、调试和测试,而且接口在发生变动时(经常发生),维护和修改也会耗费大量时间。接口、通讯代码是整个测控软件的基础,而由不同人员编写的代码质量不尽相同,造成整个软件可靠性降低。
为了解决以上问题,本着统一化设计的思想,提出并实现了一种基于可扩展标记语言[1](Extensible Markup Language,XML)配置文件的测控软件通用程序框架。使用该通用软件框架时,只需要按照规定好的格式将接口文件写出,便可以自动生成所有接口部分的代码;配置好通讯类型和参数,便可自动实现数据通讯;同时还可以根据接口文件自动生成参数显示界面、命令发送界面以及提供日志记录、源码显示等软件基本功能。在实现软件快速开发的同时,还可以提高软件的可靠性。同时也使测控软件代码的通用性、可维护性大大增强。
1XML配置文件
为了将分机间的接口通讯数据进行规范化描述,使用了XML配置文件的形式。XML是万维网联盟(World Wide Web Consortium,W3C)发布的一种标准,是标准通用标记语言(Standard Generalized Markup Language,SGML)的一个简化子集。XML遵循严格语法规范,实现了数据存储格式结构化,具有扩展性好、数据共享与重用简单和网络传输方便等优点,已成为一种通用的数据交换标准[2]。
为了实现接口设计的通用性,以设备分机为单位,使用XML配置文件对分机接口数据及其数据关系进行描述。对分机的接口进行整理之后,制定的主要规则包括:① 对分机外部接口数据元素进行描述;② 对分机接口命令帧格式进行描述;③ 对分机内部数据元素进行定义,并描述内部数据元素与外部接口数据元素之间的转换关系。
接口的规则化描述如图1所示。图1(a)为接口数据的规则化描述,将一个分机的所有数据元素表描述为3个必备要素(设备标识、设备名称、数据元素项);图1(b)为接口命令的规则化描述,将分机的外部接口命令描述为3个必备要素(命令名称、命令标识、数据长度)和一个可选要素(命令内容);图1(c)为内外接口数据转换的规则化描述,其以内部数据元素为索引,将与之对应的外部数据的序号、名称以及外内数据转换方法描述出来。
图1 接口的规则化描述
2代码自动生成
按照制定好的规则将系统接口文件转换为规范化描述的XML配置文件之后,便可以调用编写好的代码自动生成类库进行代码生成,将XML文件生成为程序代码[3,4]。代码自动生成类库目前主要实现了3部分的代码生成:数据结构代码、显示参数和发送命令的窗体界面、分机设备管理基类。
利用XML配置文件中描述的接口数据信息生成相应的数据结构类代码。生成数据结构类代码的过程由BBEMaker类完成,BBEMaker类视图如图2所示,接口类视图如图3所示。
图2 BBEMaker类视图
图3 接口类视图
BBEMaker类实现的主要函数包括:
① Coder_BBECommandClass:根据外部接口命令关系表简历各个命令对应的类;
② Code_BBEElementsClass:为每个分机生成一个数据结构;
③ CoderBBEExToInnerConvertFunction:生成外部接口数据与内部数据元素转换函数。
由BBEMaker类生成的数据结构类代码实现了以下接口[5,6](Interface):IBBEData、IBBEDataCollect和IFrameHead。其中图3(a)为IBBEData接口的类视图,其定义了数据元素应该实现的方法,图3(b)为IBBEDataCollect接口的类视图,其定义了所有数据元素的结构应该实现的方法。在实现了这3个接口之后,生成的数据结构类就可以在外部调用时方便的进行命令数据打包、拆分、索引和赋值等操作。
生成窗体界面代码的过程由BBEViewMaker类完成,BBEViewMaker类视图如图4所示。
图4 BBEViewMaker类视图
BBEViewMaker类实现的主要函数包括:
① Coder_Form_cs:生成*.cs文件,这是C#语言下的窗体界面组成文件;
② Coder_Form_ParaDisplayFunction:生成界面状态显示函数;
③ Coder_Form_TimeEventFunction:生成定时器响应函数,用于刷新界面状态。
由BBEViewMaker类生成的界面包含了XML配置文件中的所有数据元素,可以按照所描述的格式实时显示数据的状态,同时此界面还对外提供命令发送委托[7,8](delegate)handleOfBBECmdSend。此委托传递2部分内容:设备ID和基于IBBEData的数据结构。调用此界面时传入该委托即可实现操作命令从界面到设备的发送[9]。
生成一个分机设备管理基类BBEDevice,实现的主要函数包括:
① Setup:初始化函数,用于调用该类时完成内存、通讯等资源的分配及初始化;
② ReceiveDataEventHandler:提供接收数据的委托处理函数,使用者可自定义处理过程;
③ BBESourceInHandler:提供通讯输入源码数据的委托处理函数;
④ BBESourceOutHandler:提供通讯输出源码数据的委托处理函数;
⑤ BBEExceptionInfoHandler:提供捕获的系统异常信息的委托处理函数。
3配置通讯类型
为了适应各分系统或设备分机不同的通讯方式(串口、PCI/PCIE、网络等),采用XML文件作配置文件,不同通讯配置的参数不同,但是所有的通讯配置都基于IConfig接口,如图5所示。
图5 接口IConfig视图
定义一个处理所有通讯功能的接口ICommunicate,并使处理串口通讯、PCI通讯和网络通讯[10]的数据类全部实现该接口,其UML设计图如图6所示。
图6 通讯处理UML图
这样当主程序框架读取配置文件后,根据配置文件所实现的IConfig接口的属性,自动调用实现了ICommunicate接口的串口通讯类、PCI通讯类或网络通讯类来获取通讯资源,从而实现设分系统或备分机的通信功能,完成数据的收发工作。
在通讯配置发生变动时,只需要更改配置文件中的某一项变动的通讯参数即可,不需要再编译程序。
目前该配置方法已经在多个航天测控工程项目中进行了应用,由于使用了自动生成的代码,使得软件的可靠性得到了提高[11]。根据初步的统计,使用配置文件的代码生成节约了编程人员40%左右的工作量,使软件开发效率得到了较明显的提高。
4结束语
通过配置文件的方式对测控软件与各外部接口之间的接口信息进行配置,设计灵活,便于更改和后期维护。同时使用XML接口文件自动生成程序代码的方式,可以将软件人员从繁杂的接口编程中解脱出来,提升开发效率的同时还提高了软件的可靠性。统一处理所有接口设备通信的处理操作,便于调试,同时减少了分别编码的出错概率,消除了各个设备的接口差异性,为测控管理和自动化运行统一化设计打下基础。
参考文献
[1]MEIXNER G,SEISSLER M,BREINER K.Model-Driven Useware Engineering[J].Model-Driven Development of Advanced User Interfaces,2011,340:1-26.
[2]王庆.XML约束在XML数据存储、发布和转换中的应用[D].上海:复旦大学博士学位论文,2004:15-17.
[3]GREEN M,JACOB R.Software Architectures and Metaphors for Non-WIMP User Interfaces[J].Computer Graphics,1991,25(3):229-235.
[4]CALVARY G.,COUTAZ J.,THEVENIRI D,et al.A Unifying Reference Framework for multitarget user interfacesf[J].Interacting with Computers,2003,15(3):289-308.
[5]KASIK D J.A User Interface Management System[J].ACM SIGGRAPH Computer Graphics,1982,16(3):99-106.
[6]王静,陈立水,王俊芳,等.基于Sub Web Service 服务组合方法[J].无线电工程,2013,43(2):10-12.
[7]张德静.observer模式研究及实现[D].成都:电子科技大学硕士学位论文,2005:20-22.
[8]崔琳,许满武,杨群.一种Delegate机制的设计与分析[J].计算机科学,2004,31(5):82-85.
[9]王明,刘立新,张核铭,等.基于.NET平台的生产管理系统设计与实现[J].无线电工程,2008,38(5):10-12.
[10]狄彩云,张英,狄卫国,等.航天测控通信中指定源组播的技术研究[J].无线电工程,2014,44(9):5- 7.
[11]孙伟杰,张晓欣,毕嘉鸿,等.C程序代码结构审查算法的研究与实现[J].无线电工程,2013,39(3):89-92.
孙婧女,(1988—),助理工程师。主要研究方向:航天测控应用软件及自动化测试技术。
孟景涛男,(1985—),助理工程师。主要研究方向:航天测控应用软件及嵌入式软件。
The Generic Framework of Software Based on XML
SUN Jing1,LIU Ying2,MENG Jing-tao3,LI Wei1
(1.The54thResearchInstituteofCETC,ShijiazhuangHebei050081,China;
2.AeronauticEquipmentTrainingBaseoftheAirForceinBeijing,Beijing10076,China;
3.HebeiFar-EastCommunicationSystemEngineeringCo.,Ltd,ShijiazhuangHebei050200,China)
AbstractThere are great varieties of devices in aerospace TT&C system,the data interaction protocol between devices are different,complex and frequently changed,which introduces great difficulties in software management,this paper provides a solution to realize the general framework of TT&C software.The format of XML files is introduced,the interface characteristic of aerospace TT&C software is analyzed,and a configurable,interface changeable TT&C application framework which is based on XML files is put forward.This framework has already been applied to the TT&C system,and significantly improves the efficiency and the accuracy of the software development process.
Key wordsXML;TT&C;device management;software framework
作者简介
收稿日期:2015-03-22
中图分类号TP311
文献标识码A
文章编号1003-3106(2015)06-0025-03
doi:10.3969/j.issn.1003-3106.2015.06.07
引用格式:孙婧,刘莹,孟景涛,等.基于XML的软件通用程序框架[J].无线电工程,2015,45(6):25-27,31.