打开文本图片集
摘 要随着现代战争中电子战的作用越发重要,电子战显示软件作为控制的终端,需要针对各种任务需求快速、灵活地下发命令并反馈作战信息。基于这种作战需求,本文提出了一种以QT语言为开发平台,基于插件集成技术的电子战显示控制软件设计。该设计介绍了插件技术、集成化方式和具体设计方法,并且该软件设计技术已成功应用。
【关键词】QT 集成化 插件
电子战显示控制主要完成了电子对抗装备的综合显示和控制功能,通过控制各电子对抗相关设备工作状态、工作模式,调度电子对抗各设备功能,接收各设备状态和处理结果信息,形成电磁环境态势图,进行显示和综合决策,完成对空和对海进攻、友邻舰艇支援干扰,舰艇自卫干扰、电子情报获取、硬武器系统信息支援等任务。
随着QT插件技术在跨平台方面的拓展和应用,越来越多地应用于电子战装备的显示,本文介绍了一种实现电子战各个功能模块隔离和重构的显示技术。
1 功能特性
电子战是冲突双方为了探测和电子攻击敌方部队和武器控制系统,包括高精度武器及保护己方电子系统和其它目标免于被技术侦察(电子情报行动、ELENT)、人为干扰和自然干扰,而采取的一系列措施和行动。免于被自然干扰含有确保电磁兼容性(EMC)。所以这一系列的行为操作包含了较为复杂的显示控制。
电子战显示功能繁多,主要包括了无源侦察和情报分析,对舷外干扰设备、毫米波干扰设备、激光告警设备的目标引导和发射控制、通信侦察干扰显示控制、
X波段和有源干扰显示控制。同时还要完成系统任务状态监控、系统资源监视、电子对抗任务规划、对抗设备管理控制、综合电磁态势和对抗态势显示等功能。各个功能都需要一套对应操作界面来进行操作和反馈。本文介绍了一种基于QT插件技术的集成框架,利用插件技术把电子战的所有功能进行划分,并灵活地配置。
2 插件简述
遵循综合显示控制软件架构设计,采用开放式的软件体系结构,基于统一的态势集成框架和插件技术进行软件开发,可根据作战任务进行各台位功能重构,灵活配置。
软件设计主要分为核心层、中间层和应用层,如图1所示。
核心层主要包括操作系统、多功能台设备驱动等模块,提供屏蔽硬件平台差异的服务。
中间层主要包括综合态势显示框架和共性插件,在核心层的支持下,为应用层的功能插件开发和台位应用软件集成提供统一的共性平台。
应用层功能插件基于综合态势显示框架和共性插件开发,按照统一标准和接口,完成各设备相关的显示操控等功能。台位应用软件完成框架和共性插件、各功能插件等的功能集成,实现应用软件的相关功能。
3 软件设计
QT插件集成框架技术已经在某项目中得到应用,本次软件设计主要包括三部分,分别为综合态势软件框架、共性插件和功能插件。如图2所示。
3.1 软件框架
首先定义一个数据通信接口:用于插件和框架、插件和插件之间通信。
功能包括:
(1)增加读写内存总线的函数接口;
(2)增加数据输出的函数接口;
(3)确定插件的通知机制:使用挂接函数进行控制传递;
(4)优化为仅仅通过核心插件设置IDataBus接口指针来对数据总线进行访问。
3.1.1 接口框架类
通用插件必须实现的接口:
class IDataCommu{public:virtual ~IDataCommu() {};调用插件后,初始化插件库virtual void Initialize( ) = 0;插件退出时,释放资源virtual void Release() = 0;每个插件实现此函数,表示此插件的名称,和uID配对virtual QString GetName() =0;更改插件的状态:state指向状态数据缓冲 virtual void SetStateData(QByteArray &state) = 0;清空所有的历史数据、状态virtual void Clear() = 0;protected:派生类获取此指针读写数据总线,挂接数据更新通知函数IDataBus * pBusInterface;public:插件间通信使用的接口相关定义void SetBusInterface(IDataBus * pFace){pBusInterface = pFace;};};。
此框架类主要实现了各个功能插件和共性插件的通信接口标准定义。
3.1.2 显示框架类
显示界面功能接口:
class IDisplay{public:~IDisplay(){};获得显示的窗口指针Qt::DockWidgetArea;widgetList 停靠的窗口列表;dockList 停靠属性列表:NoDockWidgetArea是正常显示窗口,否则是停靠窗口,返回窗口的数量virtual const quint32 GetWidget(QList
此框架类主要实现了各个功能插件和共性插件的显示接口标准定义。
3.2 共性插件
共性插件是“CorePLugIn”插件,继承于IEwCore共性插件类。
class IEwCore{public:virtual ~IEwCore() {};调用插件后,初始化插件库virtual void Initialize( ) = 0;启动显示窗口,设定主标题virtual void Start(bool bShow,const char * title)=0;插件退出时,释放资源virtual void Release() = 0;处理各个插件的输出数据,实现各个插件的数据交互virtual void ProcessPlugData(const DataOut_Descrip_Info&) = 0;限制只能是此名称,主程序首先加载插件virtual QString GetName(){ return QString("%1").arg("ewcore");};};
此类主要定义一个框架的共性插件:负责整个系统的插件的加载、管理、数据通信交互;负责显示界面的布局。
在主函数int main(int argc, char *argv[])里直接调用共性插件,在void LoadCorePlugIn(){}函数里实现。
3.3 功能插件
功能插件主要实现了电子战显控的具体功能,包含网络、存储、态势图形、导航大气等功能都能在功能插件里得到实现。
各种功能插件在共性插件void QCorePlugIn::Initialize( ){}的函数里调用。通过配置文件读取函数ReadConfig()读取配置文件“sysconfig.xml”来动态加载和卸载各个功能插间。
4 应用实例
如图3,这是在QT插件集成化框架体系结构下的具体应用实例。图上3个功能插件可以根据功能需要动态加载和卸载。
5 结束语
QT集成化插件设计方法与传统的软件开发相比,具有灵活性、扩展性和高效性等特点。在不改动框架结构的前提下,修改里面的功能插件不会互相影响,加载和卸载任意功能插件也不会对其他插件产生影响。在电子战显示软件设计中,证明该方法可以针对电子战不同的作战任务实现快速部署。具有很大的研究价值和发展空间。
参考文献
[1]Sergei A.Vakin,Lev N.Shustov,Robert H.Dunwell.Fundamentals of Electronic Warfare[M].北京:电子工业出版社,2004.
[2]Richard A.Poisel.Introductiong to Communication Electronic Warfare Systems,Second Edition[M].北京:电子工业出版社,2013.
[3]张明友.雷达-电子战-通信一体化概论[M].北京:国防工业出版社,2010.
[4]Jasmin Blanchette, Mark SummerField. C++ GUI Programming with QT 4 Second Edition[M].北京:电子工业出版社,2013.
作者简介
凌旺(1989-),男,江苏省扬州市人,河海大学计算机与信息学院2011级本科生,电子信息工程专业。主要研究方向为软件显示控制。
作者单位
中国船舶重工集团公司第723研究所 江苏省扬州市 225001
相关热词搜索: 电子战 插件 集成化 显示 设计