你的位置:论文发表 >> 论文下载 >> 计算机论文 >> 计算机理论 >> 详细内容 在线投稿

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

浏览118次 时间:2017年5月06日 08:35

50 • 电子技术与软件工程 Electronic Technology & Software Engineering

软件开发 Software Development

【关键词】QT 集成化 插件

电子战显示控制主要完成了电子对抗装

备的综合显示和控制功能,通过控制各电子对

抗相关设备工作状态、工作模式,调度电子对

抗各设备功能,接收各设备状态和处理结果信

息,形成电磁环境态势图,进行显示和综合决

策,完成对空和对海进攻、友邻舰艇支援干扰,

舰艇自卫干扰、电子情报获取、硬武器系统信

息支援等任务。

随着QT 插件技术在跨平台方面的拓展和

应用,越来越多地应用于电子战装备的显示,

本文介绍了一种实现电子战各个功能模块隔离

和重构的显示技术。

1 功能特性

电子战是冲突双方为了探测和电子攻击

敌方部队和武器控制系统,包括高精度武器及

保护己方电子系统和其它目标免于被技术侦察

(电子情报行动、ELENT)、人为干扰和自

然干扰,而采取的一系列措施和行动。免于被

自然干扰含有确保电磁兼容性(EMC)。所

以这一系列的行为操作包含了较为复杂的显示

控制。

电子战显示功能繁多,主要包括了无源

侦察和情报分析,对舷外干扰设备、毫米波干

扰设备、激光告警设备的目标引导和发射控制、

通信侦察干扰显示控制、

X 波段和有源干扰显示控制。同时还要完

成系统任务状态监控、系统资源监视、电子对

抗任务规划、对抗设备管理控制、综合电磁态

势和对抗态势显示等功能。各个功能都需要一

套对应操作界面来进行操作和反馈。本文介绍

了一种基于QT 插件技术的集成框架,利用插

件技术把电子战的所有功能进行划分,并灵活

地配置。

2 插件简述

/凌旺 刘德龙 张名明

随着现代战争中电子战的作

用越发重要,电子战显示软件作

为控制的终端,需要针对各种任

务需求快速、灵活地下发命令并

反馈作战信息。基于这种作战需

求,本文提出了一种以QT 语言为

开发平台,基于插件集成技术的

电子战显示控制软件设计。该设

计介绍了插件技术、集成化方式

和具体设计方法,并且该软件设

计技术已成功应用。

摘 要

遵循综合显示控制软件架构设计,采用

开放式的软件体系结构,基于统一的态势集成

框架和插件技术进行软件开发,可根据作战任

务进行各台位功能重构,灵活配置。

软件设计主要分为核心层、中间层和应

用层,如图1 所示。

核心层主要包括操作系统、多功能台设

备驱动等模块,提供屏蔽硬件平台差异的服务。

中间层主要包括综合态势显示框架和共

性插件,在核心层的支持下,为应用层的功能

插件开发和台位应用软件集成提供统一的共性

平台。

应用层功能插件基于综合态势显示框架

和共性插件开发,按照统一标准和接口,完成

各设备相关的显示操控等功能。台位应用软件

完成框架和共性插件、各功能插件等的功能集

成,实现应用软件的相关功能。

3 软件设计

QT 插件集成框架技术已经在某项目中得

到应用,本次软件设计主要包括三部分,分别

为综合态势软件框架、共性插件和功能插件。

如图2 所示。

3.1 软件框架

首先定义一个数据通信接口:用于插件

和框架、插件和插件之间通信。

功能包括:

1)增加读写内存总线的函数接口;

2)增加数据输出的函数接口;

3)确定插件的通知机制:使用挂接函

数进行控制传递;

4) 优化为仅仅通过核心插件设置

IDataBus 接口指针来对数据总线进行访问。

3.1.1 接口框架类

通用插件必须实现的接口:

c l a s s IDa t aCommu { p u b l i c : v i r t u a l

~IDataCommu() {}; 调用插件后,初始化插

1

2

Software Development 软件开发

Electronic Technology & Software Engineering 电子技术与软件工程• 51

件库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::DockWidgetAreawidgetList

停靠的窗口列表;dockList 停靠属性列表:

NoDockWidgetArea 是正常显示窗口, 否则是停

靠窗口,返回窗口的数量virtual const quint32

GetWidget(QList<QWidget* >&widgetList,

QList<QString>&nameList, QList<Qt::DockW

idgetArea>&dockList) = 0; 增加一个接口:

输出QAction 列表virtual QList<QAction*>

GetActList() = 0; 增加一个接口:输出菜单

strMenuName 菜单栏的名称, 避免产生

过多的菜单栏核心插件按照strMenuName

设置菜单栏项目virtual QList<QMenu*>

GetMenuList(QString * strMenuName) = 0; 增加

一个接口:输出label virtual QList<QLabel*>

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 个功能插件可

TAG: 技术 软件设计 电子战
上一篇 下一篇

论文发表 论文投稿 热点图片