兴源范文网 > 作文大全 >

基于QT集成化插件技术的电子战显示软件设计

| 浏览次数:


打开文本图片集

摘 要随着现代战争中电子战的作用越发重要,电子战显示软件作为控制的终端,需要针对各种任务需求快速、灵活地下发命令并反馈作战信息。基于这种作战需求,本文提出了一种以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&widgetList, QList&nameList, QList&dockList) = 0;增加一个接口:输出QAction列表virtual QList GetActList() = 0;增加一个接口:输出菜单项strMenuName 菜单栏的名称,避免产生过多的菜单栏核心插件按照strMenuName设置菜单栏项目virtual QList GetMenuList(QString * strMenuName) = 0;增加一个接口:输出label virtual QList GetLabelList() = 0;增加一个接口:输出菜单项,窗口的显示名称,显示为标题virtual QString GetName() =0;}。

此框架类主要实现了各个功能插件和共性插件的显示接口标准定义。

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

相关热词搜索: 电子战 插件 集成化 显示 设计