CN103809979A - 一种人机交互软件模块集成系统及其实现方法 - Google Patents
一种人机交互软件模块集成系统及其实现方法 Download PDFInfo
- Publication number
- CN103809979A CN103809979A CN201410064265.8A CN201410064265A CN103809979A CN 103809979 A CN103809979 A CN 103809979A CN 201410064265 A CN201410064265 A CN 201410064265A CN 103809979 A CN103809979 A CN 103809979A
- Authority
- CN
- China
- Prior art keywords
- module
- main
- message
- bus
- sending
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000003993 interaction Effects 0.000 title claims abstract description 29
- 230000010354 integration Effects 0.000 title claims abstract description 21
- 230000001960 triggered effect Effects 0.000 claims description 10
- 230000008676 import Effects 0.000 claims description 5
- 238000003032 molecular docking Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 11
- 238000007726 management method Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000013499 data model Methods 0.000 description 2
- 238000005316 response function Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种人机交互软件模块集成系统实现方法,引导程序加载各模块,并设置初始的主模块;所述主模块处于活跃状态,除主模块以外的其它模块处于休眠状态;所述各模块以模块名和编号唯一标识并分别作为节点散列于消息总线上;初始的主模块检测到对节点的操作时,将被操作节点编码为消息,并将编码消息通过消息总线发送至除主模块外的各模块;收到编码消息的模块确定自身为被操作节点时,所述被操作节点对应的模块成为主模块,并完成相应操作。本发明还同时公开了一种人机交互软件模块集成系统。
Description
技术领域
本发明涉及人机交互软件模块集成技术,尤其涉及一种人机交互软件模块集成系统及其实现方法。
背景技术
在人机交互平台软件的生命周期内,由于面向的领域和用户非常复杂,软件模块的需求增加、缺陷修改、功能增强、性能改进、运行环境改变等,均要求软件系统具有较强的演化能力。这一方面要求开发人员能快速适应改变,减少软件维护的代价;另一方面又需要一种通用的方法来满足特定的需求,确保个性化的需求实现不影响已经成熟稳定的软件模块。通常,软件模块是可独立发布的二进制单元,又是一个黑盒子,对外的接口主要有应用程序编程接口(Application Programming Interface,API)和端口,其中,API是软件模块对外提供的功能,端口表示软件模块内部调用外部其它软件模块的函数,基于模块化编程构建与集成的方法可减少软件模块开发成本并加快进度。
目前,基于组件模式的软件开发和集成,已经有研究和应用。文献《一种基于组件和脚本的可视化程序产物形成架构及应用》提出了一种基于组件的程序产物形成架构和应用,但该文献只涉及纯文件数据处理组件的调用替换过程;专利号为CN200410095470.7的文件提出了一种组件处理系统和组件处理方法,公开了一个应用程序可选加载组件以及根据应用程序请求动态加载组件;专利号CN200510115496.8的文件提出了一种组件间调用方法,通过定义预知的组件构造接口函数表,调用形成组件实例。
对于纯数据处理的组件开发实现,由于是一趟式线性函数调用,其难度可控;但对于人机交互频繁、基于界面操作非线性触发、存在长久活动生命周期的人机交互工具软件模块化开发,存在软件模块的生命期管理、软件模块间的通信和协同、界面组织管理等难点;同时,存在基于Microsoft的COM组件具有机制复杂、不能跨平台复用的问题,因此,需要设计一种轻量级、跨平台的模块集成协同工作方式和界面分层管理方法。
发明内容
有鉴于此,本发明实施例期望提供一种人机交互软件模块集成系统及其实现方法,能够降低模块更新替换对软件系统的稳定性影响,提高人机交互软件模块的集成和适应能力。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例提供了一种人机交互软件模块集成系统实现方法,引导程序加载各模块,并设置初始的主模块;所述主模块处于活跃状态,除主模块以外的其它模块处于休眠状态;所述各模块以模块名和编号唯一标识并分别作为节点散列于消息总线上;所述方法还包括:
初始的主模块检测到对自身以外节点的操作时,将被操作节点编码为消息,并将编码消息通过消息总线发送至除主模块外的各模块;
收到编码消息的模块确定自身为被操作节点时,所述被操作节点对应的模块成为主模块,并完成相应操作。
上述方案中,所述引导程序加载各模块之前,所述方法还包括:创建公共数据服务层、主框架、引导程序、消息总线及模块库。
上述方案中,所述引导程序加载各模块包括:引导程序创建主框架,读取各模块的默认配置文件,加载导入各模块的二进制代码,调用各模块预定义的创建接口,形成各模块对应的数据实例。
上述方案中,所述将编码消息通过消息总线发送至除主模块外的各模块包括:
调用快速直发总线的快速发送接口,将所述编码消息发送至除主模块外的各模块;或者,
将所述编码消息发送到事件循环队列总线中,所述循环队列总线周期定时触发后,将所述编码消息发送至除主模块外的各模块。
上述方案中,所述收到编码消息的模块确定自身为被操作节点时,所述被操作节点对应的模块成为主模块,包括:收到编码消息的模块根据节点的唯一标识判断自己是否属于被操作节点,确认自身节点标识与编码消息中携带的被操作节点的节点标识一致时,确定自身为被操作节点,则改变自身状态为活跃状态,使自身成为主模块。
上述方案中,所述将编码消息通过消息总线发送至除主模块外的各模块之后,所述方法还包括:所述主模块保存自身对应的视图数据后进入休眠状态。
本发明实施例还提供了一种人机交互软件模块集成系统,所述系统包括:引导模块、消息总线模块和包括一个以上模块的模块库;其中,
所述引导模块,用于加载模块库中的各模块,并设置初始的主模块;所述主模块处于活跃状态,除主模块以外的其它模块处于休眠状态;所述各模块以模块名和编号唯一标识并分别作为节点散列于消息总线上;
所述主模块,用于在检测到对自身以外节点的操作时,将被操作节点编码为消息,并将编码消息发送给消息总线模块;
所述消息总线模块,用于将编码消息发送至除主模块外的各模块;
所述被操作节点对应的模块,用于在收到编码消息且确定自身为被操作节点时,将自身变为主模块,并完成相应操作。
上述方案中,所述系统还包括:
主框架模块,用于根据引导模块加载的各模块,管理显示对应模块的主界面,支持各模块创建子菜单、图标、停靠栏内的标签窗体,并提供文件的操作入口;
所述主框架模块包括:菜单栏、工具栏、属性编辑器停靠栏、信息输出停靠栏、资源管理器停靠栏及界面容器。
上述方案中,所述引导模块加载模块库中的各模块包括:引导模块创建主框架模块,读取各模块的默认配置文件,加载导入各模块的二进制代码,调用各模块预定义的创建接口,形成各模块对应的数据实例。
上述方案中,所述消息总线模块包括:快速直发总线模块和循环队列总线模块;
所述将编码消息通过消息总线发送至除主模块外的各模块包括:
调用快速直发总线模块的快速发送接口,将所述编码消息发送至除主模块外的各模块;或者,
将所述编码消息发送到事件循环队列总线模块中,所述循环队列总线周期定时触发后,将所述编码消息发送至除主模块外的各模块。
上述方案中,所述被操作节点对应的模块在收到编码消息且确定自身为被操作节点时,将自身变为主模块包括:收到编码消息的模块根据节点的唯一标识判断自己是否属于被操作节点,确认自身节点标识与编码消息中携带的被操作节点的节点标识一致时,即可确定自身为被操作节点,则改变自身状态为活跃状态,使自身成为主模块。
本发明实施例所提供的人机交互软件集成系统及其实现方法,引导程序加载各模块,并设置初始的主模块;所述主模块处于活跃状态,除主模块以外的其它模块处于休眠状态;所述各模块以模块名和编号唯一标识并分别作为节点散列于消息总线上;进一步的,所述初始的主模块检测到对自身以外节点的操作时,将被操作节点编码为消息,并将编码消息通过消息总线发送至除主模块外的各模块;收到编码消息的模块确定自身为被操作节点时,所述被操作节点对应的模块成为主模块,并完成相应操作。如此,面向不同的应用场景,可配置加载不同模块,形成对应的界面,响应人机交互操作,这样,能降低模块更新替换对软件系统的稳定性影响,提高人机交互软件模块的集成和适应能力;基于公共规范开发不同的功能模块,还能提高软件开发效率。
附图说明
图1为本发明实施例一人机交互软件模块集成系统实现方法流程示意图;
图2为本发明实施例主框架的成员结构示意图;
图3为本发明实施例主框架界面容器结构示意图;
图4为本发明实施例消息总线结构示意图;
图5为本发明实施例公共数据服务层、主框架、引导程序、消息总线及模块库的交互分层结构示意图;
图6为本发明实施例二人机交互软件模块集成系统实现方法流程示意图;
图7为本发明实施例人机交互软件模块集成系统组成结构示意图。
具体实施方式
在本发明实施例中,引导程序加载各模块,并设置初始的主模块;所述主模块处于活跃状态,除主模块以外的其它模块处于休眠状态;所述各模块以模块名和编号唯一标识并分别作为节点散列于消息总线上;进一步的,所述初始的主模块检测到对自身以外节点的操作时,将被操作节点编码为消息,并将编码消息通过消息总线发送至除主模块外的各模块;收到编码消息的模块确定自身为被操作节点时,所述被操作节点对应的模块成为主模块,并完成相应操作。
下面结合附图及具体实施例对本发明再做进一步详细的说明。
图1为本发明实施例人机交互软件模块集成系统实现方法流程示意图,如图1所示,所述人机交互软件模块集成系统实现方法包括:
步骤100:引导程序加载各模块,并设置初始的主模块;所述主模块处于活跃状态,除主模块以外的其它模块处于休眠状态;所述各模块以模块名和编号唯一标识并分别作为节点散列于消息总线上;
进一步的,所述引导程序加载各模块包括:引导程序创建主框架,读取各模块的默认配置文件,加载导入各模块的二进制代码,调用各模块预定义的创建接口,形成各模块对应的数据实例;
这里,所述引导程序加载各模块之前,所述方法还包括:创建公共数据服务层、主框架、引导程序、消息总线及模块库;其中,
所述公共数据服务层包括:抽象数据、抽象界面、抽象消息、抽象模块及抽象消息总线;具体的,所述抽象数据用于管理层次化的XML节点数据,存储中间数据,是个通用递归的数据模型,包括本节点的若干属性和若干子节点,所述子节点包括本子节点的若干属性和下层子节点;所述抽象界面包括停靠栏(CDockArea)、资源管理器树形层次展示节点(CTreeItem)、顶层模块的主窗体基类(CBase Main Window)、界面容器(CGuiContainer);
所述主框架包括:菜单栏、工具栏、属性编辑器停靠栏、信息输出停靠栏、资源管理器停靠栏及界面容器;所述主框架可根据引导程序加载的各个模块,管理显示对应模块的主界面,在主框架界面容器内管理所述对应模块的窗体实例,同时,所述对应模块的窗体本身也作为容器管理模块内各子界面,界面容器支持后入先出栈、并行标签、工作空间的容器管理方式;
这里,当引导程序设置主模块后,主框架模块管理显示主模块的主界面,在主框架界面容器内管理主模块的窗体实例,同时,所述主模块的窗体本身也作为容器管理模块内各子界面;所述主框架的成员结构示意图如图2所示,所述主框架界面容器结构示意图如图3所示;
所述消息总线包括:快速直发总线和循环队列总线,既支持实时性要求高的快速响应要求,又支持低负载的轮询处理;以电力系统装置配套软件为例,所述消息总线结构示意图如图4所示;
所述模块库包括:满足具体应用场景的软件功能需求的、功能独立的、具有统一接口规范的各个功能模块,所述模块有统一的构造、初始化、运行、停止、卸载、消息响应函数,所述模块通过C++的虚函数派生,在Windows平台下编译为DLL文件,在Linux平台下编译为.so文件;
所述公共数据服务层、主框架、引导程序、消息总线及模块库的交互分层结构示意图如图5所示。
步骤101:初始的主模块检测到对自身以外节点的操作时,将被操作节点编码为消息,并将编码消息通过消息总线发送至除主模块外的各模块;
进一步的,所述将被操作节点编码为消息之前,所述方法还包括:所述主模块处理文件的菜单命令,创建资源管理器视图;
其中,所述菜单命令包括:新建文件、打开文件和保存文件等常规操作;
进一步的,所述将编码消息通过消息总线发送至除主模块外的各模块包括:
调用快速直发总线的快速发送接口,将所述编码消息发送至除主模块外的各模块;或者,将所述编码消息发送到事件循环队列总线中,所述循环队列总线周期定时触发后,将所述编码消息发送至除主模块外的各模块;
这里,采用快速直发总线发送所述编码消息的方式,主要用于高优先级的事件处理,可支持实时性要求高的快速响应要求;采用事件循环队列总线发送所述编码消息的方式,主要用于普通优先级的事件处理,可支持低负载的轮询处理;
当所述消息总线可以获得所述编码消息的目的地址时,也就是说,可以获得被操作节点所对应模块的地址时,则将被操作节点所对应的模块作为目标模块,初始的主模块可调用快速直发总线的快速发送接口,将所述编码消息直接发送至目标模块;或者,将所述编码消息发送到事件循环队列总线中,所述循环队列总线周期定时触发后,将所述编码消息发送至目标模块;
所述将编码消息通过消息总线发送至除主模块外的各模块可通过广播、组播、点对点的发送方式;
进一步的,所述将编码消息通过消息总线发送至除主模块外的各模块之后,所述方法还包括:所述初始的主模块保存自身对应的视图数据后进入休眠状态。
步骤102:收到编码消息的模块确定自身为被操作节点时,所述被操作节点对应的模块成为主模块,并完成相应操作;
这里,收到编码消息的模块确定自身为被操作节点时,所述被操作节点对应的模块成为主模块包括:收到编码消息的模块根据节点的唯一标识判断自己是否属于被操作节点,确认自身节点标识与编码消息中携带的被操作节点的节点标识一致时,即可确定自身为被操作节点,则改变自身状态为活跃状态,使自身成为主模块,并由主框架显示当前主模块界面;
进一步的,当前主模块进入休眠状态有两种方式:在当前主模块完成相应操作后,当有操作人员点击关闭当前主界面时,当前主模块保存对应的视图数据后进入休眠状态;或者,在当前主模块处理当前操作过程中及完成相应操作后,当前主模块检测到对自身以外节点的操作时,当前主模块将被操作节点编码为消息,并将编码消息通过消息总线发送至除主模块外的各模块,之后保存自身对应的视图数据后进入休眠状态。
图6为本发明实施例二人机交互软件模块集成系统实现方法流程示意图,如图6所示,所述人机交互软件模块集成系统实现方法包括:
步骤601:创建公共数据服务层、主框架、引导程序、消息总线及模块库;
这里,所述公共数据服务层包括:抽象数据、抽象界面、抽象消息、抽象模块及抽象消息总线;具体的,所述抽象数据用于管理层次化的XML节点数据,存储中间数据,是个通用递归的数据模型,包括本节点的若干属性和若干子节点,所述子节点包括本子节点的若干属性和下层子节点;所述抽象界面包括停靠栏、资源管理器树形层次展示节点、顶层模块的主窗体基类、界面容器;
所述主框架包括:菜单栏、工具栏、属性编辑器停靠栏、信息输出停靠栏、资源管理器停靠栏及界面容器,所述主框架可根据引导程序加载的各个模块,管理显示对应模块的主界面,在主框架界面容器内管理所述对应模块的窗体实例,同时,所述对应模块的窗体本身也作为容器管理模块内各子界面,界面容器支持后入先出栈、并行标签、工作空间的容器管理方式;
这里,当引导程序设置主模块后,主框架模块管理显示主模块的主界面,在主框架界面容器内管理主模块的窗体实例,同时,所述主模块的窗体本身也作为容器管理模块内各子界面;所述主框架的成员结构示意图如图2所示,所述主框架界面容器结构示意图如图3所示;
所述消息总线包括:快速直发总线和循环队列总线,既支持实时性要求高的快速响应要求,又支持低负载的轮询处理;以电力系统装置配套软件为例,所述消息总线结构示意图如图4所示;
所述模块库包括:满足具体应用场景的软件功能需求的、功能独立的、具有统一接口规范的各个功能模块,所述模块有统一的构造、初始化、运行、停止、卸载、消息响应函数,所述模块通过C++的虚函数派生,在Windows平台下编译为DLL文件,在Linux平台下编译为.so文件;
所述公共数据服务层、主框架、引导程序、消息总线及模块库的交互分层结构示意图如图5所示。
步骤602:引导程序加载各模块,并设置初始的主模块:
这里,所述主模块处于活跃状态,除主模块以外的其它模块处于休眠状态;所述各模块以模块名和编号唯一标识并分别作为节点散列于消息总线上;
所述引导程序加载各模块包括:引导程序创建主框架,读取模块默认配置文件,加载导入各模块的二进制代码,调用预定义的模块创建接口,形成模块的数据实例。
步骤603:初始的主模块检测到对自身以外的节点的操作时,将被操作节点编码为消息,并将编码消息通过消息总线发送至除主模块外的各模块;
这里,所述将编码消息通过消息总线发送至除主模块外的各模块包括:
调用快速直发总线的快速发送接口,将所述编码消息发送至除主模块外的各模块;或者,将所述编码消息发送到事件循环队列总线中,所述循环队列总线周期定时触发后,将所述编码消息发送至除主模块外的各模块;
这里,采用快速直发总线发送所述编码消息的方式,主要用于高优先级的事件处理,可支持实时性要求高的快速响应要求;采用事件循环队列总线发送所述编码消息的方式,主要用于普通优先级的事件处理,可支持低负载的轮询处理;
当所述消息总线可以获得所述编码消息的目的地址时,也就是说,可以获得被操作节点所对应模块的地址时,则将被操作节点所对应的模块作为目标模块,初始的主模块可调用快速直发总线的快速发送接口,将所述编码消息直接发送至目标模块,并等待目标模块返回状态和数据;或者,将所述编码消息发送到事件循环队列总线中,所述循环队列总线周期定时触发后,将所述编码消息发送至目标模块;
所述将编码消息通过消息总线发送至除主模块以外的各模块可通过广播、组播、点对点的发送方式。
步骤604:初始的主模块保存自身对应的视图数据后进入休眠状态。
步骤605:收到编码消息的模块确定自身为被操作节点时,所述被操作节点对应的模块成为主模块,并完成相应操作;
这里,收到编码消息的模块确定自身为被操作节点时,所述被操作节点对应的模块成为主模块包括:收到编码消息的模块根据节点的唯一标识判断自己是否属于被操作节点,确认自身节点标识与编码消息中携带的被操作节点的节点标识一致时,确定自身为被操作节点,则改变自身状态为活跃状态,使自身成为主模块,并由主框架显示相关模块界面;
进一步的,当前主模块进入休眠状态有两种方式:在当前主模块完成相应操作后,当有操作人员点击关闭当前主界面时,当前主模块保存对应的视图数据后进入休眠状态;或者,在当前主模块处理当前操作过程中及完成相应操作后,当前主模块检测到对自身以外节点的操作时,当前主模块将被操作节点编码为消息,并将编码消息通过消息总线发送至除主模块以外的各模块,之后保存自身对应的视图数据后进入休眠状态。
图7为本发明实施例人机交互软件模块集成系统组成结构示意图,如图7所示,所述人机交互软件模块集成系统包括:引导模块71、消息总线模块72和包括一个以上模块的模块库73;其中,
所述引导模块71,用于加载模块库中的各模块,并设置初始的主模块;所述主模块处于活跃状态,除主模块以外的其它模块处于休眠状态;所述各模块以模块名和编号唯一标识并分别作为节点散列于消息总线上;
所述主模块,用于在检测到对自身以外节点的操作时,将被操作节点编码为消息,并将编码消息发送给消息总线模块72;
所述消息总线模块72,用于将被操作节点编码为消息,并将编码消息通过消息总线模块72发送至除主模块以外的各模块;
所述被操作节点对应的模块,用于在收到编码消息且确定自身为被操作节点时,将自身变为主模块,并完成相应操作。
这里,所述模块库73中各模块为满足具体应用场景的软件功能需求的、功能独立的、具有统一接口规范的各个功能模块。
所述引导模块71加载各模块包括:引导模块71创建主框架模块,读取各模块的默认配置文件,加载导入各模块的二进制代码,调用预定义的创建接口,形成各模块对应的数据实例。
进一步的,所述消息总线模块72包括:快速直发总线模块721和循环队列总线模块722;
所述将编码消息通过消息总线发送至除主模块以外的各模块包括:
调用快速直发总线模块721的快速发送接口,将所述编码消息发送至除主模块以外的各模块;或者,
将所述编码消息发送到事件循环队列总线模块722中,所述循环队列总线周期定时触发后,将所述编码消息发送至除主模块以外的各模块;
当所述消息总线模块72可以获得所述编码消息的目的地址时,也就是说,可以获得被操作节点所对应模块的地址时,则将被操作节点所对应的模块作为目标模块,初始的主模块可调用快速直发总线模块721的快速发送接口,将所述编码消息直接发送至目标模块;或者,将所述编码消息发送到事件循环队列总线模块722中,所述循环队列总线模块722周期定时触发后,将所述编码消息发送至目标模块;
所述将编码消息通过消息总线发送至除主模块外的各模块可通过广播、组播、点对点的发送方式。
进一步的,所述系统还包括:
主框架模块74,用于根据引导模块加载的各个模块,管理显示对应模块的主界面,支持各模块创建子菜单、图标、停靠栏内的标签窗体,以及提供文件的新建、打开、关闭、保存的操作入口;
所述主框架模块74包括:菜单栏、工具栏、属性编辑器停靠栏、信息输出停靠栏、资源管理器停靠栏及界面容器;
进一步的,所述被操作节点对应的模块在收到编码消息且确定自身为被操作节点时,将自身变为主模块包括:收到编码消息的模块根据节点的唯一标识判断自己是否属于被操作节点,确认自身节点标识与编码消息中携带的被操作节点的节点标识一致时,确定自身为被操作节点,则改变自身状态为活跃状态,使自身成为主模块。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (11)
1.一种人机交互软件模块集成系统实现方法,其特征在于,引导程序加载各模块,并设置初始的主模块;所述主模块处于活跃状态,除主模块以外的其它模块处于休眠状态;所述各模块以模块名和编号唯一标识并分别作为节点散列于消息总线上;所述方法还包括:
初始的主模块检测到对自身以外节点的操作时,将被操作节点编码为消息,并将编码消息通过消息总线发送至除主模块外的各模块;
收到编码消息的模块确定自身为被操作节点时,所述被操作节点对应的模块成为主模块,并完成相应操作。
2.根据权利要求1所述方法,其特征在于,所述引导程序加载各模块之前,所述方法还包括:创建公共数据服务层、主框架、引导程序、消息总线及模块库。
3.根据权利要求1或2所述方法,其特征在于,所述引导程序加载各模块包括:引导程序创建主框架,读取各模块的默认配置文件,加载导入各模块的二进制代码,调用各模块预定义的创建接口,形成各模块对应的数据实例。
4.根据权利要求1所述方法,其特征在于,所述将编码消息通过消息总线发送至除主模块外的各模块包括:
调用快速直发总线的快速发送接口,将所述编码消息发送至除主模块外的各模块;或者,
将所述编码消息发送到事件循环队列总线中,所述循环队列总线周期定时触发后,将所述编码消息发送至除主模块外的各模块。
5.根据权利要求1所述方法,其特征在于,所述收到编码消息的模块确定自身为被操作节点时,所述被操作节点对应的模块成为主模块,包括:收到编码消息的模块根据节点的唯一标识判断自己是否属于被操作节点,确认自身节点标识与编码消息中携带的被操作节点的节点标识一致时,确定自身为被操作节点,则改变自身状态为活跃状态,使自身成为主模块。
6.根据权利要求1或5所述方法,其特征在于,所述将编码消息通过消息总线发送至除主模块外的各模块之后,所述方法还包括:所述主模块保存自身对应的视图数据后进入休眠状态。
7.一种人机交互软件模块集成系统,其特征在于,所述系统包括:引导模块、消息总线模块和包括一个以上模块的模块库;其中,
所述引导模块,用于加载模块库中的各模块,并设置初始的主模块;所述主模块处于活跃状态,除主模块以外的其它模块处于休眠状态;所述各模块以模块名和编号唯一标识并分别作为节点散列于消息总线上;
所述主模块,用于在检测到对自身以外节点的操作时,将被操作节点编码为消息,并将编码消息发送给消息总线模块;
所述消息总线模块,用于将编码消息发送至除主模块外的各模块;
所述被操作节点对应的模块,用于在收到编码消息且确定自身为被操作节点时,将自身变为主模块,并完成相应操作。
8.根据权利要求7所述系统,其特征在于,所述系统还包括:
主框架模块,用于根据引导模块加载的各模块,管理显示对应模块的主界面,支持各模块创建子菜单、图标、停靠栏内的标签窗体,并提供文件的操作入口;
所述主框架模块包括:菜单栏、工具栏、属性编辑器停靠栏、信息输出停靠栏、资源管理器停靠栏及界面容器。
9.根据权利要求7所述系统,其特征在于,所述引导模块加载模块库中的各模块包括:引导模块创建主框架模块,读取各模块的默认配置文件,加载导入各模块的二进制代码,调用各模块预定义的创建接口,形成各模块对应的数据实例。
10.根据权利要求7所述系统,其特征在于,所述消息总线模块包括:快速直发总线模块和循环队列总线模块;
所述将编码消息通过消息总线发送至除主模块外的各模块包括:
调用快速直发总线模块的快速发送接口,将所述编码消息发送至除主模块外的各模块;或者,
将所述编码消息发送到事件循环队列总线模块中,所述循环队列总线周期定时触发后,将所述编码消息发送至除主模块外的各模块。
11.根据权利要求7所述系统,其特征在于,所述被操作节点对应的模块在收到编码消息且确定自身为被操作节点时,将自身变为主模块包括:收到编码消息的模块根据节点的唯一标识判断自己是否属于被操作节点,确认自身节点标识与编码消息中携带的被操作节点的节点标识一致时,即可确定自身为被操作节点,则改变自身状态为活跃状态,使自身成为主模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410064265.8A CN103809979B (zh) | 2014-02-25 | 2014-02-25 | 一种人机交互软件模块集成系统及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410064265.8A CN103809979B (zh) | 2014-02-25 | 2014-02-25 | 一种人机交互软件模块集成系统及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103809979A true CN103809979A (zh) | 2014-05-21 |
CN103809979B CN103809979B (zh) | 2017-03-29 |
Family
ID=50706805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410064265.8A Active CN103809979B (zh) | 2014-02-25 | 2014-02-25 | 一种人机交互软件模块集成系统及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103809979B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109840103A (zh) * | 2017-11-27 | 2019-06-04 | 西门子(中国)有限公司 | 应用程序容器的更新方法、装置和存储介质 |
CN110069309A (zh) * | 2019-04-23 | 2019-07-30 | 广州华多网络科技有限公司 | 一种页面配置方法、系统及客户端 |
CN111190575A (zh) * | 2019-12-07 | 2020-05-22 | 北京海致星图科技有限公司 | 一种构造接口的方法、系统、介质及设备 |
CN111823863A (zh) * | 2020-05-28 | 2020-10-27 | 惠州华阳通用电子有限公司 | 一种车载播放源切换方法、系统及设备 |
WO2021143305A1 (zh) * | 2020-01-14 | 2021-07-22 | 清华大学 | 一种数值应用程序的软件模块集成系统及运行方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1637706A (zh) * | 2003-12-18 | 2005-07-13 | 东芝解决方案株式会社 | 组件处理系统和组件处理方法 |
CN1834918A (zh) * | 2005-11-04 | 2006-09-20 | 北京金山软件有限公司 | 一种组件间调用方法 |
CN102609507A (zh) * | 2012-02-03 | 2012-07-25 | 浙江工业大学 | 基于Web的数据可视化系统 |
CN103049527A (zh) * | 2012-12-20 | 2013-04-17 | 中国电力科学研究院 | 一种面向大电网的并行实时数据库主备切换管理系统 |
-
2014
- 2014-02-25 CN CN201410064265.8A patent/CN103809979B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1637706A (zh) * | 2003-12-18 | 2005-07-13 | 东芝解决方案株式会社 | 组件处理系统和组件处理方法 |
CN1834918A (zh) * | 2005-11-04 | 2006-09-20 | 北京金山软件有限公司 | 一种组件间调用方法 |
CN102609507A (zh) * | 2012-02-03 | 2012-07-25 | 浙江工业大学 | 基于Web的数据可视化系统 |
CN103049527A (zh) * | 2012-12-20 | 2013-04-17 | 中国电力科学研究院 | 一种面向大电网的并行实时数据库主备切换管理系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109840103A (zh) * | 2017-11-27 | 2019-06-04 | 西门子(中国)有限公司 | 应用程序容器的更新方法、装置和存储介质 |
CN110069309A (zh) * | 2019-04-23 | 2019-07-30 | 广州华多网络科技有限公司 | 一种页面配置方法、系统及客户端 |
CN110069309B (zh) * | 2019-04-23 | 2021-02-12 | 广州方硅信息技术有限公司 | 一种页面配置方法、系统及客户端 |
CN111190575A (zh) * | 2019-12-07 | 2020-05-22 | 北京海致星图科技有限公司 | 一种构造接口的方法、系统、介质及设备 |
WO2021143305A1 (zh) * | 2020-01-14 | 2021-07-22 | 清华大学 | 一种数值应用程序的软件模块集成系统及运行方法 |
CN111823863A (zh) * | 2020-05-28 | 2020-10-27 | 惠州华阳通用电子有限公司 | 一种车载播放源切换方法、系统及设备 |
CN111823863B (zh) * | 2020-05-28 | 2021-11-16 | 惠州华阳通用电子有限公司 | 一种车载播放源切换方法、系统及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103809979B (zh) | 2017-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103809979B (zh) | 一种人机交互软件模块集成系统及其实现方法 | |
CN101814024B (zh) | 一种跨平台3d界面设计系统和方法 | |
CN101699393B (zh) | 一种面向网络的智能化软件界面动态生成方法 | |
CN100419684C (zh) | 为软件中的程序模块创建快捷方式及启动方法 | |
US20120124553A1 (en) | Status management for phased implementation of configuration changes | |
CN112000441B (zh) | 一种基于kubernetes声明式编排管理虚机生命周期的方法 | |
CN101971143A (zh) | 应用组件之间的自动连接 | |
CN111026014B (zh) | 一种现场设备自动化控制系统和方法 | |
EP2782007A1 (en) | Launching multiple applications in containers on a processor | |
CN104714823B (zh) | 基于OpenStack的新建主机配置方法 | |
US20140025860A1 (en) | Information apparatus, method for switching screen, and computer-readable recording medium having stored therein screen switch program | |
TW201523419A (zh) | 視窗介面展現方法及系統 | |
CN111413876A (zh) | 一种配置app的控制页面的方法及云平台、终端设备 | |
CN102047217A (zh) | 重新获取对执行外部执行上下文的处理资源的控制 | |
CN102023805A (zh) | 一种软件界面文本信息的辅助浏览方法 | |
CN102023857A (zh) | 基于ServiceOS的多平台应用程序服务管理方法及系统 | |
CN113126961B (zh) | 流水线处理方法、装置和存储介质 | |
CN102567030A (zh) | 电视机用户交互界面实现方法及系统 | |
CN101976190B (zh) | 基于DirectUI的界面生成系统及方法 | |
CN110941503A (zh) | 故障处理方法、装置及电子设备 | |
CN102508665B (zh) | 绘制应用程序视图的方法和装置 | |
CN102170428A (zh) | 一种异构虚拟机平台动态扩展管理方法 | |
CN102236510A (zh) | 一种利用超级任务栏控制即时通信软件的方法及设备 | |
EP3944069B1 (en) | Method, apparatus and system of voice interaction, vehicles and storage media | |
US11949761B2 (en) | Techniques for distributed interface component generation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |