APP下载

基于Qt插件式无人直升机航路规划软件框架设计

2020-02-25程滔

中国应急管理科学 2020年8期
关键词:插件

摘 要:在复杂的无人直升机地面控制站系统软件开发过程中,既要保证软件的开发效率,又要适应不断变化的需求,文章针对此问题提出了一种基于Qt插件式无人直升机航路规划软件框架设计。首先介绍了软件框架模型,分析了其工作原理及采用该框架的优势。其次对该框架的结构进行分析,描述了插件管理、插件通信及界面布局系统的功能。最后该软件框架应用到实际项目中,实现了基于Qt插件式无人直升机航路规划软件框架,具有复用性强、维护性强、耦合度低等特点,满足系统的需求。

关键词:Qt;插件;航路规划;软件框架

随着电子技术的发展,防空技术的日益完善,航路规划软件的复杂度越来越高,用户对软件的专业性和扩展性提出了更高的要求[1]。主要体现在两方面,一是软件功能的变更需求越来越多;二是需求变更的频率相对之前明显增加。很大一部分的需求变更是对软件的主体功能要求不变,而是对软件基本功能快速的升级更新,适应不断变化的监控需求。

目前大多军用等软件采用面向过程的软件开发方法,面对软件需求的变更,在软件的开发及维护等方面带来一些问题,一方面软件开发初期对软件功能模块和接口需求定义不准确,开发速度慢;一方面软件开发中后期,模块间的耦合度较高,软件维护难度大[2]。

针对该问题,需要设计一种软件框架模型,适应用户的不断变化的需求。本文提出基于Qt插件式无人直升机航路规划软件框架设计,是采用“平台+插件”的软件架构,该架构能在不修改程序主体的情况下,根据变更的需求动态加载对应功能的插件,对软件功能进行修改和维护,提高了软件的开发效率,同时提高了软件的扩展性,适应不断变化的需求。

一、“平台+插件”模型

“平台+插件”软件架构的核心思想是将基础功能和主要逻辑以插件的形式通过主程序(平台)统一的管理,平台与插件以及插件之间的交互通过制定一套标准通信协议接口完成。平台完成对插件的管理,实现对插件的调用、加载及卸载。插件必须依赖主程序才能发挥自身功能,仅靠插件是无法正常运行的。另一方面,主程序可以不需要依赖插件就可以运行。也就是说,插件可以加载到主程序中并且动态更新而不会对主程序造成任何影响。在“平台+插件”架构下,插件可以进行增删改查,若需求变更,通过设计新插件或者修改已有插件即可,不需要对主程序进行修改及编译。

主程序(平台):程序的主体,实现基础架构和核心功能。主程序(平台)提供相应的接口给插件调用,同时,主程序(平台)通过相应的接口可以插入不同的插件,完成相应服务并提供给用户,是整个软件框架的基础。

插件:是一种遵循一定规范的应用程序接口编写的程序,实现主要逻辑和基础功能。插件能动态地插入到平台中,完善和扩展系统整体功能。插件是“平台+插件”架构的重要组成部分。

接口:实现“平台+插件”架构指定的一套标准通信协议。接口实现在主程序不变的情况下,通过加载、删除或修改插件完善应用程序的功能。

采用“平台+插件”模型在分析、设计、开发、扩展等方面有诸多益处。一是结构清晰、易于理解。借鉴硬件总线的定义,各个插件之间相互独立,实现软件的“即插即用”;二是维护性强。插件与主程序之间通过接口进行通信,类似硬件插卡,可以进行加载、调用及卸载等操作,结构灵活,易修改,方便软件的升级和维护;三是复用性强。插件是一系列小的功能结构组成,通过接口向外提供服务,移植性好,复用性强;四是耦合度低。插件是通过与主程序通信实现插件与插件之间的通信,插件之间的耦合度低。

二、插件分類

随着计算机软件技术的不断发展,插件技术的应用越来越广,插件种类也越来越多,目前应用普遍的插件可以分为四类。一类是类似命令插件。该类型插件应用广泛,使用方便、门槛低,缩短了软件开发时间。但是,该类型插件功能较单一、可扩展性小、自由度低且降低软件运行效率;二类是脚本插件。该类型插件方便、简单、易学、易用,但是该类型脚本需要自主开发内核,制作相对比较复杂;三类是组件插件。该类型插件提供了组件之间的交互规范和环境,不需要知道插件功能,通过接口可直接访问插件,使主程序与各插件间建立信息交互。但是,该类型插件设计需要技术原理支持,提高了开发难度;四类是动态链接库(DLL)插件。该类型插件定义了多个接口,可以访问主程序中各种资源,自由度大,设计者可以充分发挥主观意识和创造思维。但是该类型插件制作复杂、开发门槛高。

考虑应用场景及运行平台,本文选择基于动态链接库插件作为航路规划软件的应用框架。

三、框架结构设计

软件框架由插件管理系统、通信管理系统及界面布局管理系统组成,软件架构结构设计如下图所示。

1.插件管理系统

插件管理系统主要功能是对插件进行管理,包括插件配置信息的获取及判定,插件的加载及卸载等。插件的状态包括无效、准备、加载、运行、关闭、删除。无效:没有获取到该插件信息;准备:插件配置信息获取成功且判定正常;加载:插件被加载至主程序中;运行:插件成功加载且初始化完成;关闭:插件被关闭;删除:释放插件实例对象。

2.通信管理系统

通信管理系统主要功能是实现主程序与插件及插件之间的通信。软件在Qt平台开发,通过Qt的信号与槽机制完成插件之间的通信。

3.界面布局管理系统

界面布局管理系统在主程序(平台)中完成。界面布局管理系统主要完成两方面功能,一是完成菜单栏、工具栏、功能栏及状态栏的布局;二是完成菜单栏、工具栏、功能栏及状态栏上控件的添加、显示及功能处理。

四、应用

在某项目中,应用基于Qt插件式航路规划软件框架进行开发。在Windows环境下采用Qt5.5.1进行软件开发,用户界面主要包括五大部分:菜单栏、工具栏、功能栏、状态栏及操作区。软件中功能模块采用插件形式开发,主程序(平台)通过接口方法对插件进行调用。

实践表明,通过插件式开发的航路规划软件框架代码简洁、条理清晰、运行稳定,能够满足无人直升机航路规划的需求。

五、结语

地面控制站是无人直升机系统的重要组成部分,航路规划是地面控制站中的关键部分,是实现无人直升机智能导航和安全飞行的重要保障。本文设计的基于Qt插件式无人直升机航路规划软件框架,代码使用Qt和C++进行设计,使用面向对象开发设计思想。插件式框架降低了系统的耦合度,具有复用性强、维护性好及扩展性强等特点。

参考文献:

[1]肖强,朱玉祜,杨丙泉.插件式无人机任务规划软件框架设计[J].电光与控制,2014,(12)

[2]劳宪银.基于插件式的软件总线构件平台的设计[J].电子世界,2016,(10)

[3]董冰.计算机软件中的插件技术研究[J].信息与电脑,2017,(23)

[4]王宏强,张航峰.战术指挥情报终端的插件式软件框架设计[J].指挥控制与仿真,2012,(6)

作者简介:

程滔(1990年-),男,江西省九江市人,硕士学位,工程师,主要从事无人机测控系统研究。

猜你喜欢

插件
变形魔方
用好插件浏览器标签页管理更轻松
用好Edge小插件隐私保护更安全
TC管理器功能插件批量更新
请个浏览器插件全能管家
基于jQUerY的自定义插件开发
计算机软件中的插件技术探讨
解除“绑架”还你干净的浏览器
美国社交网站的周末大战
软件插件技术及其应用研究