电子装备虚拟组件测试平台软件设计与实现

2017-06-26 11:36顾荣军周志增王在立刘朝阳
电子科技 2017年6期
关键词:控件组件装备

顾荣军,周志增,王在立,刘朝阳

(中国洛阳电子装备试验中心,河南 洛阳 471003)



电子装备虚拟组件测试平台软件设计与实现

顾荣军,周志增,王在立,刘朝阳

(中国洛阳电子装备试验中心,河南 洛阳 471003)

针对某型电子装备的射频信号辅助测试平台开发需求,基于VC++与Flash联合的设计方法,充分利用VC++的运行效率和Flash的多媒体丰富表现力,在Flash平台中进行电子装备主要组件的虚拟化设计和人机交互设计,在VC++程序中嵌入Flash并实现虚拟仪器的数据通信。结果表明,装备保障人员可通过该软件平台形象直观地分析或复现各主要测试节点的信号特性。

虚拟组件;测试平台;Flash;VC++

虚拟组件测试软件平台的开发,不仅需要注重其功能的强大,组件的虚拟化和交互界面的设计也应当做到逼真美观。在应用软件开发项目中,常用的开发平台为VC++,它提供了多种现成的界面控件,简化了Windows应用程序的开发工作,但VC++在界面设计方面的功能相对现行的流行技术仍有不足[1]。Flash技术诞生于20世纪90年代,经过多年的发展,Flash已经由简单的动画制作工具发展成功能强大的软件开发技术平台[2-3],拥有面向对象的编程语言集成开发环境、运行引擎、通信协议、开发框架、虚拟机。Flash具有跨平台的能力,以及出色的图形处理能力、丰富的画面表现力和优秀的交互性能[4-6]。

依据某型电子装备虚拟组件测试平台开发项目的软件设计需求,文中采用VC++与Flash联合开发的方法,发挥VC++和Flash开发环境的优点,方法高效、快捷。

1 总体设计

在VC++程序内嵌Flash的相关文献[7-8]中,通常仅利用Flash技术来显示一些文字或者数据信息,没有实现实时响应用户操作的功能,缺乏交互性。在进行软件交互性设计时,Flash不仅可以操作数据和显示信息,还可通过它控制VC++程序的行为。图1所示为软件平台的功能设计示意图,VC++程序负责平台中的程序框架和数据通信,Flash则用来实现各类信息的输入和显示,且两者之间具备数据交互能力。

图1 软件功能示意图

在进行软件平台开发时,通过在VC++环境下调用Shockwave Flash控件,完成组件测试的虚拟化,组件面板及器件在Flash环境中完成虚拟设计。如果在VC++与Flash,则不需要进行交互操作,只需插入Flash控件,设置调用的Flash文件路径即可[6]。分析虚拟组件测试平台软件开发需求,VC++与Flash之间存在消息传递,需要实现VC++与Flash间的交互,软件设计流程如图2所示。

图2 虚拟组件测试软件设计流程图

2 测试平台软件设计与实现

2.1 Flash环境下的虚拟组件构建

图3 虚拟组件构建环境

虚拟组件构建使用Macromedia Flash Professional CS3开发环境,在软件开发过程中,Flash程序和VC++程序设计同等重要。要构建一个Flash程序,通常需要执行以下步骤[9-11]:(1)分析软件开发需求,确定应用程序要执行哪些基本任务;(2)创建并导入媒体元素,如图像、视频、声音、文本等,并在舞台和时间轴中排列这些媒体元素,以定义它们在程序中显示的时间和显示方式;(3)根据需要对媒体元素应用特殊效果,应用ActionScript语言编写代码以控制媒体元素的行为方式,包括这些元素对用户交互的响应方式;(4)测试程序,确定是否按预期方式工作,并发布程序为*.swf文件。

在本项目中主要制作的媒体元素为某型电子装备组件模块中的器件模型、结构模型,以及状态指示灯、开关按钮等,图4所示为虚拟组件中的部分器件模型,它们存放在Flash的组件库中。

图4 器件模型

在Flash场景中,导出组件库中设计完成的器件模型、结构模型,以及状态指示灯、开关按钮等,将它们依照实际的组件构成进行组合,可以进一步构建各组件单元模型。图5所示为构建完成的部分虚拟组件。

图5 组件模型

在构建虚拟组件模型时,需根据功能需求编写ActionScript代码来实现与用户的交互响应。Flash中可以通过FSCommand命令向VC++发送命令参数,其基本语法为fscommand(cmd, args),其中,cmd为所要执行的命令名,arg为该指令所用到的参数[12]。

2.2 应用程序设计及数据信息交互

应用程序为VC++环境下的MFC对话框程序,通过Shockwave Flash控件加载Flash文件,该控件的CShockwaveFlash类[13]提供了几十种方法函数实现与Flash间的交互。

要实现VC++与Flash的交互,首先要在VC++工程中声明消息映射宏,在xunizujianDlg.cpp文件中添加如下消息映射宏

BEGIN_EVENTSINK_MAP(CXunizujianDlg, CDialog)

//{{AFX_EVENTSINK_MAP(CXunizujianDlg)

ON_EVENT(CXunizujianDlg,IDC_SHOCKWAVEFLASH,150/*FSCommand*,

OnFSCommandShockwaveflash, VTS_BSTR VTS_BSTR)

//}}AFX_EVENTSINK_MAP

END_EVENTSINK_MAP()

其中,IDC_SHOCKWAVEFLASH为控件的ID号。在xunizujianDlg.h文件中添加:afx_msg void OnFSCommandShockwaveflash(LPCTSTR command, LPCTSTR args);使用CShockwaveFlash类的LoadMovie()函数可以导入指定路径下的Flash文件,SetVariable()函数和GetVariable()可以设置和读取Flash中的变量。

VC++中接收由Flash发送的命令,并处理作出响应,如在另一个Shockwave Flash中加载相应的测试视频,在编辑控件中显示相应节点的标准值和提示信息。这些交互通过消息响应函数OnFSCommandShockwaveFlash(LPCTSTR command, LPCTSTR args) 实现,两个参数即为在Flash中使用FSCommand命令向VC++传递的参数。在消息响应函数中,对两个参数进行处理,即进行字符串比较,根据不同的字符串判断用户进行了何种操作,从而做出相应的响应。

例如,用户在虚拟组件的某个接口处单击鼠标,Flash就向VC++发送一个命令字符串“ml_1”,在VC++中通过strcmp函数将收到的命令字符串与预先定义的单击此接口会发送的命令进行比较,判断用户是否点击了此接口,如果是,则加载此接口相应的所有信息,包括信号参数值、波形视频、频谱视频等。各接口的信号参数值存储在配置文件中,利用GetPrivateProfileString()函数[14]读取配置文件中不同接口的参数值并显示。在消息响应函数中,还要通过ShellExecute()函数[15]来链接相应组件的Word文档资料,方法为:ShellExecute(NULL,_T("open"),strpath,NULL,NULL,SW_SHOW);其中,strpath为打开文档路径,在switch语句中,根据Flash传送的不同命令字符串,赋给strpath相应的文档路径。

虚拟测试平台需要与虚拟仪器进行通信实现数据交互,可以利用网络套接字CSocket派生类CSocketUdp:实现本地UDP通信,接收虚拟仪器发送的实际测量数据信息,并与配置文件中的标准值进行实时对比显示。

各接口信号的波形和频谱视频除了在父窗口显示,还可弹出大窗口显示。其实现方法是:在父窗口类函数中将相应的命令赋值给全局变量,然后在弹出窗口类中设置定时器函数来监听父窗口操作命令的变化,并执行相应的响应,切换显示不同节点的信号波形或频谱视频。

2.3 测试平台软件实现结果

图6所示为测试平台软件运行界面,主要实现不同虚拟组件的加载显示以及各类信息交互功能。组件中各检测点能够接受用户操作并作出正确的响应,在窗口中显示信号的频谱以及波形;可以控制启动虚拟仪器,并通过网络接收显示基于虚拟仪器的各测试点信号参数测试数据;可以链接显示所选择组件的详细文档资料。

图6 软件运行界面

3 结束语

项目所实现的虚拟测试平台,有助于装备保障人员快速、准确完成射频信号主要参数自动化测量,并形象直观地分析或复现各主要测试节点的信号特性,可以为装备故障检修及任务过程中异常现象分析提供参考,对于装备保障培训和指标测试技术研究具有借鉴意义。经过测试效果可以看出,基于VC++与Flash联合开发的方法,在保证VC++程序运行效率的同时,充分发挥了Flash在多媒体方面丰富的表现能力,达到了系统设计需求。

[1] 何小锋,石伟锋. Flash技术在雷达显控软件设计中的应用[J].雷达与对抗,2005(3):57-59.

[2] 呼婧.基于Flash的近地告警系统功能研究[J].电子设计工程,2013,21(20):183-186.

[3] 陈国,顾和和.基于Flash的陀螺经纬仪逆转点定向教学模拟平台实现[J].测绘通报,2015(9):128-130.

[4] 张立远.基于Flash ActionScript的森林灭火系统火控软件的设计与实现[J].信息通信,2013(3):52-54.

[5] 肖瑞,金吉成,袁昱纬.基于Flash实现Skyline的飞行座舱仪表显示[J].电子科技,2013,26(1):142-143,149.

[6] 王述运,吕明.Flash 技术在航空仪表虚拟实习系统中的应用[J].电脑知识与技术,2009,5(30):8030-8031,8039.

[7] 胡云琴,周玮.海警舰艇雷达回波识别仿真训练系统研究[J].信息与电脑:理论版,2014(8):163-164.

[8] 赵冬利.基于Flash技术的NMR虚拟实验室的构建[D].大连:大连理工大学,2013.

[9] 魏祥英,汤明.VC+Flash技术在多线切割设备人机交互中的应用[J].电子工业专用设备,2013,42(12):39-40.

[10] 顾荣军,杨建斌,周志增,等.基于Flash技术的雷达模拟训练软件设计[J].电子科技,2010,23(10):110-113.

[11] 廖立新,金秀娥.基于Flash的热传导综合实验仪的模拟软件设计[J].吉首大学学报:自然科学版,2013,34(6):22-25.

[12] 员永生,张飞马.仿真软件中的虚拟仪表的建模及应用[J].电脑知识与技术,2013,9(29):6647-6649,6653.

[13] 禤世丽.基于Visual C++的数据结构经典演示系统[J].计算机光盘软件与应用,2014(8):244,246.

[14] 唐振军. VC++读写软件配置参数的若干方法[J].电脑编程技巧与维护,2010(9):31-37.

[15] 潘星.VC中ShellExecute函数的研究与应用[J].太原大学教育学院学报,2004,22(S1):132-133.

Design and Implementation of Virtual Testing Platform Software for Electronic Equipment

GU Rongjun, ZHOU Zhizeng, WANG Zaili, LIU Chaoyang

(Luoyang Electronic Equipment Test Center of China, Luoyang 471003, China)

A virtual testing platform software for electronic equipment is proposed combining VC++ and Flash. The virtualization of the main modules of an electronic device is achieved with the man-machine interaction function designed, which realizes data communication between VC++ and virtual instrument. Results show that the proposed platform offers the support personnel a friendly interface for analyzing the signal characteristics.

virtual module; test platform; Flash; VC++

2016- 05- 25

顾荣军(1978-),男,硕士,工程师。研究方向:雷达对抗试验技术。

10.16180/j.cnki.issn1007-7820.2017.06.036

TP391;TP277

A

1007-7820(2017)06-128-03

猜你喜欢
控件组件装备
这些精锐与装备驰援泸定
港警新装备
无人机智能巡检在光伏电站组件诊断中的应用
基于.net的用户定义验证控件的应用分析
新型碎边剪刀盘组件
防晒装备折起来
U盾外壳组件注塑模具设计
关于.net控件数组的探讨
风起新一代光伏组件膜层:SSG纳米自清洁膜层
基于嵌入式MINIGUI控件子类化技术的深入研究与应用