CN117632312B - 数据交互方法及相关装置 - Google Patents
数据交互方法及相关装置 Download PDFInfo
- Publication number
- CN117632312B CN117632312B CN202410101959.8A CN202410101959A CN117632312B CN 117632312 B CN117632312 B CN 117632312B CN 202410101959 A CN202410101959 A CN 202410101959A CN 117632312 B CN117632312 B CN 117632312B
- Authority
- CN
- China
- Prior art keywords
- interaction
- data
- event
- functional modules
- carrier
- 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.)
- Active
Links
- 230000003993 interaction Effects 0.000 title claims abstract description 417
- 238000000034 method Methods 0.000 title claims abstract description 100
- 230000008569 process Effects 0.000 claims abstract description 62
- 238000012544 monitoring process Methods 0.000 claims abstract description 17
- 230000015654 memory Effects 0.000 claims description 114
- 230000006870 function Effects 0.000 claims description 106
- 238000012545 processing Methods 0.000 claims description 53
- 238000012806 monitoring device Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 9
- 230000001960 triggered effect Effects 0.000 claims description 8
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 claims 2
- 238000011161 development Methods 0.000 abstract description 17
- 230000006854 communication Effects 0.000 description 45
- 238000004891 communication Methods 0.000 description 44
- 230000002452 interceptive effect Effects 0.000 description 44
- 238000010586 diagram Methods 0.000 description 20
- 230000005540 biological transmission Effects 0.000 description 15
- 238000007726 management method Methods 0.000 description 15
- 230000004044 response Effects 0.000 description 8
- 239000000969 carrier Substances 0.000 description 7
- 239000011800 void material Substances 0.000 description 7
- 238000013523 data management Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 235000019800 disodium phosphate Nutrition 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种数据交互方法及相关装置,该方法首先确定监控设备的多个功能模块中任意两个功能模块之间的交互载体;其次,根据交互载体和多个功能模块之间的公共交互数据生成公共交互数据文件,所述公共交互数据文件包括第一接口;再次,将公共交互数据文件添加到多个功能模块中;最后,在当前进行的程序进程内调用第一接口使得不同功能模块之间的数据进行交互。因此,本申请能够通过调用不同功能模块之间的公共交互数据文件中的第一接口实现嵌入式软件工程项目不同功能模块的开发解耦,以及多线程、多进程间的数据交互的灵活管理,节省交互协议开发工作时间。
Description
技术领域
本申请涉及嵌入式软件工程领域,尤其涉及一种数据交互方法及相关装置。
背景技术
在嵌入式监控设备应用过程中,往往要采集大量数据,需要使用到很多的硬件接口资源。所以,经常会出现一个设备内部包含了多个核心控制器,各控制器之间通过特定的通信协议进行数据交互,从而实现整体设备功能。在多进程功能块管理的模式下,各功能块之间需要制定通信协议,定制协议往往不具备复用性,为项目开发带来一定的工作负担。
发明内容
本申请提供了一种数据交互方法及相关装置,通过调用不同功能模块之间的公共交互数据文件中的第一接口实现嵌入式软件工程项目不同功能模块的开发解耦,以及多线程、多进程间的数据交互的灵活管理,节省交互协议开发工作时间。
第一方面,本申请提供了一种数据交互方法,所述方法包括:
确定监控设备的多个功能模块中任意两个功能模块之间的交互载体,所述监控设备包括至少一个软件工程,单个软件工程包括至少一个功能模块,所述任意两个功能模块分属不同的软件工程,所述交互载体是指所述任意两个功能模块之间数据交互的介质;
根据所述交互载体和所述多个功能模块之间的公共交互数据生成公共交互数据文件,所述公共交互数据文件包括第一接口,所述第一接口用于指示所述多个功能模块之间的数据交互;
将所述公共交互数据文件添加到所述多个功能模块中;
在当前进行的程序进程内调用所述第一接口使得不同功能模块之间的数据进行交互。
第二方面,本申请提供了一种数据交互装置,所述装置包括:
处理单元,用于确定监控设备的多个功能模块中任意两个功能模块之间的交互载体,所述监控设备包括多个软件工程,单个软件工程包括至少一个功能模块,所述任意两个功能模块分属不同的软件工程,所述交互载体是指所述任意两个功能模块之间数据交互的介质;以及,根据所述交互载体和所述多个功能模块之间的公共交互数据生成公共交互数据文件,所述公共交互数据文件包括第一接口,所述第一接口用于指示所述多个功能模块之间的数据交互;以及,将所述公共交互数据文件添加到对应的功能模块中;以及,调用所述第一接口使得不同功能模块之间的数据进行交互。
第三方面,本申请提供了一种监控设备,包括存储器、处理器以及存储在所述存储器上的计算机程序,所述处理器执行所述计算机程序以实现如第一方面中任一项所述方法的步骤。
第四方面,本申请提供了一种计算机介质,所述计算机可读存储介质存储有计算机程序或指令,所述计算机程序或指令被处理器执行时实现如第一方面中任一项所述方法的步骤。
可以看出,在本申请实施例中,首先确定监控设备的多个功能模块中任意两个功能模块之间的交互载体,监控设备包括至少一个软件工程,单个软件工程包括至少一个功能模块,任意两个功能模块分属不同的软件工程,交互载体是指任意两个功能模块之间数据交互的介质;其次,根据交互载体和多个功能模块之间的公共交互数据生成公共交互数据文件,公共交互数据文件包括第一接口,第一接口用于指示多个功能模块之间的数据交互;再次,将公共交互数据文件添加到多个功能模块中;最后,在当前进行的程序进程内调用第一接口使得不同功能模块之间的数据进行交互,因此,相较于现有的通过特定的通信协议进行数据交互的方式,本申请能够通过调用不同功能模块之间的公共交互数据文件中的第一接口实现嵌入式软件工程项目不同功能模块的开发解耦,以及多线程、多进程间的数据交互的灵活管理,节省交互协议开发工作时间。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的基于全局变量的数据交互框架图;
图2为本申请实施例提供的基于接口函数的数据交互框架图;
图3为本申请实施例提供的一种数据交互方法的流程示意图;
图4为本申请实施例提供的公共交互数据文件包含关系示意图;
图5为本申请实施例提供的基于不同交互载体的公共交互数据文件包含示例图;
图6为本申请实施例提供的主从式交互关系的网络通信交互框架图;
图7为本申请实施例提供的基于主从式交互关系的问答交互框架示意图;
图8为本申请实施例提供的基于同级式交互关系的框架图;
图9为本申请实施例提供的基于协议特性的通用数据交互基本框架;
图10为本申请实施例提供的运行事件管理内存式交互处理流程图;
图11为本申请实施例提供的运行事件管理通讯式交互处理流程图;
图12为本申请实施例提供的带参数的运行时间组合处理流程图;
图13为本申请实施例提供的嵌入式监控设备软件工程搭建具体实施流程图;
图14为本申请实施例提供的一种数据交互装置的功能单元组成框图;
图15为本申请实施例提供的一种监控设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例中的“和/或”,描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示如下三种情况:单独存在A;同时存在A和B;单独存在B。其中,A、B可以是单数或者复数。
本申请实施例中,符号“/”可以表示前后关联对象是一种“或”的关系。另外,符号“/”也可以表示除号,即执行除法运算。例如,A/B,可以表示A除以B。
本申请实施例中的“至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合,是指一个或多个,多个指的是两个或两个以上。例如,a、b或c中的至少一项(个),可以表示如下七种情况:a,b,c,a和b,a和c,b和c,a、b和c。其中,a、b、c中的每一个可以是元素,也可以是包含一个或多个元素的集合。
本申请实施例中的“等于”可以与大于连用,适用于大于时所采用的技术方案,也可以与小于连用,适用于与小于时所采用的技术方案。当等于与大于连用时,不与小于连用;当等于与小于连用时,不与大于连用。
在软件开发过程中,除了单一功能的单函数开发,任何嵌入式设备软件都是由许多个功能模块组合,每一个功能块只分管设备整体功能的一部分;整个设备的正常工作运行,是依赖这些功能模块相互协作、共同运作实现的;每个功能块之间的相互协助,依靠数据交互完成。因此,在嵌入式软件的开发中,必然会涉及到数据交互。
在嵌入式软件中,最常见的数据交互方式是基于全局变量的数据交互,即在软件工程的源文件中,定义一个全局变量,通常是一个结构体变量,此结构体包含所有需要交互的数据,然后在需要进行数据交互的功能块对应的源文件内,声明此全局变量,即可使用此变量进行数据交互。
如图1所示,图1为本申请实施例提供的基于全局变量的数据交互框架图,首先进行总交互数据结构定义(struct G_GLOBAL_COMM_STRUCT g_Global),该总交互数据结构内包含所有需要交互的数据,与该结构体需要进行数据交互的功能模块包括功能模块A、功能模块B功能模块N,在各个功能模块中声明全局变量总公共数据,即功能模块A声明总公共数据(extern struct G_GLOBAL_COMM_STRUCT g_Global)、功能模块B声明总公共数据(extern struct G_GLOBAL_COMM_STRUCT g_Global)……功能模块N声明总公共数据(extern struct G_GLOBAL_COMM_STRUCT g_Global),进行上述操作后,各个功能模块即可调用总交互数据结构中的交互数据。这种交互方式开发简单,对于简单功能的设备可以快速响应需求。但是这种方式的缺点也是显而易见的,对于大型的软件工程,会导致软件变量随处调用,维护性和扩展性非常差,会导致一些意想不到的问题。
基于上述出现的问题,一些规范的软件工程对数据交互进行了约束。规范要求,不同功能单元之间不允许有全局变量交杂调用,功能块之间的数据交互通过统一的接口函数进行传递。如图2所示,图2为本申请实施例提供的基于接口函数的数据交互框架图,一般的,接口函数会包含输入函数接口(void app_func_input_interface(voidin))、输出函数接口(void app_func_output_interface(void/>out))、输入输出函数接口(void app_func_comm_interface(void/>in.void/>out))三个接口,输入函数接口用于将外部的数据输入功能模块内部,输出函数接口用于将功能模块内部状态数据或运算结果输出给外部功能模块,输入输出函数接口既可以将外部的数据输入功能模块内部、也可以将功能模块内部状态数据或运算结果输出给外部功能模块。这种交互方式需要再软件开发初期就规划好不同功能块之间的数据接口,开发较为繁琐。但是,这种使用软件框架的源码,结构清晰,易于维护,可以解耦负责不同功能开发人员的工作;在程序出现问题时,只需要针对各函数接口是数据进行排查,就可以锁定问题源。但是,在嵌入式监控设备的应用过程中,往往用于数据采集、分析控制,包含大量的功能单元,使得这个过程涉及大量的数据交互。为了实现功能块之间的更好解耦,软件工程通常会采用多线程或多进程的方式进行功能模块管理。对于多线程的数据框架,使用接口函数的交互方式完全可以实现可移植、易维护、方便拓展的目的;但是对于多进程的交互,无法使用接口函数的方法来实现。
多进程交互的方式包括同一硬件设备下的数据交互和多个硬件设备的数据交互。在嵌入式监控设备应用过程中,往往要采集大量数据,需要使用到很多的硬件接口资源。所以,经常会出现一个设备内部包含了多个核心控制器,各控制器之间通过特定的通信协议进行数据交互,从而实现整体设备功能。在多进程功能块管理的模式下,各功能块之间需要制定通信协议,定制协议往往不具备复用性,为项目开发带来一定的工作负担。
为了解决上述技术问题,提出本申请提供的一种数据交互方法。
请参阅图3,图3为本申请实施例提供的一种数据交互方法的流程示意图,如图3所示,该方法应用于监控设备,该方法包括:
步骤301,确定监控设备的多个功能模块中任意两个功能模块之间的交互载体。
其中,所述监控设备包括至少一个软件工程,单个软件工程包括至少一个功能模块,所述任意两个功能模块分属不同的软件工程,所述交互载体是指所述任意两个功能模块之间数据交互的介质。
其中,在嵌入式设备领域,用于数据交互常见的通信载体有变量内存、共享内存、网络通信、485串口通信、CAN通信、232串口通信等。变量内存交互载体,仅允许同一进程内部的数据交互,无法实现跨进程、跨硬件载体的数据交互。共享内存交互载体,既可以实现同一进程内的数据交互,也可以实现同一硬件载体下不同进程间的数据交互,但是不支持跨硬件载体的数据交互;基于共享内存的跨进程数据交互,是在同一硬件载体下,多进程间交互的首选方式。网络通信一般用于跨硬件的多进程间通信,支持远距离数据传输;理论上此载体也可以实现同一硬件下的多进程、同一进程内的数据交互,但是会导致硬件接口资源浪费;当软件运行在具有文件系统的环境时(Unix/Linux等),还可以通过创建socket套接字的方式,实现同一硬件环境的进程间通信,这样则不需要网口资源。基于485串口、CAN等现场总线载体的数据交互,一般用于跨硬件的多进程间通信,为了通信质量,一般仅支持中近距离的数据传输,理论上此载体也可以实现同一硬件下的多进程、同一进程内的数据交互,但是会导致硬件接口资源浪费。232串口载体的数据交互,支持跨硬件的短距离数据传输,但由于其串口特性,仅允许两个进程间的数据交互;理论上,此串口通信方式也可以实现同一硬件下的多进程、同一进程内的数据交互,但是会导致硬件接口资源浪费。
步骤302,根据所述交互载体和所述多个功能模块之间的公共交互数据生成公共交互数据文件,所述公共交互数据文件包括第一接口。
其中,所述第一接口用于指示所述多个功能模块之间的数据交互。
其中,公共交互数据文件是一个用以声明、定义或实体化所有功能模块交互数据的管理单元,该管理单元包含三个文件:公共交互数据声明头文件、交互数据内存实体化源文件、公共交互数据接口外部声明头文件。公共交互数据声明头文件:用以声明各功能模块交互数据的数据结构体、枚举(宏)定义、交互数据版本、交互方式等信息的头文件,在每个功能模块的入口头文件中包含此声明头文件,用以对交互数据进行映射。交互数据内存实体化源文件:实体化交互数据相关公共函数的定义源文件,即负责向软件系统申请满足所有交互数据存放内存空间的接口,并获取申请到内存块的首地址。公共交互数据接口外部声明头文件:实体化公共函数接口、公共数据首地址指针的外部声明接口,在每个功能模块的入口头文件中包含此声明头文件,用以获取交互数据内存区域。
其中,第一接口为公共交互数据接口外部声明头文件中的实体化公共函数接口。
其中,基于本软件框架,使用同一公共交互数据结构的所有进程的软件工程(单个或多个),都需要包含同一份的上述三个公共文件,用以确保每个软件工程中对公共数据内存区域的数据解析完全正确,公共交互数据文件的包含关系如图4所示,图4为本申请实施例提供的公共交互数据文件包含关系示意图,如图4所示,一共有三个软件工程,软件工程1-3,软件工程1包括功能模A、软件工程2包括功能模块B、软件工程3包括功能模块C和功能模块D,以上各个功能模块均使用同一套公共交互数据结构,则各个功能模块的文件中均包含公共交互数据1声明头文件(app_global_comm1_struct_declare.h)、公共交互数据1内存实体化源文件(app_global_comm1_data-define.c)、公共交互数据1接口外部声明头文件(app_global_comm1_data_interface.h),其中在上述各个功能模块的入口头文件中均包含公共交互数据1声明头文件(app_global_comm1_struct_declare.h)和公共交互数据1接口外部声明头文件(app_global_comm1_data_interface.h),在各个功能模块的源文件中均包含公共交互数据1内存实体化源文件(app_global_comm1_data-define.c)。
在一个可能的示例中,所述公共交互数据文件还包括交互数据版本,所述根据所述交互载体和所述多个功能模块之间的公共交互数据生成公共交互数据文件之后,所述方法还包括:对所述多个功能模块中的包含的交互数据版本进行校验。
其中,交互数据版本包含在公共交互数据声明头文件中。
其中,通过公共交互数据接口外部声明头文件中的实体化公共函数接口对各软件工程中包含的交互数据声明头文件版本进行对比校验。
可见,在本示例中,通过实体化公共函数接口对各软件工程中包含的交互数据声明头文件版本进行对比校验,防止出现版本不一致的情况时,会阻塞业务单元运行,以避免出现数据溢出、异常等情况。
步骤303,将所述公共交互数据文件添加到所述多个功能模块中。
步骤304,在当前进行的程序进程内调用所述第一接口使得不同功能模块之间的数据进行交互。
在一个可能的示例中,所述根据所述交互载体和所述多个功能模块之间的公共交互数据生成公共交互数据文件,包括:针对所述交互载体相同的功能模块的公共交互数据生成同一份公共交互数据文件;
所述将所述公共交互数据文件添加到所述多个功能模块中包括:将所述同一份公共交互数据文件添加到所述交互载体相同的功能模块中。
其中,使用同一交互数据结构的软件功能需要基于同一交互载体。当一个整体项目工程中,交互数据需要使用到不同的载体时,就会出现多套上述公共交互数据文件,其项目公共交互数据文件包含关系,如图5所示,图5为本申请实施例提供的基于不同交互载体的公共交互数据文件包含示例图,图5中包含软件工程1-5,其中,软件工程1、软件工程2和软件工程3之间的交互载体均为共享内存,则三者均包含相同的公共交互数据文件1套;软件工程3和软件工程4之间的交互载体为232串口通信,则二者均包含相同的公共交互数据文件2套;软件工程2和软件工程5之间的交互载体为网络通信,则二者均包含相同的公共交互数据文件3套。
需要说明的是,在一般的应用过程中,为了简化开发步骤,往往会基于同一数据交互载体交互,如此,软件项目管理人员只需要维护一份公共交互数据文件即可。
可见,在本示例中,不同交互载体出现多套不同的公共交互数据文件可以实现不同系统之间的交互和对接,同时如果使用相同的交互载体,则可以简化开发步骤、降低软件项目管理人员的维护成本。
在一个可能的示例中,所述确定监控设备的多个功能模块中任意两个功能模块之间的交互载体之后,所述方法还包括:根据所述交互载体确定所述多个功能模块之间的交互关系。
其中,基于常见的几种交互载体,所述交互关系包括主从式交互关系和同级式交互关系,其中,所述主从式交互关系是指具有相同交互载体的功能模块中存在一个主机和至少一个从机、由主机总体管控数据的交互,包括时序控制、数据透传;所述同级式交互关系是指具有相同交互载体的功能模块之间通过所述交互载体的交互总线进行数据的交互。
其中,在嵌入式设备交互领域,主从式交互关系多应用于网络通信、485总线通信等明显具有主从应答关系或链接关系的通信方式。其中网络通信不需要遵循一问一答的交互方式,485串口总线则基于一问一答的交互方式。
例如网络通信中,请参阅图6,图6为本申请实施例提供的主从式交互关系的网络通信交互框架图,如图6中i,在主从式交互关系中,需要其中一个功能模块或程序进程作为主机,其它功能模块或程序进程作为从机,由主机创建服务器,从机作为客户端与服务器创建链接,服务器判断客户端链接是否连通,若是,则服务器、客户端相互之间均可以进行初始化数据发送、定时运行数据发送以及相互之间的单次事件触发和事件应答;若否,则继续等待客户端创建链接并判断客户端链接是否连通。主从间的数据传输不需要遵循一问一答的交互方式,其中,在时序控制上,如图6中ii,ii为服务器和客户端之间的时序控制框架图,服务器可以定时向客户端1到N发送只读数据,同时也可以触发运行事件;在数据透传上,如图6中iii,iii为服务器和客户端之间的数据透传框架图,对于客户端1到N中任一个客户端如客户端M,可以向服务器定时发送只读数据和触发运行事件,服务器在接收到客户端M的指令后,将只读数据和运行事件透传给剩余的客户端(客户端1到N中除客户端M以外的客户端)。
例如485串口总线中,请参阅图7,图7为本申请实施例提供的基于主从式交互关系的问答交互框架示意图,如图7中i,需要其中一个功能模块或程序进程作为主机,其它功能模块或程序进程作为从机(从机1到N),由主机管理所有功能模块或程序的数据发送时序。主机定时向交互总线(图中未示出)发送自身的交互数据,通过交互总线将该交互数据分别发送至从机1到N。主机还可以轮询查询从机的交互数据,如图7中ii,当从机1到N中任意一个从机M接收到主机的查询指令后,会向交互总线(图中未示出)应答其交互数据,通过交互总线将该交互数据发送至主机和剩余的从机(从机1到N中除从机M外的从机)。
其中,在嵌入式设备交互领域,同级式交互关系多应用于共享内存、CAN现场总线通信、232串口通信等可满足面向事件的通信方式。
例如,通过共享内存实现跨进程间数据交互,各功能模块或程序进程直接向对应的内存区域中读取或写入数据值即可,模拟通讯过程中的接收和发送过程。通过CAN总线、232串口等具备面向事件的通信的协议或全双工通信接口进行数据交互,各功能模块或程序进程只需要定时向数据总线发送自身的只读数据,以及触发发送自身的运行事件和对事件的应答结果即可,请参阅图8,图8为本申请实施例提供的基于同级式交互关系的框架图,如图8所示,模块1和模块2可以各自向交互总线发送自身交互数据、接收来自交互总线的其他模块的交互数据、以及触发自身的运行事件和对事件的应答结果(事件触发/应答)。在实际应用过程中,可以根据系统对数据实时性的要求,调整数据发送的周期和总线波特率。
可见,在本示例中,通过不同的交互载体确定各个功能模块之间的交互关系,可以明确各个功能模块之间的通信交互关系分为主从式交互关系和同级式交互关系,将交互关系分为主从式和同级式有助于简化系统结构、提高系统的可扩展性、简化数据传输与处理,并提高系统的稳定性和安全性。
在一个可能的示例中,所述在当前进行的程序进程内调用所述第一接口使得不同功能模块之间的数据进行交互之后,所述方法还包括:根据所述公共交互数据的数据类型确定调用方式。
其中,请参阅图9,图9为本申请实施例提供的基于协议特性的通用数据交互基本框架,如图9中i所示,所述公共交互数据包括只读数据和运行事件,所述只读数据是指由当前功能模块产生、其他功能模块只允许引用、禁止赋值的数据,所述运行事件是指由所述当前功能模块触发发生、目标功能模块接收并应答的事件,包括触发信号和应答结果。基于上述划分,在交互数据框架底层公共接口中,定义了只读数据管理接口和运行事件管理接口,如图9中ii,只读数据管理接口用以处理功能模块读写数据的广播发送和数据接收,运行事件管理接口用以处理功能模块触发事件发送、超时管理、应答结果管理。
可见,在本示例中,将交互数据结构仅分为只读数据和运行事件,精简了功能模块交互数据结构,对于通信协议中常见的读写类数据,在本框架中进行了剔除,因为此类型数据会导致数据源不唯一、管理困难,因此类似的读写数据在本软件框架中强制转换为只读数据或只读数据加运行数据的组合来实现。
在一个可能的示例中,所述公共交互数据为所述只读数据,所述调用方式包括:
通过所述交互载体的交互总线进行数据交互。
其中,只读数据发送时,只读数据属于当前功能模块或程序进程,即当前模块向外输出的数据,当前功能模块只需要定时将这些数据进行组包,并向交互载体的交互总线发送即可;若只读数据属于其它功能模块或程序进程,当前功能模块只需要向交互载体总线监听获取数据包,并解析映射到本地对应的变量内存中。由此可见,只读类数据的数据源是唯一的,且不涉及复杂的交互逻辑,简化数据管理逻辑,确保数据交互的可靠性。
可见,在本示例中,只读类数据的数据源是唯一的,且不涉及复杂的交互逻辑,简化数据管理逻辑,确保数据交互的可靠性。
在一个可能的示例中,所述公共交互数据为所述运行事件,所述调用方式包括:事件源功能模块和目标功能模块通过读取和写入同一内存区的特定变量实现事件的交互,其中所述事件源功能模块为调用所述第一接口的功能模块,所述目标功能模块为对所述事件源功能模块触发的事件进行应答的功能模块,所述特定变量包括触发事件和反馈标识;
所述事件源功能模块和目标功能模块通过读取和写入同一系统内存区的特定变量实现事件的交互具体包括:所述事件源功能模块在所述内存区写入所述触发事件;所述目标功能模块从所述内存区读取所述触发事件,并进行事件处理;所述目标功能模块在所述内存区写入所述反馈标识,所述反馈标识用于表征所述触发事件已处理完成;所述事件源功能模块从所述内存区读取所述反馈标识,并进行状态标识处理。
其中,在运行事件的交互处理上,划分为内存式交互处理和通讯式交互处理。本示例提供的交互处理为内存式交互处理,内存式交互处理时交互载体直接使用的系统内存进行事件数据交互,对于事件交互的双方,用以表达事件的变量是同一个内存区,其变量内存值直接反应的就是触发/应答的标识或结果,交互流程示意如图10所示,图10为本申请实施例提供的运行事件管理内存式交互处理流程图,图10中,将两个需要进行数据交互的功能模块分为事件源功能模块和目标功能模块,事件源功能模块触发事件后,在系统内存区触发事件变量Event中进行置位,目标功能模块从内存区获取事件,进行事件处理,同时将内存区触发事件变量复位,即恢复初始状态,处理完成后,开始在内存区反馈标识变量Ack中置位反馈标识,该反馈标识用于表征触发事件已处理完成,事件源功能模块从内存区获取反馈标识并复位,并进行反馈标识处理比如解析、验证等,若属于触发事件的反馈标识,则事件结束。
在一个可能的示例中,所述调用方式还包括:所述事件源功能模块和所述目标功能模块通过在各自的内存区读取和写入所述特定变量并结合所述交互载体的交互总线实现事件的交互;
所述事件源功能模块和所述目标功能模块通过在各自的内存区读取和写入所述特定变量并结合所述交互载体的交互总线实现事件的交互具体包括:所述事件源功能模块在事件源内存区写入所述触发事件;所述触发事件通过所述交互总线写入目标内存区;所述目标功能模块从所述目标内存区读取所述触发事件,并进行事件处理;所述目标功能模块在所述目标内存区写入所述反馈标识,所述反馈标识用于表征所述触发事件已处理完成;所述反馈标识通过所述交互总线写入所述事件源内存区;所述事件源功能模块从所述事件源内存区读取所述反馈标识,并进行反馈标识处理。
其中,本示例提供的交互处理为通讯式交互处理,通讯式交互处理时交互载体是使用的通讯接口进行数据交互,于事件交互的双方,用以表达事件的变量是不同的内存区,其变量内存值需要结合通讯链路进行管理,交互流程示意如图11所示,图11为本申请实施例提供的运行事件管理通讯式交互处理流程图,事件源功能模块触发事件后,在事件源内存区触发事件变量Event中进行置位,交互总线Data Bus将事件帧在目标内存区置位,目标功能模块从目标内存区获取触发事件,进行事件处理,同时将目标内存区触发事件变量复位,即恢复初始状态,并通过事件确认帧将事件源内存区触发事件变量复位,目标功能模块事件处理完成后,开始在目标内存区反馈标识变量Ack中置位反馈标识,该反馈标识用于表征触发事件已处理完成,并通过交互总线在事件源内存区反馈标识变量Ack中进行应答帧设置,事件源功能模块从事件源内存区获取反馈标识以后,将事件源内存区反馈标识变量Ack中进行复位,并通过交互总线进行应答确认帧复位,事件源功能模块进行反馈标识处理比如解析、验证等,若属于触发事件的反馈标识,则事件结束。
在一个可能的示例中,所述运行事件带参数,所述事件源功能模块和所述目标功能模块通过在各自的内存区读取和写入所述特定变量并结合所述交互载体的交互总线实现事件的交互之前,所述方法还包括:将带参数的运行事件分为只读数据交互和运行事件交互两个部分;所述只读数据交互的具体过程包括如下步骤:所述事件源功能模块将只读数据写入所述事件源内存区,并通过所述交互总线将所述只读数据写入所述目标内存区;所述目标功能模块从所述目标内存区读取所述只读数据。
其中,基于本软件数据交互框架,交互数据类型仅包括只读数据和运行事件,取消了读写数据类型。对于一些带参数传递的事件,例如变量值写入FLASH事件,需要传递具体的数据值到负责存储的功能单元,可以将此类数据定义为只读数据加运行事件的组合。底层数据传输管理碰到此类运行事件触发时,需要先触发一次当前功能模块的只读数据发送,再走标准事件管理流程,如图12所示,图12为本申请实施例提供的带参数的运行时间组合处理流程图,事件源功能模块触发事件后,在事件源内存区触发事件变量Event中进行置位,其中该触发事件包括参数,对于此部分参数,采取只读数据方式,即参数在事件源内存区参数Data变量进行置位以后,通过交互总线向目标内存区参数Data变量发送参数(只读数据),对于其中的运行时间,参照图11所示的流程继续进行后续步骤。
与图3所示的实施例一致的,请参阅图13,图13为本申请实施例提供的嵌入式监控设备软件工程搭建具体实施流程图,如图13所示,该方法包括以下步骤:
步骤1301,功能模块划分。
其中,对嵌入式监控设备的完整功能,进行功能划分,形成不同的功能模块。
步骤1302,定义交互数据结构。
其中,基于本软件框架的约定,设计功能模块间的公共交互数据,并定义交互数据结构。
步骤1303,选定各个功能模块间的交互载体。
其中,设计确定各功能模块间的交互载体。
步骤1304,形成公共交互数据文件。
其中,根据交互载体、公共交互数据、交互关系(主从关系、同级关系),形成公共交互数据文件(公共交互数据声明头文件、交互数据内存实体化源文件、公共交互数据接口外部声明头文件)。
步骤1305,将公共交互数据文件包含到软件工程中。
其中,整个设备系统的软件进程将各自涉及到的交互数据对应的公共交互数据文件包含到软件工程中。
步骤1306,程序启动口调用实体化公共函数接口。
其中,各软件工程在程序的总入口处(一般是main函数的起始位置),或其他合适位置,调用数据实体化公共函数接口,启动底层数据交互单元。
其中,在一个软件功能内部的各个功能模块的入口头文件中,包含其需要使用到的交互数据对应的公共交互数据接口外部声明头文件,即可进行与其它功能模块的数据交互。
需要说明的是,本实施例的具体实现过程可参见上述方法实施例所述的具体实现过程,在此不再叙述。
可以看出,在本申请实施例中,首先确定监控设备的多个功能模块中任意两个功能模块之间的交互载体,监控设备包括至少一个软件工程,单个软件工程包括至少一个功能模块,任意两个功能模块分属不同的软件工程,交互载体是指任意两个功能模块之间数据交互的介质;其次,根据交互载体和多个功能模块之间的公共交互数据生成公共交互数据文件,公共交互数据文件包括第一接口,第一接口用于指示多个功能模块之间的数据交互;再次,将公共交互数据文件添加到多个功能模块中;最后,在当前进行的程序进程内调用第一接口使得不同功能模块之间的数据进行交互,因此,相较于现有的通过特定的通信协议进行数据交互的方式,本申请能够通过调用不同功能模块之间的公共交互数据文件中的第一接口实现嵌入式软件工程项目不同功能模块的开发解耦,以及多线程、多进程间的数据交互的灵活管理,节省交互协议开发工作时间。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,服务器为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对服务器进行功能单元的划分。例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,只是一种逻辑功能划分,而实际实现时可以有另外的划分方式。
在采用集成的单元的情况下,请参阅图14,图14为本申请实施例提供的一种数据交互装置的功能单元组成框图。数据交互装置14包括处理单元。
其中,处理单元可以是一种用于处理数据等的模块单元。
可选的,数据交互装置14还包括接收单元,接受单元可以是一种用于获取数据等的模块单元。
可选的,数据交互装置14还包括发送单元,发送单元可以是一种用于发送数据的模块单元。
可选的,数据交互装置14还包括存储单元,用于存储数据交互装置14所执行的计算机程序代码或指令。例如,存储单元可以是存储器。
需要说明的是,处理单元可以是处理器或控制器,例如可以是中央处理器(central processing unit,CPU)、通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框、模块和电路。处理单元也可以是实现计算功能的组合,例如包含一个或多个微处理器组合、DSP和微处理器的组合等。
可选的,数据交互装置14可以是芯片或芯片模组。
具体实现时,数据交互装置14用于执行如上述方法实施例中由芯片/芯片模组/服务器等执行的步骤。
下面进行详细说明:
处理单元,用于确定监控设备的多个功能模块中任意两个功能模块之间的交互载体,所述监控设备包括至少一个软件工程,单个软件工程包括至少一个功能模块,所述任意两个功能模块分属不同的软件工程,所述交互载体是指所述任意两个功能模块之间数据交互的介质;以及,根据所述交互载体和所述多个功能模块之间的公共交互数据生成公共交互数据文件,所述公共交互数据文件包括第一接口,所述第一接口用于指示所述多个功能模块之间的数据交互;以及,将所述公共交互数据文件添加到所述多个功能模块中;以及,在当前进行的程序进程内调用所述第一接口使得不同功能模块之间的数据进行交互。
可以看出,在本申请实施例中,首先确定监控设备的多个功能模块中任意两个功能模块之间的交互载体,监控设备包括至少一个软件工程,单个软件工程包括至少一个功能模块,任意两个功能模块分属不同的软件工程,交互载体是指任意两个功能模块之间数据交互的介质;其次,根据交互载体和多个功能模块之间的公共交互数据生成公共交互数据文件,公共交互数据文件包括第一接口,第一接口用于指示多个功能模块之间的数据交互;再次,将公共交互数据文件添加到多个功能模块中;最后,在当前进行的程序进程内调用第一接口使得不同功能模块之间的数据进行交互,因此,相较于现有的通过特定的通信协议进行数据交互的方式,本申请能够通过调用不同功能模块之间的公共交互数据文件中的第一接口实现嵌入式软件工程项目不同功能模块的开发解耦,以及多线程、多进程间的数据交互的灵活管理,节省交互协议开发工作时间。
在一个可能的示例中,在所述根据所述交互载体和所述多个功能模块之间的公共交互数据生成公共交互数据文件方面,所示处理单元还用于:针对所述交互载体相同的功能模块的公共交互数据生成同一份公共交互数据文件;
在所述将所述公共交互数据文件添加到所述多个功能模块中方面,所示处理单元还用于:将所述同一份公共交互数据文件添加到所述交互载体相同的功能模块中。
在一个可能的示例中,所述处理单元确定监控设备的多个功能模块中任意两个功能模块之间的交互载体之后,所述处理单元还用于:根据所述交互载体确定所述多个功能模块之间的交互关系,所述交互关系包括主从式交互关系和同级式交互关系,其中,所述主从式交互关系是指具有相同交互载体的功能模块中存在一个主机和至少一个从机、由主机总体管控数据的交互;所述同级式交互关系是指具有相同交互载体的功能模块之间通过所述交互载体的交互总线进行数据的交互。
在一个可能的示例中,所述处理单元在当前进行的程序进程内调用所述第一接口使得不同功能模块之间的数据进行交互之后,所述处理单元还用于:根据所述公共交互数据的数据类型确定调用方式,所述公共交互数据包括只读数据和运行事件,所述只读数据是指由当前功能模块产生、其他功能模块只允许引用、禁止赋值的数据,所述运行事件是指由所述当前功能模块触发发生、目标功能模块接收并应答的事件。
在一个可能的示例中,所述公共交互数据为所述只读数据,所述调用方式包括:通过所述交互载体的交互总线进行数据交互。
在一个可能的示例中,所述公共交互数据为所述运行事件,所述调用方式包括:事件源功能模块和目标功能模块通过读取和写入同一内存区的特定变量实现事件的交互,其中所述事件源功能模块为调用所述第一接口的功能模块,所述目标功能模块为对所述事件源功能模块触发的事件进行应答的功能模块,所述特定变量包括触发事件和反馈标识;
在所述事件源功能模块和目标功能模块通过读取和写入同一系统内存区的特定变量实现事件的交互方面,所述处理单元还用于:所述事件源功能模块在所述内存区写入所述触发事件;所述目标功能模块从所述内存区读取所述触发事件,并进行事件处理;所述目标功能模块在所述内存区写入所述反馈标识,所述反馈标识用于表征所述触发事件已处理完成;所述事件源功能模块从所述内存区读取所述反馈标识,并进行状态标识处理。
在一个可能的示例中,所述调用方式还包括:所述事件源功能模块和所述目标功能模块通过在各自的内存区读取和写入所述特定变量并结合所述交互载体的交互总线实现事件的交互;
在所述事件源功能模块和所述目标功能模块通过在各自的内存区读取和写入所述特定变量并结合所述交互载体的交互总线实现事件的交互方面,所述处理单元还用于:所述事件源功能模块在事件源内存区写入所述触发事件;所述触发事件通过所述交互总线写入目标内存区;所述目标功能模块从所述目标内存区读取所述触发事件,并进行事件处理;所述目标功能模块在所述目标内存区写入所述反馈标识,所述反馈标识用于表征所述触发事件已处理完成;所述反馈标识通过所述交互总线写入所述事件源内存区;所述事件源功能模块从所述事件源内存区读取所述反馈标识,并进行状态标识处理。
请参阅图15,图15为本申请实施例提供的一种监控设备的结构示意图。其中,监控设备1500包括处理器1510、存储器1520以及用于连接处理器1510、存储器1520的通信总线。
可选的,存储器1520包括但不限于是RAM、ROM、EPROM或CD-ROM,该存储器1520用于存储相关指令及数据。
可选的,监控设备1500还包括通信接口,其用于接收和发送数据。
可选的,处理器1510可以是一个或多个中央处理器(CPU),在处理器1510是一个中央处理器(CPU)的情况下,该中央处理器(CPU)可以是单核中央处理器(CPU),也可以是多核中央处理器(CPU)。
可选的,处理器1510可以为基带芯片、芯片、中央处理器(CPU)、通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。
监控设备1500中的处理器1510用于执行存储器1520中存储的计算机程序或指令1521。
需要说明的是,各个操作的具体实现可以采用上述所示的方法实施例的相应描述,监控设备1500可以用于执行本申请上述方法实施例的终端设备侧的方法,在此不再具体赘述。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序/指令,所述计算机程序/指令被处理器执行时实现任一项可能的实施例所述方法的步骤。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、磁碟、光盘、易失性存储器或非易失性存储器。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)等各种可以存储程序代码的介质。
虽然本申请披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,可轻易想到变化或替换,均可作各种更动与修改,包含上述不同功能、实施步骤的组合,包含软件和硬件的实施方式,均在本申请的保护范围。
Claims (6)
1.一种数据交互方法,其特征在于,所述方法包括:
确定监控设备的多个功能模块中任意两个功能模块之间的交互载体,所述监控设备包括至少一个软件工程,单个软件工程包括至少一个功能模块,所述任意两个功能模块分属不同的软件工程,所述交互载体是指所述任意两个功能模块之间数据交互的介质;
根据所述交互载体确定所述多个功能模块之间的交互关系,所述交互关系包括主从式交互关系和同级式交互关系,其中,所述主从式交互关系是指具有相同交互载体的功能模块中存在一个主机和至少一个从机、由主机总体管控数据的交互;所述同级式交互关系是指具有相同交互载体的功能模块之间通过所述交互载体的交互总线进行数据的交互;
针对使用相同交互载体的功能模块的公共交互数据生成同一份公共交互数据文件,所述公共交互数据文件包括第一接口,所述第一接口用于指示所述多个功能模块之间的数据交互,所述交互载体包括至少一种;
将所述同一份公共交互数据文件添加到所述交互载体相同的功能模块中;
根据所述公共交互数据的数据类型确定调用方式,所述公共交互数据包括只读数据和运行事件,所述只读数据是指由当前功能模块产生、其他功能模块只允许引用、禁止赋值的数据,所述运行事件是指由所述当前功能模块触发发生、目标功能模块接收并应答的事件;
在当前进行的程序进程内按照所述调用方式调用所述第一接口使得不同功能模块之间的数据进行交互;
所述公共交互数据为所述运行事件,所述调用方式包括:
事件源功能模块和目标功能模块通过读取和写入同一内存区的特定变量实现事件的交互,其中所述事件源功能模块为调用所述第一接口的功能模块,所述目标功能模块为对所述事件源功能模块触发的事件进行应答的功能模块,所述特定变量包括触发事件和反馈标识;
所述事件源功能模块和目标功能模块通过读取和写入同一系统内存区的特定变量实现事件的交互具体包括:所述事件源功能模块在所述内存区写入所述触发事件;所述目标功能模块从所述内存区读取所述触发事件,并进行事件处理;所述目标功能模块在所述内存区写入所述反馈标识,所述反馈标识用于表征所述触发事件已处理完成;所述事件源功能模块从所述内存区读取所述反馈标识,并进行状态标识处理。
2.根据权利要求1所述的方法,其特征在于,所述公共交互数据为所述只读数据,所述调用方式包括:
通过所述交互总线进行数据交互。
3.根据权利要求1所述的方法,其特征在于,所述调用方式还包括:
所述事件源功能模块和所述目标功能模块通过在各自的内存区读取和写入所述特定变量并结合所述交互总线实现事件的交互;
所述事件源功能模块和所述目标功能模块通过在各自的内存区读取和写入所述特定变量并结合所述交互总线实现事件的交互具体包括:
所述事件源功能模块在事件源内存区写入所述触发事件;
所述触发事件通过所述交互总线写入目标内存区;
所述目标功能模块从所述目标内存区读取所述触发事件,并进行事件处理;
所述目标功能模块在所述目标内存区写入所述反馈标识,所述反馈标识用于表征所述触发事件已处理完成;
所述反馈标识通过所述交互总线写入所述事件源内存区;
所述事件源功能模块从所述事件源内存区读取所述反馈标识,并进行状态标识处理。
4.一种数据交互装置,其特征在于,所述装置包括:
处理单元,用于确定监控设备的多个功能模块中任意两个功能模块之间的交互载体,所述监控设备包括至少一个软件工程,单个软件工程包括至少一个功能模块,所述任意两个功能模块分属不同的软件工程,所述交互载体是指所述任意两个功能模块之间数据交互的介质;以及,根据所述交互载体确定所述多个功能模块之间的交互关系,所述交互关系包括主从式交互关系和同级式交互关系,其中,所述主从式交互关系是指具有相同交互载体的功能模块中存在一个主机和至少一个从机、由主机总体管控数据的交互;所述同级式交互关系是指具有相同交互载体的功能模块之间通过所述交互载体的交互总线进行数据的交互;以及,针对使用相同交互载体的功能模块的公共交互数据生成同一份公共交互数据文件,所述公共交互数据文件包括第一接口,所述第一接口用于指示所述多个功能模块之间的数据交互,所述交互载体包括至少一种;以及,将所述同一份公共交互数据文件添加到所述交互载体相同的功能模块中;以及,根据所述公共交互数据的数据类型确定调用方式,所述公共交互数据包括只读数据和运行事件,所述只读数据是指由当前功能模块产生、其他功能模块只允许引用、禁止赋值的数据,所述运行事件是指由所述当前功能模块触发发生、目标功能模块接收并应答的事件;以及,在当前进行的程序进程内按照所述调用方式调用所述第一接口使得不同功能模块之间的数据进行交互;以及,
所述公共交互数据为所述运行事件,所述调用方式包括:事件源功能模块和目标功能模块通过读取和写入同一内存区的特定变量实现事件的交互,其中所述事件源功能模块为调用所述第一接口的功能模块,所述目标功能模块为对所述事件源功能模块触发的事件进行应答的功能模块,所述特定变量包括触发事件和反馈标识;
在所述事件源功能模块和目标功能模块通过读取和写入同一系统内存区的特定变量实现事件的交互方面,所述处理单元还用于:所述事件源功能模块在所述内存区写入所述触发事件;所述目标功能模块从所述内存区读取所述触发事件,并进行事件处理;所述目标功能模块在所述内存区写入所述反馈标识,所述反馈标识用于表征所述触发事件已处理完成;所述事件源功能模块从所述内存区读取所述反馈标识,并进行状态标识处理。
5.一种监控设备,其特征在于,包括存储器、处理器以及存储在所述存储器上的计算机程序,所述处理器执行所述计算机程序以实现如上的权利要求1至3中任一项所述方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序或指令,所述计算机程序或指令被处理器执行时实现如上的权利要求1至3中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410101959.8A CN117632312B (zh) | 2024-01-25 | 2024-01-25 | 数据交互方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410101959.8A CN117632312B (zh) | 2024-01-25 | 2024-01-25 | 数据交互方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117632312A CN117632312A (zh) | 2024-03-01 |
CN117632312B true CN117632312B (zh) | 2024-05-14 |
Family
ID=90032438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410101959.8A Active CN117632312B (zh) | 2024-01-25 | 2024-01-25 | 数据交互方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117632312B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101510153A (zh) * | 2009-03-20 | 2009-08-19 | 华亚微电子(上海)有限公司 | 数据转换逻辑单元 |
CN103995752A (zh) * | 2014-06-16 | 2014-08-20 | 上海斐讯数据通信技术有限公司 | 模块间通知回调方法及模块交互结构 |
CN112130911A (zh) * | 2020-08-28 | 2020-12-25 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据交互方法、装置、系统及电子设备和存储介质 |
CN114162190A (zh) * | 2021-12-02 | 2022-03-11 | 中国铁道科学研究院集团有限公司通信信号研究所 | 多线程lkj车载数据无线换装数据文件传输技术方法 |
CN114528027A (zh) * | 2022-01-25 | 2022-05-24 | 深圳市优易控软件有限公司 | 一种基于pc平台的智能装备响应时间提升方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2012655A4 (en) * | 2006-04-20 | 2009-11-25 | Iq Life Inc | INTERACTIVE PATIENT MONITORING SYSTEM THAT USES VOICE RECOGNITION |
CN114237413A (zh) * | 2020-09-09 | 2022-03-25 | 华为技术有限公司 | 处理交互事件的方法和装置 |
-
2024
- 2024-01-25 CN CN202410101959.8A patent/CN117632312B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101510153A (zh) * | 2009-03-20 | 2009-08-19 | 华亚微电子(上海)有限公司 | 数据转换逻辑单元 |
CN103995752A (zh) * | 2014-06-16 | 2014-08-20 | 上海斐讯数据通信技术有限公司 | 模块间通知回调方法及模块交互结构 |
CN112130911A (zh) * | 2020-08-28 | 2020-12-25 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据交互方法、装置、系统及电子设备和存储介质 |
CN114162190A (zh) * | 2021-12-02 | 2022-03-11 | 中国铁道科学研究院集团有限公司通信信号研究所 | 多线程lkj车载数据无线换装数据文件传输技术方法 |
CN114528027A (zh) * | 2022-01-25 | 2022-05-24 | 深圳市优易控软件有限公司 | 一种基于pc平台的智能装备响应时间提升方法 |
Non-Patent Citations (1)
Title |
---|
具有多种通信方式的无线传感器网络网关;蔡皓等;传感技术学报;20080115(01);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117632312A (zh) | 2024-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017071460A1 (zh) | 一种容器监控方法和装置 | |
CN111176801B (zh) | 一种多进程管理方法、装置、设备及存储介质 | |
EP0899659B1 (en) | An apparatus and method for simulating multiple nodes on a single machine | |
CN107272549B (zh) | 控制装置、控制方法以及记录介质 | |
CN109033328B (zh) | 一种访问请求处理方法、装置、设备及可读存储介质 | |
CN113032166B (zh) | 核间通信的方法、处理器、核间通信系统及计算机可读存储介质 | |
CN116521209B (zh) | 操作系统的升级方法及装置、存储介质及电子设备 | |
CN113642021B (zh) | 一种业务代码提交方法、处理方法、装置及电子设备 | |
US20220075628A1 (en) | System and Method for Supervising Processes Among Embedded Systems | |
US11294729B2 (en) | Resource provisioning for multiple invocations to an electronic design automation application | |
CN117632312B (zh) | 数据交互方法及相关装置 | |
CN114006815B (zh) | 云平台节点的自动化部署方法、装置、节点及存储介质 | |
US20070067488A1 (en) | System and method for transferring data | |
CN110825536A (zh) | 嵌入式实时操作系统中任务间的通信方法及装置 | |
JP7427775B2 (ja) | ストアドプロシージャの実行方法、装置、データベースシステム及び記憶媒体 | |
CN112231231B (zh) | 云端服务的调试方法、系统及装置 | |
CN114661427A (zh) | 部署容器化应用服务的计算集群的节点管理方法及系统 | |
Warrender et al. | Job scheduling in a high performance computing environment | |
CN114253680A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN112506654A (zh) | 一种工业机器人分布式协同调试方法及系统 | |
CN110879747B (zh) | 资源管理方法及装置 | |
CN113176913B (zh) | Java代理的处理方法、装置、终端设备以及存储介质 | |
CN113326067B (zh) | 命令执行方法、系统、计算机设备和存储介质 | |
CN111506441B (zh) | 一种监控Raid卡信息的方法、装置、设备及存储介质 | |
CN112433869B (zh) | 面向软件超结点的OpenCL编程框架构建方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |