一种复杂模式网传数据软件模拟器的设计
2017-03-21潘高峰
潘高峰,谢 勇,梁 盛
(中国卫星海上测控部, 江苏 江阴 214431)
一种复杂模式网传数据软件模拟器的设计
潘高峰,谢 勇,梁 盛
(中国卫星海上测控部, 江苏 江阴 214431)
针对某型远程监控系统复杂、数据量大、数据结构多变等给软件设计带来的难度,设计了一个软件模拟器,构成闭环调试系统,利于检查实战软件,该模拟器以XML技术为核心,综合了数据帧编排、软件界面自动生成、用户控件定制等先进技术,有效对监视对象进行了模拟,实现了多模式下数据的自动组帧和发送功能;通过该模拟器的配合,发现实战软件设计缺欠,具有很好的推广应用价值。
模拟器; 帧结构; XML; 界面自动生成; 用户控件
0 引言
某远程监视系统是为完成远端多套设备状态监视而设计,每套设备具有多种工作模式,每种工作模式具有大量的监视信息,且设备数据具有多变的特点。这种复杂数据结构给软件设计带来较大的难度,在没有实际对象的软件调试状态,特别是在关键代码或整体测试状态,软件功能和性能无法保证,给现场调试和测试带来极大工作量。在这种情况下,设计了具有针对性的软件模拟器,模拟对象实际运行状态,从而构建软件闭环测试环境。
本文针对该系统复杂、数据量大、数据结构多变的特点,以XML技术为核心[1],综合数据帧编排、软件界面自动生成、用户控件定制等先进技术,设计了一个可以有效模拟监视对象的模拟器。
1 系统结构及原理
该远程监视系统主要包括监视对象、监视服务器、监视终端组成,如图1所示。其中,监视对象由多个子系统组成,子系统可以工作在不同的工作模式,每个子系统又由多个分系统组成,各个分系统按照约定的数据格式上报数据给系统监控台,各个子系统将最终数据上报给本地服务器;监视服务器用于将多个本地服务器的数据进行处理,包括数据帧处理转发、数据存储以及远程测试等功能;监视终端是面向用户的终端,将多个子系统的数据直观显示给用户。
图1 远程监视系统原理框图
本文所设计的模拟器仿真图1中所注的模拟部分,其功能为模拟形成多个子系统的数据,并将其发给监视服务器,但设计中存在系统多、模式多、数据种类多、数据量大等难点。经分析,设计采用以XML技术为核心,并综合多项成熟技术,具有高扩展性、高时效性的特点。
2 关键技术的实现
对于软件模拟器开发而言,真实性和时效性是必须考虑的问题[2],软件流程如图2所示。该软件模拟器的设计面临数据类型多变、数据传输量大、控制逻辑复杂等难题,经分析比较,解决关键技术的措施包括:制订数据通信协议以及通信机制,保证数据传输可靠;采用XML技术,实现数据结构化;采用菜单项关联XML文件方式,实现复杂逻辑控制;以FlowLayoutPanel控件为容器,以XML文件为介质,通过设计自定义控件,实现界面自动生成;使用界面控件值与XML文件对应属性并读方式,实现数据动态组帧发送,通过这些关键技术的解决,成功实现了软件模拟器的设计。
图2 软件流程图
2.1 通信机制
根据设备参数实际情况,将这些参数分为缓变数据和瞬变数据,缓变数据是指设备端几乎没有变化的数据,比如状态设置;瞬变数据是指设备端时刻变化的数据,比如跟踪的AGC电压。
对于缓变数据采用1秒时间间隔发送方式,接收端每收到一次缓变数据帧,返回一个应答帧,在发送完全部缓变参数后,等待5秒内,如未收到某个应答帧,重新发送丢失的数据帧,直至完成全部数据帧发送。在完成全部数据发送后,设备缓变参数变化时,仅发送变化的相应数据变量,并通过数据应答帧确认数据被接收,如5秒内未收到该数据确认帧,重新发送丢失数据帧。
在所有缓变数据发送完成后,进行瞬变数据发送,采用每1秒发送一方式次,无需应答机帧,也无需考虑参数变化,全部发送整帧。
2.2 数据帧结构
任何通信系统均有一定的通信协议支持来完成特定通信任务[3],本文设计了一种简化信息交换协议(SIEP),帧结构分为控制域和数据域,能够实现多变数据的便捷组帧,其帧格式如图3所示。
图3 数据帧格式
其中,设备编码表征图1中子系统,每个子系统具有唯一编码值;变量编码表征变量信息类型,每个变量具有唯一编码值。
2.3 模式关联
通过设计表征模式信息的XML文件,利用菜单内容按照关键字查找方式生成所需调用表征设备参数信息的XML文件字典,从而实现模式与菜单项的关联,使得程序在自动界面与数据组帧设计上变得非常简便。
1)表征模式信息的XML文件:表征模式信息的XML文件,简称模XML,在文件中设计两个包含逻辑关系的元素,分别为设备加电信息和设备模式信息,这两个元素又包含以每个设备相关信息为属性的多个子元素,如图4所示。
图4 模XML内容
2)表征设备参数信息的XML文件:表征设备参数信息的XML文件,简称数XML,这类文件分为快变和慢变文件,均包含以每个设备相关参数为属性的元素,对于多字节数据表示为元素,对于少字节数据通过组合为元素(少字节数据为其中的子元素),如图5所示。
图5 数XML内容
3)模式与菜单项关联:通过加电信息来决定菜单相关项的使能,通过模式信息来对菜单项相关文本内容进行修改,修改后的文本就包含了模式关键字,进而生成需要形成数据帧的XML文件字典,包括快变和两种字典,字典中的主键为菜单项的文本内容,值为XML目录,也就是通过菜单这个“桥梁”实现了模式与数据的关联。
2.4 界面自动化生成
通过多种自定义控件的设计,并以FlowLayoutPanel控件为容器[4],实现界面元素的结构化自动生成,使用该界面自动生成方法,极大地提高工作效率,其流程如图6所示。
图6 自动生成界面流程图
自定义控件包括文本框、选择框、指示灯和空显示控件[5],这些控制直接用于与用户进行数据交互,其中文本框控件由文本框和2个标签控件组成,选择框控件由选择框和2个标签控件组成,指示灯由按钮和标签控件组成,空显示控件无需添加控件。其中,空显示控件用于对有子元素和无子元素数据进行隔离,增加数据的可读性,实现界面布局与数XML文件的结构化。
2.5 界面控件与数XML并读
程序要求在改变参数值时,需要将改变参数的值组帧发出,这里使用了一种控件与XML文件并读方式,它是基于控件值来源于XML文件,在控件值变化时,XML文件内容并未改变,正是基于这一特性实现了变化数据的判断与组帧,其流程如图7所示。
图7 并读方式流程图
3 软件闭环测试
本设计采用了多种先进技术,达到了软件模拟器 “时间短、费用低、实效好”的设计原则,运行界面如图8所示。
图8 模拟器运行图
通过与实际工程软件闭环测试,发现显示软件的数据处理问题一个:部分参数变化时的数据长度比整帧数据长度长时,程序未能处理,是由于整帧数据为一个BID号,而多个数据同时变化时需要在每个变化的数据前均加上BID号,可能会导致变化数据的帧长超过整帧数据长,显示程序数据处理时未考虑此类情况,对显示程序的判断逻辑修改后正常;发现转换软件多线程处理问题1个:多系统在线时,由于数据量非常大,数据为“多进一出”方式,多线程处理出现竞争,导致个别数据包未能及时处理,通过增加缓存和判读线程数据发送完毕标识解决了此问题。在软件修改完善后,实战软件对于软件模拟器生成的多变数据帧结构均能及时处理,达到良好运行效果。
4 结论
本文仅仅围绕复杂模式软件模拟器设计难点,提出一种复杂模式大数据软件模拟器的设计方法,对于多模式的逻辑关系通过关联设计简单实现,对于大数据通过分别编制XML文件并依赖多模式逻辑关系实现调用,对于界面生成通过软件界面自动生成技术便利实现,大大提高了工作效率,降低了工作强度。通过该软件模拟器与实际工程软件的闭环测试,发现实战软件设计缺欠2个;同时,该软件模拟器的设计思路也适用于其它大数据量组帧软件工程,具有很好的推广应用价值。
[1] 王震江.XML程序设计[M].北京:中国铁道出版社,2006.
[2] 郝兆平.XML应用及发展趋势的探讨[J].计算机工程应用技术,2009(9):23-29.
[3] 王 恒,李水刚,陈 亮,等.测量船船摇前馈数据处理方法研究及应用[J].飞行器测控学报,2011(2):64-69.
[4] 尹 成,陈荔城.Visual C#2010开发权威指南[M].北京: 清华大学出版社, 2012.
[5] 冯廷晖.XML完全手册[M].北京:中国电力出版社,2000.
Design of a Complex Network Data Transfer Software Simulator
Pan Gaofeng, Xie Yong, Liang Sheng
(Satellite Maritime Tracking and Control Department of China, Jiangyin 214431, China)
A software simulator is designed to resolve a kind of remote monitoring system’s design problem of complex system, large amount of data, changeful data structure, etc. This simulator constitutes a closed-loop debugging system with the internet applications, its performance is checked well. The simulator simulates the monitoring object based on XML technology, and integrates formating the data frame, generating the software interface automatically, designing user controls, and the other advanced technology, it realizes to set and sent the complex mode data frame automatically. The internet applications problem is found using the simulator, the design idea has the very good application value.
simulator; frame structure; XML;interface automatic generation; user controls
2016-09-04;
2016-09-27。
潘高峰(1972-),男,辽宁省锦州市人,大学,高级工程师,主要从事仪器控制方向的研究。
谢 勇(1972-),男,江西省九江市人,硕士,高级工程师,主要从事软件无线电方向的研究。
1671-4598(2017)02-0107-03
10.16526/j.cnki.11-4762/tp.2017.02.029
TP311.1
A