舰艇武器发射系统跨平台通用软件框架设计与应用

2021-09-10 08:16娜,姜
水下无人系统学报 2021年4期
关键词:中间件跨平台调用

安 娜,姜 杨

舰艇武器发射系统跨平台通用软件框架设计与应用

安 娜,姜 杨

(中国船舶集团有限公司 第705研究所昆明分部,云南 昆明,650032)

目前舰艇武器发射系统主控软件基本以特定软硬件平台为运行环境,平台移植性较差,不利于系统的二次开发和维护升级。文中以C++天然的跨平台特性为基础,利用Qt、POSIX和中间件等软件跨平台技术,提出了一种适用于舰艇武器发射系统主控软件开发的跨平台通用软件框架。该框架通过中间件技术消除产品接口差异,并采用虚拟化技术实现主控软件外围设备的数字化仿真。实际应用证明,该框架可大幅提升主控软件的平台迁移能力,降低了平台移植成本,同时缩短了整个发射系统的研发周期。

舰艇武器发射系统; 跨平台; 软件框架; 中间件

0 引言

舰艇武器发射系统是水面舰作战的重要组成部分。主控软件是舰艇武器发射系统的灵魂,使用有效、运行可靠、维护方便的武器发射系统主控软件对提升舰艇作战能力具有重要意义。在主控软件的开发中,具备跨平台能力的通用软件框架可大幅减少软件开发的重复工作,提升软件的移植性、复用性、维护性和测试性,降低系统的研发成本,并最终提高整个舰艇武器发射系统的可靠性和维护性。

随着计算机技术的不断发展,各种跨平台技术已逐渐成熟,如对网络计算中间件技术及其规范研究[1-3]; 基于Qt/E的嵌入式图形支持系统研究等[4]。同时,针对这些技术的相关应用也在不断深入,如基于Qt的跨平台军标标绘系统[5]、跨平台仿真系统的专业应用[6]、舰船电子对抗系统显控软件的跨平台开发[7]、可移植操作系统接口(po- rtable operating system interface of UNIX,POSIX)零星事件调度策略的实现[8]、Qt跨平台开发仿真与实践[9-11]等。但是,针对以舰艇武器发射系统为背景的跨平台软件框架研究还很少。

文中基于现有跨平台技术,结合舰艇武器发射系统主控软件的应用特点,利用中间件技术消除产品接口差异,并采用虚拟化技术实现主控软件外围设备的数字化仿真,搭建了一个适用于各种舰艇武器发射系统的跨平台通用框架。框架与平台无耦合,系统硬件更新升级或操作系统更换时,不用更改原控制软件,只需重新编译源代码即可完成软件移植。框架定义了主控软件外围设备的虚拟化接口,在硬件设备尚未就绪的情况下,结合框架的跨平台能力,可在Windows环境下先行进行软件的开发,从而缩短了整个发射系统的研发周期。对于已经交付使用的硬件设备,可在Windows环境下进行故障分析与仿真,大大提高了排故的效率。

1 跨平台通用框架设计

1.1 框架整体结构

跨平台通用软件框架的设计目标是实现舰艇发射系统主控软件对不同软硬件平台的源代码可移植,即同一份主控软件代码,只需重新进行工程配置和编译,便可安全高效地运行于不同操作系统或计算机平台。

由于舰艇发射系统主控软件的核心逻辑与平台无关,且所有型号均采用C++编写,故主控软件的核心逻辑具有天然的跨平台能力,要实现跨平台的主要难点在于图形、网络、时钟系统、线程管理,以及IO、CAN及串口等外部接口驱动的平台移植。利用Qt的跨平台特性可实现图形接口和网络接口的跨平台调用; 时间管理和线程管理则采用ISO标准的POSIX接口来实现,确保线程调用、时间调用与平台无关; 不同硬件平台外设驱动的差异通过中间件技术进行统一,即定义一组统一的函数接口,由硬件平台供应商实现函数库,主控软件通过调用这组接口来完成对外设的调用。

为确保供应商中间件函数库的正确性,框架还设计了中间件接口测试软件,对各供应商的中间件函数库进行测试,由于中间件函数库接口是统一的,故测试软件只需开发一次便可适用于不同供应商的中间件函数库测试工作。为实现主控软件脱离发射系统硬件设备单独运行,框架在Windows下实现了一套虚拟中间件函数库,结合产品开发阶段设计的发射系统模拟器,可实现主控软件在任何一台普通计算机上正常运行。跨平台通用框架整体结构如图1所示。

1.2 基于Qt的图形与网络接口

Qt是一种面向对象的,由跨平台C++图形用户界面应用程序开发的软件框架,允许真正地组件编程,其良好的封装机制使得Qt的模块化程度非常高。Qt还提供了一种称为信号/槽机制的安全类型来替代回调,使得各对象间的协同工作变得非常简洁[12]。Qt软件框架具有如下应用优势。

图1 舰艇武器发射系统跨平台通用软件框架设计整体结构

1) Qt具备良好的跨平台性,除支持windows/ linux/Mac OS等主流操作系统外,其商业版本对VxWorks/中标麒麟/道系统等海军常用的操作系统也全面支持,这一点对于舰艇发射系统主控软件尤为重要。Qt优良的跨平台特性免除了当未来操作系统改变时,软件将面临的重写风险。

2) Qt包含了丰富的应用程序接口(applica- tion programming interface,API),提供多达700个以上的C++类,支持图形、网络、容器、XML、SQL及正则表达式等功能,丰富的编程接口使得基于Qt的开发简便灵活,大大降低了软件开发的周期和难度。

3) Qt具有大量的开发文档,并提供丰富的Qt例程供初学者学习。无论是开源版还是商业版,Qt均可查看其源码,即使出现个别兼容性问题也可通过查阅Qt源码找到原因并解决。

Qt网络接口是跨平台的,但其对用户数据报协议(user datagram protocol,UDP)组播的支持却差强人意,一些组播参数(如VxWorks系统下的IP_MULTICAST_TTL)的配置在特定平台下存在兼容性问题,另一些参数(如IP_MUL TICAST_IF)仅通过Qt提供的接口则无法进行配置,幸而QAbstractSocket提供了获得套接字描述符的函数socketDescriptor,通过该函数可获得当前套接字的套接字描述符,再通过标准C中定义的setsockopt函数即可进行相关的参数设置。

利用Qt的跨平台特性可很好地实现舰艇发射系统主控软件在图形和网络功能方面的平台兼容性。对于Qt使用没有限制的项目,主控软件可完全基于Qt进行开发,不仅能提高开发效率,还能大大降低软件的复杂程度,提高软件的可靠性。

1.3 基于POSIX的线程管理与时间管理

POSIX标准定义了操作系统应该为应用程序提供的接口标准,受多种操作系统支持。POSIX跨平台特性可满足舰艇发射系统主控软件的应用场景。

在舰艇发射系统主控软件的应用场景中,如果项目允许使用Qt,则主控软件需要的POSIX接口均能在Qt中找到对应的解决方案,如线程创建、系统核心对象及自然时间获取等操作,但系统的单调时间却不能通过Qt来获得。所谓单调时间是指系统/应用启动的时间,单调时间增长不受系统时间影响(不会因为系统时间设置操作出现时间跳跃),将单调时间作为时间基线是定时类程序逻辑安全运行的根本。舰艇发射系统主控软件通过POSIX提供的单调时间接口,可实现与平台无关的安全可靠的定时程序逻辑。

对于不允许使用Qt的项目(通常也没有图形界面),可利用POSIX提供的线程管理和时间管理功能解决主控软件的操作系统兼容性问题。在线程管理方面,POSIX支持线程的创建、分离、连接以及线程属性的设置与查询操作,并支持互斥锁、条件变量、读写锁、信号量及消息队列等系统核心对象。在时间管理方面,POSIX支持墙上时间、单调时间、原始单调时间及启动时间等时间类型的管理,并支持纳秒级的定时器功能。POSIX强大的线程管理和时间管理能力,完全可满足舰艇发射系统应用场景的需要。

POSIX作为一种IEEE标准,其使用范围广泛,与Qt一样具有良好的易学性。遇到POSIX相关问题时,开发人员可通过搜索引擎迅速获得解决方案。

1.4 中间件设计

中间件是介于应用系统与系统软件之间的一类软件,它将不同操作系统提供的接口标准化、协议统一化,屏蔽与平台相关的具体操作细节,为用户应用提供简洁的调用接口。在舰艇发射系统主控软件面对的应用场景中,平台差异中除操作系统的差异外,同类设备提供的驱动接口通常也各不相同,中间件技术可以很好地解决这些平台差异。其解决思路是,定义一组与平台无关的中间件接口函数,由供应商实现中间件接口定义的函数实体,并编译成中间件,舰艇发射系统主控软件通过调用这些中间件实现对平台相关资源的访问。当设备发生变化时,只需替换对应的中间件,即可实现程序移植。结合舰艇发射系统应用场景的特点,需要进行中间件封装的内容主要包括: 控制器局域网络(controller area network,)设备、串口设备、IO(input/output)设备、触摸键盘、电源、双冗余网络切换接口、主从机切换接口、bios时间管理及单调时间获取接口。由于中间件接口相互独立,可在需要时加入新的中间件接口进行扩展。利用中间件技术还可以创建纯数字化的虚拟外围设备(如虚拟CAN设备)。

中间件统一建模语言(unified modeling language,UML)类图如图2所示,其中middleware为中间件接口,middleware_of_device1至middle- ware_of_deviceN为不同供应商开发的中间件,主控软件通过中间件接口访问设备资源。实际设计中间件接口时,为适用更多平台,采用函数的形式对接口进行定义,这种形式在类linux平台上可实现中间件二进制级别的互换,即中间件如需升级,只需将新版本中间件执行文件替换老版本即可,无需重新编译主控软件。

图2 中间件UML类图

1.4.1 设计原则

1) 无论以何种方式调用中间件接口均不应导致程序崩溃;

2) 资源初始化接口返回值为1、0、负数3种,其中1表示初始化成功,0为已经初始化,负数为故障码;

3) 通信类接口(如CAN接口、串口)的接口函数调用均应指明设备ID(DevID),同类设备的设备ID从0开始编号,编号与实际硬件接口一一对应;

6) 中间件接口设计遵循最简化原则,对于运行时不变的参数可通过配置文件进行设置。

1.4.2 各类中间件接口设计

1) CAN接口

舰艇武器发射系统中,CAN总线是系统最常用的内部总线,用于主控计算机与其他功能模块间的通信。图3为CAN设备的中间件接口UML类图,中间件包含can_open、can_close、can_read、can_write等4个接口函数。其中can_open函数初始化指定CAN口,并支持多次调用; can_close函数释放指定CAN口资源; can_read、can_write函数读写单个CAN报文,支持数据帧、远程帧、标准帧及扩展帧的读写,并具备阻塞、非阻塞模式及等待超时设置。中间件接口还定义了CAN帧的数据类型CAN_DATA,可表示各种类型的CAN数据。波特率、滤波器和读写缓冲区大小等参数由于在运行时保持不变,通过供应商提供的参数配置文件进行配置。

图3 CAN接口UML类图

2) IO接口

在舰艇武器发射系统中,脱机/联机按钮、发射按钮的状态通常以IO信号的形式送入主控计算机。其IO接口UML类图如图4所示。

图4 IO接口UML类图

图中,中间件包含io_initialize、 io_release、 io_read、io_write等4个接口函数。其中io_initi- alize、io_release用于IO设备的初始化和释放,io_ read、io_write用于特定IO口的读写。在舰艇武器发射系统中,由于主控计算机通常无需IO输出,供应商只需实现io_write的空函数即可。

3) 串口接口

串口接口的定义与CAN接口类似,但其读写函数支持多个字节的一次性读写操作。波特率、校验方式、停止位、读写缓冲区大小等参数通过供应商提供的配置文件进行设置。由于RS232/ RS422/RS485在软件层面几乎没有差异,故其中间件接口均采用图5中表示的接口形式,各类串口对应的devID也统一进行编号。

图5 串口接口UML类图

4) 触摸键盘接口

触摸键盘是重要的人机接口,有别于标准键盘,触摸键盘的应用程序接口(application progr- amming interface,API)往往是不兼容的。通过定义触摸键盘的中间件接口可以消除这种不兼容性,进而实现触摸键盘的互换。触摸键盘中间件接口定义如图6所示,其中touch_init完成键盘初始化,touch_get获得键值,touch_set_menu_pos设置当前键盘页面,touch_set_key_state设置二值按键状态,touch_lock_key锁定某个按键,touch_unlock_ key解锁某个按键,touch_set_language设置当前语言,touch_get_state获得键盘设备状态。

图6 触摸键盘接口UML类图

运行时触摸键盘加载按键布置配置文件,并根据配置文件的定义生成按键界面。供应商应提供方便的编辑工具生成按键布置配置文件。

5) 电源接口

舰艇发射系统控制设备的电源模块除了为加固计算机和各功能板卡供电外,还需为机械部分的各电磁阀提供驱动电流。通过监控电源的电压电流状态,可分析判断发射系统运行状态是否良好。电源中间件接口定义如图7所示,其中pow_ init完成电源设备驱动初始化,pow_get_voltage获得某模块特定通道的电压值,pow_get_current获得某模块特定通道的电流值,pow_get_fault获得电源模块的故障状态,pow_on_off控制电源模块开启关闭,pow_set_fault_callback设置故障回调函数,当电源模块发生故障时,通过此处设置的回调函数通知用户当前的故障模块和故障类型。

图7 电源接口UML类图

6) 其他接口

在舰艇发射系统主控软件中,BIOS(basic input output system)时间存取、单调时间获取等接口形式依赖于所运行的平台,也纳入中间件接口设计中。舰艇发射系统一般均采用双主机备份架构,对于这些型号的设备还应提供“判断本机是否为活动主机”的接口实现。对于双冗余网切换需要重新加入组播的计算机,通过回调函数通知用户切换时机。上述接口的UML类图见图8。

图8 其他接口UML类图

1.5 虚拟化外围设备

中间件接口消除了应用平台与主控软件的耦合。如果将Windows平台看作应用平台,并按中间件接口开发一套Windows下的驱动程序,主控软件便可在Windows平台上运行。由于中间件接口未定义驱动实现内容,中间件的实现可以名不副实,如CAN接口、串口接口底层通过网络实现; IO接口底层通过文件实现; 不关心的接口则通过空函数等实现。利用中间件技术的灵活性和拓展性,可以实现主控软件所有外围设备的虚拟化,配合发射系统仿真软件,即可实现主控软件不依赖于硬件平台的开发、调试和运行,也可为真实的接口设备开发Windows下对应的中间件驱动,这些接口设备可连接对应发射系统硬件进行部分实物部分仿真的软硬件联合调试。由于中间件接口定义不依赖于具体发射系统类型,虚拟外围设备的中间件驱动可以通用于各类发射系统。

目前通用框架在Windows平台下包含了基于QUdpSocket的虚拟CAN中间件、基于QUdpSocket的虚拟串口中间件、基于文件的虚拟IO中间件、返回固定电流电压的电源中间件以及基于NI-CAN USB-8473的CAN中间件各1个,并会在未来的版本中根据实际需要对虚拟化外围设备进行扩展。

1.6 中间件接口测试

通用框架定义的中间件接口虽然其形式与设备原生驱动接口大体相近,但对于设备供应商而言,通用框架定义的中间件驱动仍然需要少量的开发工作。这部分工作很难保证被充分测试,这就需要一套完整测试软件和测试流程来保证中间件的可用性。通用框架对中间件驱动的测试采用黑盒测试法,设计了共计170个测试用例,覆盖了功能测试和压力测试两方面。测试软件的开发采用标准C++库和POSIX库进行开发,具备良好的跨平台能力,只需开发一次便可以在所有产品上进行使用。除了键盘中间件,其他所有中间件接口的测试过程都是自动运行的,并在测试完成后自动生成测试报告。当异常发生时,测试软件会记录异常发生时的测试输入,以作为中间件缺陷分析时的参考。测试软件测试用例可配置,每次测试可进行任意个数和类型的测试用例,测试方案通过脚本进行配置,当测试对象发生变化时,只需修改测试脚本的相应配置便可实现对新测试对象的测试。

2 跨平台通用框架应用

2.1 环境搭建

目前通用框架已应用于两型舰艇武器发射系统,其软件平台为VxWorks系统和Windows系统; 硬件平台为不同供应商生产的加固计算机。基于通用框架开发的舰艇发射系统主控软件已实现在上述平台下的跨平台复用。上述项目均基于Qt4.8.3进行开发,VxWorks下开发环境为WindRiver Work- bench3.2,Qt4.8.3为支持VxWorks的商业版,Windows开发环境为VS2010+Qt4.8.3插件,Qt4.8.3为开源的Windows版本。为实现一份代码在VS2010和Workbench3.2这2个平台下同步开发和调试,需要对工程进行特定配置以确保与平台相关的要素被排除在代码之外。Windows平台和VxWorks平台均有动态库的概念,但其加载方法和机制并不兼容,所以库的配置和加载工作应该放在工程属性中而不是代码中。VxWorks版本的Qt4.8.3图形库和Windows版本的图形库往往并不是同一个图形库,需要分别配置VS2010工程和Workbench3.2工程的库路径。

主控软件工程创建和配置步骤如下:

1) 在VS2010下创建Qt工程,对于需要使用网络功能的应用,应在工程创建向导中勾选网络库;

2) 打开VS2010工程属性页面,将“工作目录”与“输出目录”设置为一致,编辑工程属性页中连接器→输入→附加依赖库项,在其中添加需要的中间件.lib文件;

3) 将中间件动态库(.dll)文件拷贝至工作目录;

4) 选择DKM(downloadable kernel module)模式创建Workbench工程;

5) 打开Workbench工程属性页面,在Build Macros页面的DEFINES项中添加-DVXWORKS宏(Qt需要此预定义宏);

6) 在Build Path页面下添加头文件路径,通常需要添加QtCore、Qt、QtNetwork、QtGui头文件库及其根目录路径,对于使用信号/槽机制的应用,还需添加Qt插件自动生成的.moc文件所在路径;

7) 在Libraries页面下添加库文件路径,如果Qt以静态库方式加载,需要添加Qt静态库路径,通常需要添加libQtCore.a、libQtGui.a、lib- Network.a、libQtMultimedia.a几个静态库;

8)将主控软件源码添加到上述创建的VS2010工程,所添加的源码应确保在VS2010工程的子目录下,然后将整个VS2010工程拷贝到上述创建的Workbench工程根目录下,编译VS2010工程,编译成功后,主控软件可在Windows下运行。继续在Workbench编译工程,编译成功后,生成的.out文件即可在目标平台上运行。

2.2 设计约束

主控软件开发时需要遵循一定的设计约束,才能实现真正的跨平台。跨平台的程度不同,相应设计约束的严格程度也不同。凡是与硬件平台相关的调用必须通过中间件,否则无法实现最基本的硬件跨平台。要实现操作系统跨平台,则操作系统相关的资源调用必须使用平台无关的调用接口。对于基于Qt的项目,一种方便的跨平台做法就是使用Qt原生库来完成线程、文件、网络、图形和时间等操作系统资源的调用。对于不使用图形接口的应用,应尽量使用C++标准函数库以达到最强的平台兼容性,但C++标准函数库不支持线程、网络和图形等与操作系统资源调用相关的接口,可使用POSIX接口的跨平台特性实现线程、网络资源的调用。对于一些设计时未考虑的特殊情况,可以通过系统宏定义(如Vxworks、Win32等)将不同平台下的功能调用统一为同一个接口,以实现跨平台兼容性。

跨平台能力和设计约束关系见表1,其中“√”表示使用,“×”为禁用,“〇”表示没有要求。一般将跨平台能力分为6档,从1到6依次增强,从表中可以看出,仅调用C++标准函数库和中间件的应用具有最强的跨平台能力,但实际中不太可能存在不需调用操作系统资源的应用。只调用POSIX库的应用相较于只调用Qt库的应用虽然具有更广泛的平台兼容性,但需要图形功能的应用通常使用Qt库开发。由于Qt库的功能已覆盖POSIX功能,实际开发中Qt库和POSIX库一同使用的情况比较少见。对于使用了操作系统相关函数库的应用,操作系统层面无法实现跨平台,但硬件平台如果使用相同的操作系统,应用也是可以在这些硬件平台上重用的。对于使用了设备相关驱动函数应用,应用将依赖于特定设备,不具备任何跨平台能力。

表1 跨平台能力与设计约束关系

2.3 应用实例

目前通用框架已成功应用于两型舰艇武器发射系统中,2个系统均使用VxWorks6.8系统,其功能基本相同,仅在网络和键盘功能上有所差别。设计时将网络功能和键盘功能采用单例模式进行封装,利用工厂方法对这2个功能模块进行抽象,通过预定宏来决定当前所编译的具体网路/键盘模块。应用中,采用框架的中间件技术屏蔽不同设备的驱动差异。2个系统均基于Qt进行开发,但由于windml配置并不相同,需要为分别编译Qt库。基于通用框架提供的虚拟外围设备中间件,开发了一套发射系统仿真软件,用于仿真发射系统动作和流程,结合虚拟外围设备中间件,实现了在Windows下的全数字化运行。

由于应用了文中的通用框架,可以在硬件平台尚不具备的条件下在Windows进行全流程的开发和调试,大大提前了开发过程的启动时间。由于核心逻辑在各平台下是同一份代码,故障排除工作可以在Windows下进行,利用VS 2010强大的在线调试能力,使得故障排除工作变得简单快捷。基于Qt库进行开发,遇到技术问题时可在互联网上迅速搜索到答案,而不像VxWorks系统由于用户群匮乏,只能通过查询文档或向设备供应商寻求帮助,降低了开发效率。中间件的使用大大减少了2个系统相互移植的工作量,由于多个平台的相互印证,很容易排除设备供应商的设备问题。

3 结束语

文中以C++天然的跨平台特性为基础,利用现有跨平台技术,结合舰艇武器发射系统主控软件的应用特点,搭建了一个适用于各种舰艇武器发射系统的跨平台通用框架,并由此提供了一种清晰有效的开发范式。该范式的应用可使舰艇武器发射系统主控软件的平台迁移能力获得大幅提升,消除了移植成本,为系统软硬件平台的升级改换提供十分有利的条件。基于通用软件框架的主控软件可在Windows系统下实现半实物或全数字状态运行,这种灵活的可配置特性大大提高了开发效率,同时显著降低了维护成本。

目前通用软件框架主要解决了主控软件跨平台的一些基本问题,其具体内容需要进一步扩充。后续将进一步丰富中间件接口的类型,并实现发射系统模拟器的模块化和组件化,以适应各型武器发射系统的需要。

[1] 吴泉源. 网络计算中间件. 软件学报[J]. 2013,24(1): 67-76.

Wu Quan-yuan. Network Computing Middleware[J]. Jour- nal of Software,2013,24(1): 67-76.

[2] 郭胜,许平,王颖,等. 中间件技术的研究[J]. 计算机科学,2004,31(2): 155-159.

Guo Sheng,Xu Ping,Wang Ying,et al. Researches on Mi- ddleware Technology[J]. Computer Science,2004,31(2): 155-159.

[3] 黄崇本,吴朝晖. 中间件技术规范与应用[J]. 计算机应用与软件,2004,21(7): 24-26.

Huang Chong-ben,Wu Chao-hui. Middleware Technology Criterion and Applications[J]. Computer Applications and Software,2004,21(7): 24-26.

[4] 倪红波,周兴社,谷建华. 基于Qt/E的嵌入式图形支持系统[J]. 计算机工程,2007,33(20): 256- 258.

Ni Hong-bo,Zhou Xing-she,Gu Jian-hua. Embedded GUI Supporting System Based on Qt/E[J]. Computer Engin- eering,2007,33(20): 256-258.

[5] 卢虹,向慧,黄继红. 基于Qt的跨平台军标标绘系统的实现[J]. 计算机与数字工程,2009,37(1): 71-76.

Lu Hong,Xiang Hui,Huang Ji-hong. Implementation of Cross Platform Military Marks Marking System Based on Qt[J]. Computer & Digital Engineering,2009,37(1): 71- 76.

[6] 董卫宇,姜鲲鹏,曾韵,等. 跨平台仿真系统的远程调试器设计[J]. 信息工程大学学报,2014,15(3): 360-363.

Dong Wei-yu,Jiang Kun-peng,Zeng Yun,et al. Design of Remote Debugger for Cross-Platform Emulation System[J]. Journal of Information Engineering University,2014,15(3): 360-363.

[7] 吴小强. 舰船电子对抗系统显控软件的跨平台开发[J]. 舰船电子对抗,2011,34(6): 110-112.

Wu Xiao-qiang. Cross-platform Development of Console Software for Shipborne Electronic Countermeasure System[J]. Shipboard Electronic Countermeasure,2011,34(6): 110-112.

[8] 杨麟祥,岳继光,张晓云. POSIX零星事件调度策略的研究与实现[J]. 计算机工程与应用,2009,45(11): 62-66.

Yang Lin-xiang,Yue Ji-guang,Zhang Xiao-yun. Research and Realization of Sporadic Task Scheduling Based on POSIX[J]. Computer Engineering and Applications,2009,45(11): 62-66.

[9] 黎慈军,董浩斌. Qt跨平台开发在多功能电法仪中的应用[J]. 微计算机信息,2010,26(3): 117-119.

Li Ci-jun,Dong Hao-bin. The Application of Qt for Cross-platform in the Multi-function Electrical Prospec- ting Instrument[J]. Microcomputer Information,2010,26(3): 117-119.

[10] 闫锋欣,牛子杰,杜烁炜,等. 基于Qt的Android应用程序C/C++开发方法与实践[J]. 计算机系统应用,2018,27(7): 96-102.

Yan Feng-xin,Niu Zi-jie,Du Shuo-wei,et al. Qt-Based C/C++ Development Pattern and Its Application for Android APP[J]. Computer Systems & Applications,2018,27(7): 96-102.

[11] 郭金良,聂孝亮,马孝尊,等. 基于Qt的VegaPrime视景仿真的实现[J]. 现代计算机,2009(1): 167-170.

Guo Jin-liang,Nie Xiao-liang,Ma Xiao-zun,et al. Implementation of Vega Prime Visual Simulation Based on Qt[J]. Modern Computer,2009(1): 167-170.

[12] Mark S. Advanced Qt Programming: Creating Great Soft- ware with C++ and Qt 4[M]. Beijing: Publishing House of Electronics Industry,2018: 1-4.

General Cross-platform Software Framework Design and Application for Vessel Weapon Launch System

,

(The 705 Research Institute,China State Shipbuilding Corporation Limited,Kunming 650032,China)

Almost all of the master control software of a vessel weapon launch system is currently based on a specific software and hardware platform as the operating environment. Furthermore,this platform has poor portability,which is not conducive to secondary developments,maintenance,and upgrade of the system. In this paper,natural cross-platform features of C++,such as Qt,POSIX,and middleware,are used to create a cross-platform software framework that is suitable for the development of the master control software for the weapon launch system of a vessel. The framework eliminates product interface differences through middleware technology and uses virtualization technology to realize the digital simulation of master control software peripherals. The application of this framework in practical situations has proved that it can significantly improve the platform portability of the master control software,reducing the cost of this task and shortening the time required to complete the development of the launch system.

vessel weapon launching system; cross-platform; software framework; middleware

TJ630; TP391

A

2096-3920(2021)04-0488-08

10.11993/j.issn.2096-3920.2021.04.018

安娜,姜杨. 舰艇武器发射系统跨平台通用软件框架设计与应用[J]. 水下无人系统学报,2021,29(4): 488-495.

2021-02-24;

2021-07-01.

安 娜(1969-),女,高级工程师,主要研究方向为舰艇发射装置技术.

(责任编辑: 杨力军)

猜你喜欢
中间件跨平台调用
跨层级网络、跨架构、跨平台的数据共享交换关键技术研究与系统建设
一款游戏怎么挣到全平台的钱?
潜力双跨平台:进阶:谁将跨入下一个“十大”?
我国自主可控中间件发展研究
基于Android Broadcast的短信安全监听系统的设计和实现
以实力证明 用事实说话
基于C++语言的跨平台软件开发的设计
利用RFC技术实现SAP系统接口通信
中移动集采:东方通中间件脱颖而出
金蝶 引领中间件2.0新时代