一种基于消息的无人机通用地面站软件架构制造技术

技术编号:17109540 阅读:51 留言:0更新日期:2018-01-24 22:24
本发明专利技术公开了一种基于消息的无人机通用地面站软件架构,包含消息配置文件、io驱动组件、消息路由组件和业务逻辑处理组件,消息路由组件用于为io驱动组件和业务逻辑处理组件之间建立以消息为单位的消息路由层,包含消息配置组件、消息组件、消息输入组件和消息输出组件,消息安全组件。本发明专利技术使软件开发人员不用考虑与外部环境的真实交互接口和协议,从而开发出健壮的、低耦合、可移植或重用的业务逻辑处理软件组件。

A message based general ground station software architecture for unmanned aerial vehicles

The invention discloses a general UAV Ground Station Software Architecture Based on message, a message containing the configuration files, IO driver module, message routing module and the business logic processing module, message routing module for IO driving between components and business logic components to establish the message for the message routing unit, component configuration, contains the message message components, message input module and message output module, message security module. The invention enables software developers to develop robust, low coupling, transplantable or reusable business logic processing software components without considering the real interaction interfaces and protocols with external environment.

【技术实现步骤摘要】
一种基于消息的无人机通用地面站软件架构
本专利技术涉及无人机通用地面站软件架构设计技术,尤其适用于外部环境复杂、数据处理密集的无人机地面站软件产品设计。
技术介绍
传统的无人机地面站软件往往由各个地面控制软件直接通过网络或其他总线与无人机链路终端直接进行数据交互,对于单个的地面站软件控制软件,由于功能比较固定和单一,涉及到的外部数据集较小,且外部接口协议一般只有1到2种,在可控制的范围内。所以传统的地面站软件开发过程中往往不注重对数据接口的良好设计,一般在处理逻辑中直接调用操作系统提供的io接口或者个别专用总线驱动接口。对于传统的无人机地面站软件忽视对数据接口的良好封装对软件复杂性不会带来明显的提升。无人机通用地面站是近年来无人机发展的方向,比较传统的无人机地面站,无人机通用地面站具有更加复杂的外部环境,比如无人机通用地面站需要能够同时监控多个架次多个型号的无人机,还要适应新的无人机监控需求加入和现有无人机升级改动。因此,无人机通用地面站是比传统无人机地面站复杂得多的大系统,对于无人机通用地面站软件设计而言,会面临着处理更大的数据集,对于大的数据集里的各个不同的小数据集会采用不同的总线或者不同的协议,如果还采用一般地面站软件的设计模式软件的复杂程度会随着数据集的增加和交互协议或总线接口的增加而成倍的增加。
技术实现思路
本专利技术的专利技术目的在于提供一种基于消息的无人机通用地面站软件架构,按数据流对软件进行分层设计,对业务处理逻辑屏蔽了数据获取细节,以实现复杂数据接口处理环境下的统一软件开发模型,在可预见的需求变化情况下实现各层软件组件的复用,进而缩短软件的开发周期,提升软件质量,减少维护成本。本专利技术的专利技术目的通过以下技术方案实现:一种基于消息的无人机通用地面站软件架构,包含消息配置文件、io驱动组件、消息路由组件和业务逻辑处理组件,消息路由组件包含消息配置组件、消息组件、消息输入组件和消息输出组件,消息安全组件;消息配置组件用于对消息配置文件进行解析,根据解析出的消息的<uuid>、<length>、<InOut>和<link_list>完成消息组件、消息输入组件和消息输出组件的初始化配置;在接收外部系统的外部数据时:io驱动组件用于先从外部系统接收外部数据;然后调用消息组件,由消息组件在外部数据上加上<uuid>和<length>标识后封装为输入消息实体;最后将输入消息实体放入消息输入组件的消息输入队列中;业务逻辑处理组件用于根据<uuid>从消息输入组件的消息输入队列中获取输入消息实体,然后进行相应处理;在向外部系统发送内部数据时:业务逻辑处理组件用于先调用消息组件,由消息组件在内部数据上加上<uuid>、<length>和<link_list>标识后封装为输出消息实体;再调用消息输出组件,将输出消息实体发送给对应的io层输出组件;io层输出组件用于处理输出消息实体,将消息实体内包含的内部数据发送给外部系统。优选地,消息配置组件包括解析功能接口和可视化界面组件;解析功能接口用于对消息配置文件进行解析,根据解析出的消息实体的<uuid>、<length>、<InOut>和<link_list>完成消息组件、消息输入组件和消息输出组件的初始化配置;可视化界面组件用于提供对消息配置文件进行编辑的消息配置界面。优选地,消息组件包括消息类,消息类用于为io驱动组件和业务逻辑处理组件提供生成消息的工厂方法;所述工厂方法用于将外部数据或内部数据封装为输入消息实体或输出消息实体。优选地,消息输入组件包含若干个消息输入队列,每个消息输入队列对应一个<uuid>。优选地,消息输入组件包含put方法和get方法;put方法供io驱动组件调用,将输入消息实体放入到消息输入队列中;get方法供业务逻辑处理组件周期性查询,根据<uuid>从消息输入队列中获取输入消息实体。优选地,消息输入组件还包含回调接口,回调接口用于根据<uuid>将消息输入队列中的输入消息实体传递给业务逻辑处理组件。优选地,消息输出组件包括一套方法定义和实现以及一个接口类定义;所述方法定义及实现包含提供给业务逻辑处理组件使用的一组重载的send方法;所述接口类定义包含提供给IO驱动层组件使用的虚方法send;所述io驱动组件中包含与所述虚方法send为继承关系的send方法;重载的send方法根据输出消息实体中的<uuid>和<link_list>调用相应的虚方法send,从而调用IO驱动层的send方法实现将输出消息实体发送到外部系统。优选地,消息输出组件的接口类定义还包括两个注册函数,注册函数1用于供IO驱动层组件中的相关组件注册自身处理的具体<link_list>,注册函数2用于供IO驱动层组件中的相关组件向消息输出组件声明自身存在。优选地,消息路由组件还包含消息安全组件,提供以消息为单位的安全策略方法。本专利技术为通用无人机地面站软件设计提供了统一的开发模型,基于消息对象的软件内部数据交互模型使软件开发人员在不清楚数据硬件接口、软件协议或接口、协议多变的情况下能够聚焦在业务层组件的开发上,完全解耦了软件业务逻辑和外部接口环境。带来的有益效果是使软件开发人员不用考虑与外部环境的真实交互接口和协议,从而开发出健壮的、低耦合、可移植或重用的业务逻辑处理软件组件。io驱动层的设计遵循开发模型定义的规则,具备一致的设计套路和步骤,既统一了软件设计风格又降低了开发人员的设计复杂性,又屏蔽了不同开发设计人员不同设计模式带来的不确定性风险,同时带来的有益效果还包括io层的组件同样低耦合和高可移植的特性。消息路由组件为其它组件提供注册接收、注册发送、接收、发送消息接口,并对软件接收和发送的数据集以消息对象的方式统一管理,带来的有益效果是,统一了软件组件的设计风格并能对软件的安全性做出轻松设计。附图说明图1典型的无人机通用地面站软件交联关系示意图。图2为基于消息的无人机通用地面站软件架构的结构示意图。图3为消息配置文件的示意图。图4消息输入过程示意图。图5消息输出过程示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。图1是本专利技术适用领域典型的无人机通用地面站软件交联关系示意图,以无人机通用地面站里的测控处理软件为例介绍本专利技术的具体实施方式。测控处理软件是无人机通用地面站里的核心软件,如图1所示,测控处理软件和站内和站外多个软件都有交联关系,是一个典型的外部环境复杂、数据处理密集型的无人机通用地面站软件产品。图2是本专利技术基于消息的无人机通用地面站软件架构的模型示意图,采用本专利技术设计的软件由一个消息配置文本文档来自技高网...
一种基于消息的无人机通用地面站软件架构

【技术保护点】
一种基于消息的无人机通用地面站软件架构,包含消息配置文件、io驱动组件、消息路由组件和业务逻辑处理组件,其特征在于所述消息路由组件包含消息配置组件、消息组件、消息输入组件和消息输出组件;所述消息配置组件用于对消息配置文件进行解析,根据解析出的消息的<uuid>、<length>、<InOut>和<link_list>完成消息组件、消息输入组件和消息输出组件的初始化配置;在接收外部系统的外部数据时:所述io驱动组件用于先从外部系统接收外部数据;然后调用消息组件,由消息组件在外部数据上加上<uuid>和<length>标识后封装为输入消息实体;最后将输入消息实体放入消息输入组件的消息输入队列中;所述业务逻辑处理组件用于根据<uuid>从消息输入组件的消息输入队列中获取输入消息实体,然后进行相应处理;在向外部系统发送内部数据时:所述业务逻辑处理组件用于先调用消息组件,由消息组件在内部数据上加上<uuid>、<length>和<link_list>标识后封装为输出消息实体;再调用消息输出组件,将输出消息实体发送给对应的io层输出组件;所述io层输出组件用于处理输出消息实体,将消息实体内包含的内部数据发送给外部系统。...

【技术特征摘要】
1.一种基于消息的无人机通用地面站软件架构,包含消息配置文件、io驱动组件、消息路由组件和业务逻辑处理组件,其特征在于所述消息路由组件包含消息配置组件、消息组件、消息输入组件和消息输出组件;所述消息配置组件用于对消息配置文件进行解析,根据解析出的消息的&lt;uuid&gt;、&lt;length&gt;、&lt;InOut&gt;和&lt;link_list&gt;完成消息组件、消息输入组件和消息输出组件的初始化配置;在接收外部系统的外部数据时:所述io驱动组件用于先从外部系统接收外部数据;然后调用消息组件,由消息组件在外部数据上加上&lt;uuid&gt;和&lt;length&gt;标识后封装为输入消息实体;最后将输入消息实体放入消息输入组件的消息输入队列中;所述业务逻辑处理组件用于根据&lt;uuid&gt;从消息输入组件的消息输入队列中获取输入消息实体,然后进行相应处理;在向外部系统发送内部数据时:所述业务逻辑处理组件用于先调用消息组件,由消息组件在内部数据上加上&lt;uuid&gt;、&lt;length&gt;和&lt;link_list&gt;标识后封装为输出消息实体;再调用消息输出组件,将输出消息实体发送给对应的io层输出组件;所述io层输出组件用于处理输出消息实体,将消息实体内包含的内部数据发送给外部系统。2.根据权利要求1所述的基于消息的无人机通用地面站软件架构,其特征在于所述消息配置组件包括解析功能接口和可视化界面组件;所述解析功能接口用于对消息配置文件进行解析,根据解析出的消息实体的&lt;uuid&gt;、&lt;length&gt;、&lt;InOut&gt;和&lt;link_list&gt;完成消息组件、消息输入组件和消息输出组件的初始化配置;所述可视化界面组件用于提供对消息配置文件进行编辑的消息配置界面。3.根据权利要求1所述的基于消息的无人机通用地面站软件架构,其特...

【专利技术属性】
技术研发人员:孟令军万宏张彦彭文明肖忠炳沈利达
申请(专利权)人:中国航空无线电电子研究所
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1