CN111506307B - 一种基于参数链的子项展开方法及系统 - Google Patents

一种基于参数链的子项展开方法及系统 Download PDF

Info

Publication number
CN111506307B
CN111506307B CN202010278155.7A CN202010278155A CN111506307B CN 111506307 B CN111506307 B CN 111506307B CN 202010278155 A CN202010278155 A CN 202010278155A CN 111506307 B CN111506307 B CN 111506307B
Authority
CN
China
Prior art keywords
parameter
sub
item
type
name
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
Application number
CN202010278155.7A
Other languages
English (en)
Other versions
CN111506307A (zh
Inventor
王欢
安登奎
戴志强
姚毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Luster LightTech Co Ltd
Original Assignee
Luster LightTech Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Luster LightTech Co Ltd filed Critical Luster LightTech Co Ltd
Priority to CN202010278155.7A priority Critical patent/CN111506307B/zh
Publication of CN111506307A publication Critical patent/CN111506307A/zh
Application granted granted Critical
Publication of CN111506307B publication Critical patent/CN111506307B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种基于参数链的子项展开方法和系统,包括:对流程节点中出现的所有参数类型进行注册,获取该参数类型对应的子项参数名称;注册时,设置将子项参数的数值传递到父参数,将父参数的数值设置给子参数;基于当前流程节点的参数类型,获取其对应的子项参数名称;基于当前流程节点的参数类型,调取其对应的父参数,获取所述子项参数名称对应的数值和类型;以所述子项参数名称对应的数值和类型为输入,将该子项参数作为所述当前流程节点的一个动态参数,以便其他流程节点调用。该方法能够避免解析类工具的引入,极大地提高用户搭建流程的易用性,同时降低流程图的复杂度,提高运行效率。

Description

一种基于参数链的子项展开方法及系统
技术领域
本申请涉及软件技术领域,特别涉及一种基于参数链的子项展开方法及系统。
背景技术
我司开发的一款使用可视化流程图建模的项目开发软件VISIONAssembly,该软件使用C++语言开发,广泛应用于工业视觉领域。在VISIONAssembly软件的可视化流程中,流程节点(即组成流程图的最小单元)之间的依靠参数链传递数据,具体见附图1,图1为现有技术中项目软件可视化流程节点之间基于参数链数据传递的示意图。
节点之间传递数据,必须要求输入和输出的类型一致,如必须为整形或浮点型,或其它自定义类型。在实际应用中,有时出现两个节点间参数不匹配的情况,需要解析上个节点的数据,将其拆分才能传递给下一个节点使用。因此在这两个节点之间,需要开发一个中继节点,我们称之为某某类型解析工具,具体见附图2,图2为图1中两个流程节点之间数据类型不匹配时的示意图。
这种解析类工具的引入,带来了很多不便。从用户使用层面,如果没有编程背景知识,很难理解如何使用解析类工具。从流程图规模层面,解析类工具会增加流程图的复杂度,使流程图节点变多、运行变慢。
发明内容
本申请要解决的技术问题为提供一种基于参数链的子项展开方法,该方法能够避免解析类工具的引入,极大地提高用户搭建流程的易用性,同时降低流程图的复杂度,提高运行效率。此外,为解决上述技术问题,本申请还提供一种基于参数链的子项展开系统。
为解决上述技术问题,本申请提供一种基于参数链的子项展开方法,用于项目开发软件的可视化流程节点之间的数据处理传输,包括:
对流程节点中出现的所有参数类型进行注册,获取该参数类型对应的子项参数名称;
注册时,设置将子项参数的数值传递到父参数,将父参数的数值设置给子参数;
基于当前流程节点的参数类型,获取其对应的子项参数名称;
基于当前流程节点的参数类型,调取其对应的父参数,获取所述子项参数名称对应的数值和类型;
以所述子项参数名称对应的数值和类型为输入,将该子项参数作为所述当前流程节点的一个动态参数,以便其他流程节点调用。
可选的,所述对流程节点中出现的所有参数类型进行注册,获取该参数类型对应的子项参数名称的步骤包括:
基于流程节点中出现的所有参数类型,为每一个参数类型注册三个函数,以获取该参数类型对应的子项参数名称、设置将子项参数的数值传递到父参数、将父参数的数值设置给子参数。
可选的,所述子项展开方法还包括:
将所述三个函数的函数指针被放在数据结构体中,以流程节点参数类型为关键字,所述数据结构体为值,构建类型注册表。
可选的,所述子项展开方法还包括:
为当前流程节点添加子项参数前,先将其对应的子项参数名称显示在终端界面,以便操作人员选择。
可选的,所述子项展开方法还包括:
将对应子项参数名称显示在终端界面前,识别所述当前流程节点的参数类型。
可选的,所述子项展开方法还包括:
通过使用项目开发软件中的boost库中的any类型提供的typename获取到参数类型的关键字;基于该关键字,在所述类型注册表中查询到该类型对应的子项参数名称,获取到子项参数名称列表,将其显示在终端界面。
可选的,所述以所述子项参数名称对应的数值和类型为输入,将该子项参数作为所述当前流程节点的一个动态参数,以便其他流程节点调用的步骤,包括:
将所述子项参数名称对应的数值和类型输入给数据代理,所述数据代理为所述当前流程节点分配所述动态参数,以便其他流程节点调用。
可选的,所述子项展开方法还包括:
设置所述子项参数的数据和所述父参数的数据同步。
可选的,所述设置所述子项参数的数据和所述父参数的数据同步的步骤包括:
在参数的数据结构中添加了父项参数句柄,作为子项参数提供访问父参数的接口;并添加子项参数句柄,作为父参数访问子项参数的接口。
以下将介绍上述实施例的技术效果:
在一种实施例中,本申请提供一种基于参数链的子项展开方法,用于项目开发软件的可视化流程节点之间的数据处理传输,包括:对流程节点中出现的所有参数类型进行注册,获取该参数类型对应的子项参数名称;注册时,设置将子项参数的数值传递到父参数,将父参数的数值设置给子参数;基于当前流程节点的参数类型,获取其对应的子项参数名称;基于当前流程节点的参数类型,调取其对应的父参数,获取所述子项参数名称对应的数值和类型;以所述子项参数名称对应的数值和类型为输入,将该子项参数作为所述当前流程节点的一个动态参数,以便其他流程节点调用。
由上述工作过程可知,该方法能够避免解析类工具的引入,极大地提高用户搭建流程的易用性,同时降低流程图的复杂度,提高运行效率。
此外,为解决上述技术问题,本申请还提供一种基于参数链的子项展开系统,用于项目开发软件的可视化流程节点之间的数据处理传输,包括:
注册单元,用于对流程节点中出现的所有参数类型进行注册,获取该参数类型对应的子项参数名称、设置将子项参数的数值传递到父参数、将父参数的数值设置给子参数;
获取单元,用于基于当前流程节点的参数类型,获取其对应的子项参数名称;
调取单元,用于基于当前流程节点的参数类型,调取其对应的父参数,获取所述子项参数名称对应的数值和类型;
添加单元,用于以所述子项参数名称对应的数值和类型为输入,将该子项参数作为所述当前流程节点的一个动态参数,以便其他流程节点调用。
可选的,基于流程节点中出现的所有参数类型,为每一个参数类型注册三个函数,以获取该参数类型对应的子项参数名称、设置将子项参数的数值传递到父参数、将父参数的数值设置给子参数;
将所述三个函数的函数指针被放在数据结构体中,以流程节点参数类型为关键字,所述数据结构体为值,构建类型注册表。
可选的,为当前流程节点添加子项参数前,先将其对应的子项参数名称显示在终端界面,以便操作人员选择。
可选的,将对应子项参数名称显示在终端界面前,识别所述当前流程节点的参数类型。
可选的,通过使用项目开发软件中的boost库中的any类型提供的typename获取到参数类型的关键字;基于该关键字,在所述类型注册表中查询到该类型对应的子项参数名称,获取到子项参数名称列表,将其显示在终端界面。
可选的,将所述子项参数名称对应的数值和类型输入给数据代理,所述数据代理为所述当前流程节点分配所述动态参数,以便其他流程节点调用。
可选的,设置所述子项参数的数据和所述父参数的数据同步。
可选的,在参数的数据结构中添加了父项参数句柄,作为子项参数提供访问父参数的接口;并添加子项参数句柄,作为父参数访问子项参数的接口。
以下介绍上述实施例的技术效果:
在一种实施例中,本申请还提供一种基于参数链的子项展开系统,用于项目开发软件的可视化流程节点之间的数据处理传输,包括:注册单元,用于对流程节点中出现的所有参数类型进行注册,获取该参数类型对应的子项参数名称、设置将子项参数的数值传递到父参数、将父参数的数值设置给子参数;获取单元,用于基于当前流程节点的参数类型,获取其对应的子项参数名称;调取单元,用于基于当前流程节点的参数类型,调取其对应的父参数,获取所述子项参数名称对应的数值和类型;添加单元,用于以所述子项参数名称对应的数值和类型为输入,将该子项参数作为所述当前流程节点的一个动态参数,以便其他流程节点调用。
由上述工作过程可知,该方法能够避免解析类工具的引入,极大地提高用户搭建流程的易用性,同时降低流程图的复杂度,提高运行效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中项目软件可视化流程节点之间基于参数链数据传递的示意图;
图2为图1中两个流程节点之间数据类型不匹配时的示意图;
图3为本申请一种实施例中的一种基于参数链的子项展开方法逻辑流程图;
图4为本申请中两个流程节点之间经过解析工具转换数据类型匹配时的示意图;
图5为本申请中两个流程节点由数据类型不匹配到匹配的过程示意图;
图6为本申请中构建类型注册表的示意图;
图7为本申请中添加子项参数时的具体流程图;
图8为本申请中子项参数与父参数数据同步时的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下将对本发明的原理做出介绍:
首先对节点中可能出现的参数类型进行注册,需要注册三个方法。这三个方法作用分别为:获取该参数类型对应的子项参数名称(EnumSubMember)、将子项参数的数值传递到父参数(GetSubMember)、将父参数的数值设置给子参数(UpdateSubMember)。
当用户需要展开某个节点的某个参数时,对该参数的类型进行识别。VISIONAssembly节点的所有参数使用boost库中的any类型实现,因此可直接通过any提供的typename获取到参数类型的关键字。
获取到参数类型后,即可以参数类型为关键字查询到其对应EnumSubMember,从而得到该参数对应的子项名称。将这些子项的名称显示到终端,用户即可查看该参数支持展开哪些子项。
用户选择了需要展开的子项后,后台将得到该子项的名称。使用GetSubMember方法可得到该子项的类型和数值。从而VISIONAssembly的数据代理(负责管理节点的参数的模块),以该子项的类型和数值为输入,为该节点动态分配一个新的参数。分配后,该子项就可以作为一个独立的端口供后续节点调用,具体参见附图4和图5,图4为本申请中两个流程节点之间经过解析工具转换数据类型匹配时的示意图;图5为本申请中两个流程节点由数据类型不匹配到匹配的过程示意图。
经过上述过程,便完成了子项参数的展开。
为了执行上述原理,本申请提供一种实施例,具体的,请参考图3,图3为本申请一种实施例中的一种基于参数链的子项展开方法逻辑流程图。
在一种实施例中,如图3所示,一种基于参数链的子项展开方法,用于项目开发软件的可视化流程节点之间的数据处理传输,包括如下步骤:
步骤S101:对流程节点中出现的所有参数类型进行注册,获取该参数类型对应的子项参数名称;
步骤S102:注册时,设置将子项参数的数值传递到父参数,将父参数的数值设置给子参数;
步骤S103:基于当前流程节点的参数类型,获取其对应的子项参数名称;
步骤S104:基于当前流程节点的参数类型,调取其对应的父参数,获取所述子项参数名称对应的数值和类型;
步骤S105:以所述子项参数名称对应的数值和类型为输入,将该子项参数作为所述当前流程节点的一个动态参数,以便其他流程节点调用。
在一种实施例中,本申请提供一种基于参数链的子项展开方法,用于项目开发软件的可视化流程节点之间的数据处理传输,包括:对流程节点中出现的所有参数类型进行注册,获取该参数类型对应的子项参数名称;注册时,设置将子项参数的数值传递到父参数,将父参数的数值设置给子参数;基于当前流程节点的参数类型,获取其对应的子项参数名称;基于当前流程节点的参数类型,调取其对应的父参数,获取所述子项参数名称对应的数值和类型;以所述子项参数名称对应的数值和类型为输入,将该子项参数作为所述当前流程节点的一个动态参数,以便其他流程节点调用。
由上述工作过程可知,该方法能够避免解析类工具的引入,极大地提高用户搭建流程的易用性,同时降低流程图的复杂度,提高运行效率。
在上述实施例中,可以做出具体设计。比如,所述对流程节点中出现的所有参数类型进行注册,获取该参数类型对应的子项参数名称的步骤包括:
基于流程节点中出现的所有参数类型,为每一个参数类型注册三个函数,以获取该参数类型对应的子项参数名称、设置将子项参数的数值传递到父参数、将父参数的数值设置给子参数;进一步的,将所述三个函数的函数指针被放在数据结构体中,以流程节点参数类型为关键字,所述数据结构体为值,构建类型注册表。
具体的,实施上述方案时,为每个可能用到的参数类型注册三个函数,即获取该参数类型对应的子项参数名称(EnumSubMember)、将子项参数的数值传递到父参数(GetSubMember)、将父参数的数值设置给子参数(UpdateSubMember)。这三个函数的函数指针被放在结构体GsHelpFunctors中。VISIONAssembly启动时,以参数类型为关键字,GsHelpFunctors为值,构建一个表,为方便后续表述,我们称之为“类型注册表”。如附图6所示,图6为本申请中构建类型注册表的示意图。
在上述实施例中,还做出具体设计。比如,所述子项展开方法还包括:
为当前流程节点添加子项参数前,先将其对应的子项参数名称显示在终端界面,以便操作人员选择。此外,将对应子项参数名称显示在终端界面前,需要先识别所述当前流程节点的参数类型。
具体的,为节点A的参数A添加子项参数前,需要将参数A包含的子项名称打印到终端供用户选择,如附图7所示,图7为本申请中添加子项参数时的具体流程图。图7中显示了“将子项名称打印到终端”的过程。此外,要打印子项名称,首先要识别参数的类型。
在上述实施例中,还可以做出进一步改进设计。比如,所述子项展开方法还包括:
通过使用项目开发软件中的boost库中的any类型提供的typename获取到参数类型的关键字;基于该关键字,在所述类型注册表中查询到该类型对应的子项参数名称,获取到子项参数名称列表,将其显示在终端界面。
具体的,由于VISIONAssembly节点的所有参数使用boost库中的any类型实现,因此可直接通过any提供的typename获取到参数类型的关键字。以参数类型为关键字,在“类型注册表”中查询到该类型对应的EnumSubMember,调用该方法即可获取到子项参数名称列表,并将其显示到终端。
在上述实施例中,所述以所述子项参数名称对应的数值和类型为输入,将该子项参数作为所述当前流程节点的一个动态参数,以便其他流程节点调用的步骤,包括:
将所述子项参数名称对应的数值和类型输入给数据代理,所述数据代理为所述当前流程节点分配所述动态参数,以便其他流程节点调用。
具体的,如图7所示,用户选择需要添加的子项X后,再调用参数A的类型对应的GetSubMember,获取到参数A的子项X对应的数值和类型。以此为输入,给数据代理,数据代理则可以分配一个与参数A关联的子项参数X到节点A上。为方便后续表述,我们将由参数A分配出来的子项X的名称叫做A.X。至此,则完成了添加子项参数的过程。
此外,在上述实施例中,还可以做出具体设计。比如,述子项展开方法还包括:
设置所述子项参数的数据和所述父参数的数据同步。所述设置所述子项参数的数据和所述父参数的数据同步的步骤包括:
在参数的数据结构中添加了父项参数句柄,作为子项参数提供访问父参数的接口;并添加子项参数句柄,作为父参数访问子项参数的接口。
具体的,在上述方案中,子项参数和父项参数数据同步的过程,请参考图8,图8为本申请中子项参数与父参数数据同步时的示意图。
数据同步即子项参数(即上述的参数A.X)发生改变时,父项参数(即上述的参数A)对应的数值也发生改变;而父项参数发生改变时,子项参数也随之更新。为了实现这个功能,我们在参数的基本数据结构中添加了一个“父项参数句柄”,见附图6。这个“父项参数句柄”可以为子项参数提供访问父项参数的接口。同理,也添加了“子项参数句柄”。这样在子项参数的数据发生改变时,即可调用父项参数句柄,通知到父项参数。父项参数接收到通知后,调用注册函数UpdateSubMember,即可完成父项数据更新。而在父项参数的数据发生改变时,子项参数收到通知,调用GetSubMember,即可完成子项数据更新。这样就完成了子项参数和父项参数的数据同步。
下边结合具体场景,对本发明的技术方案做出整体介绍:
本发明内容分为三部分:注册参数类型、添加子项参数、子项参数和父项参数同步。
注册参数类型:为每个可能用到的参数类型注册三个函数,即获取该参数类型对应的子项参数名称(EnumSubMember)、将子项参数的数值传递到父参数(GetSubMember)、将父参数的数值设置给子参数(UpdateSubMember)。这三个函数的函数指针被放在结构体GsHelpFunctors中。VISIONAssembly启动时,以参数类型为关键字,GsHelpFunctors为值,构建一个表,为方便后续表述,我们称之为“类型注册表”。如附图6所示。
添加子项参数:为节点A的参数A添加子项参数前,需要将参数A包含的子项名称打印到终端供用户选择,如附图7中,“将子项名称打印到终端”的过程。要打印子项名称,首先要识别参数的类型。由于VISIONAssembly节点的所有参数使用boost库中的any类型实现,因此可直接通过any提供的typename获取到参数类型的关键字。以参数类型为关键字,在“类型注册表”中查询到该类型对应的EnumSubMember,调用该方法即可获取到子项参数名称列表,并将其显示到终端。用户选择需要添加的子项X后,再调用参数A的类型对应的GetSubMember,获取到参数A的子项X对应的数值和类型。以此为输入,给数据代理,数据代理则可以分配一个与参数A关联的子项参数X到节点A上。为方便后续表述,我们将由参数A分配出来的子项X的名称叫做A.X。至此,则完成了添加子项参数的过程,见附图7。
子项参数和父项参数数据同步:数据同步即子项参数(即上述的参数A.X)发生改变时,父项参数(即上述的参数A)对应的数值也发生改变;而父项参数发生改变时,子项参数也随之更新。为了实现这个功能,我们在参数的基本数据结构中添加了一个“父项参数句柄”,见附图8。这个“父项参数句柄”可以为子项参数提供访问父项参数的接口。同理,也添加了“子项参数句柄”。这样在子项参数的数据发生改变时,即可调用父项参数句柄,通知到父项参数。父项参数接收到通知后,调用注册函数UpdateSubMember,即可完成父项数据更新。而在父项参数的数据发生改变时,子项参数收到通知,调用GetSubMember,即可完成子项数据更新。这样就完成了子项参数和父项参数的数据同步。
在上述方案中,关键步骤阐述如下:
第一,注册参数类型,为每个可能用到的参数类型注册获取子项名称列表和数据同步相关的函数,软件启动时,以参数类型为关键字,构建类型注册表。
第二,添加子项参数,根据关键特征一中的类型注册表,查询节点参数对应的子项名称列表,供用户选择。用户选择需要添加的子项名称后,同样根据关键特征一中的类型注册表,获取到子项名称对应的数值和类型。将子项的数值和类型输入给数据代理,完成子项参数的添加。
第三,子项参数和父项参数数据同步,参数的基本结构中添加子项参数句柄和父项参数句柄。在参数数值发生改变时,通过参数句柄通知到父项/子项参数,参数收到通知后,根据关键特征一中的类型注册表,完成数据更新。
最后,介绍上述技术方案的技术效果:
该方案的有益效果:可以动态解析节点的输入输出数据类型,避免解析类工具的引入,提高了用户搭建流程的易用性,同时降低了流程图的复杂度,提高了运行效率。
与上述方法实施例相对应,本申请还提供一套装置实施例。
在装置实施例中,一种基于参数链的子项展开系统,用于项目开发软件的可视化流程节点之间的数据处理传输,,包括:
注册单元,用于对流程节点中出现的所有参数类型进行注册,获取该参数类型对应的子项参数名称、设置将子项参数的数值传递到父参数、将父参数的数值设置给子参数;
获取单元,用于基于当前流程节点的参数类型,获取其对应的子项参数名称;
调取单元,用于基于当前流程节点的参数类型,调取其对应的父参数,获取所述子项参数名称对应的数值和类型;
添加单元,用于以所述子项参数名称对应的数值和类型为输入,将该子项参数作为所述当前流程节点的一个动态参数,以便其他流程节点调用。
具体的,基于流程节点中出现的所有参数类型,为每一个参数类型注册三个函数,以获取该参数类型对应的子项参数名称、设置将子项参数的数值传递到父参数、将父参数的数值设置给子参数;将所述三个函数的函数指针被放在数据结构体中,以流程节点参数类型为关键字,所述数据结构体为值,构建类型注册表。
此外,在上述方案中,为当前流程节点添加子项参数前,先将其对应的子项参数名称显示在终端界面,以便操作人员选择。
并且,将对应子项参数名称显示在终端界面前,需要识别所述当前流程节点的参数类型。
再者,通过使用项目开发软件中的boost库中的any类型提供的typename获取到参数类型的关键字;基于该关键字,在所述类型注册表中查询到该类型对应的子项参数名称,获取到子项参数名称列表,将其显示在终端界面。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程和技术效果,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
本说明书通篇提及的“多个实施例”、“一些实施例”、“一个实施例”或“实施例”等,意味着结合该实施例描述的具体特征、部件或特性包括在至少一个实施例中。因此,本说明书通篇出现的短语“在多个实施例中”、“在一些实施例中”、“在至少另一个实施例中”或“在实施例中”等并不一定都指相同的实施例。此外,在一个或多个实施例中,具体特征、部件或特性可以任何合适的方式进行组合。因此,在无限制的情形下,结合一个实施例示出或描述的具体特征、部件或特性可全部或部分地与一个或多个其他实施例的特征、部件或特性进行组合。这种修改和变型旨在包括在本申请的范围之内。
此外,本领域技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本申请的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“终端”、“组件”或“系统”。此外,本申请的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (11)

1.一种基于参数链的子项展开方法,用于项目开发软件的可视化流程节点之间的数据处理传输,其特征在于,包括:
对流程节点中出现的所有参数类型进行注册,获取该参数类型对应的子项参数名称;
注册时,设置将子项参数的数值传递到父参数,将父参数的数值设置给子参数;
基于当前流程节点的参数类型,获取其对应的子项参数名称;
基于当前流程节点的参数类型,调取其对应的父参数,获取所述子项参数名称对应的数值和类型;
以所述子项参数名称对应的数值和类型为输入,将该子项参数作为所述当前流程节点的一个动态参数,以便其他流程节点调用;
所述对流程节点中出现的所有参数类型进行注册,获取该参数类型对应的子项参数名称的步骤包括:
基于流程节点中出现的所有参数类型,为每一个参数类型注册三个函数,以获取该参数类型对应的子项参数名称、设置将子项参数的数值传递到父参数、将父参数的数值设置给子参数;
所述子项展开方法还包括:
将所述三个函数的函数指针被放在数据结构体中,以流程节点参数类型为关键字,所述数据结构体为值,构建类型注册表。
2.如权利要求1所述的一种基于参数链的子项展开方法,其特征在于,所述子项展开方法还包括:
为当前流程节点添加子项参数前,先将其对应的子项参数名称显示在终端界面,以便操作人员选择。
3.如权利要求2所述的一种基于参数链的子项展开方法,其特征在于,所述子项展开方法还包括:
将对应子项参数名称显示在终端界面前,识别所述当前流程节点的参数类型。
4.如权利要求3所述的一种基于参数链的子项展开方法,其特征在于,所述子项展开方法还包括:
通过使用项目开发软件中的boost库中的any类型提供的type name获取到参数类型的关键字;基于该关键字,在所述类型注册表中查询到该类型对应的子项参数名称,获取到子项参数名称列表,将其显示在终端界面。
5.如权利要求1-3任一项所述的一种基于参数链的子项展开方法,其特征在于,所述以所述子项参数名称对应的数值和类型为输入,将该子项参数作为所述当前流程节点的一个动态参数,以便其他流程节点调用的步骤,包括:
将所述子项参数名称对应的数值和类型输入给数据代理,所述数据代理为所述当前流程节点分配所述动态参数,以便其他流程节点调用。
6.如权利要求1-3任一项所述的一种基于参数链的子项展开方法,其特征在于,所述子项展开方法还包括:
设置所述子项参数的数据和所述父参数的数据同步。
7.如权利要求6所述的一种基于参数链的子项展开方法,其特征在于,所述设置所述子项参数的数据和所述父参数的数据同步的步骤包括:
在参数的数据结构中添加了父项参数句柄,作为子项参数提供访问父参数的接口;并添加子项参数句柄,作为父参数访问子项参数的接口。
8.一种基于参数链的子项展开系统,用于项目开发软件的可视化流程节点之间的数据处理传输,其特征在于,包括:
注册单元,用于对流程节点中出现的所有参数类型进行注册,获取该参数类型对应的子项参数名称、设置将子项参数的数值传递到父参数、将父参数的数值设置给子参数;
获取单元,用于基于当前流程节点的参数类型,获取其对应的子项参数名称;
调取单元,用于基于当前流程节点的参数类型,调取其对应的父参数,获取所述子项参数名称对应的数值和类型;
添加单元,用于以所述子项参数名称对应的数值和类型为输入,将该子项参数作为所述当前流程节点的一个动态参数,以便其他流程节点调用;
基于流程节点中出现的所有参数类型,为每一个参数类型注册三个函数,以获取该参数类型对应的子项参数名称、设置将子项参数的数值传递到父参数、将父参数的数值设置给子参数;
将所述三个函数的函数指针被放在数据结构体中,以流程节点参数类型为关键字,所述数据结构体为值,构建类型注册表。
9.如权利要求8所述的一种基于参数链的子项展开系统,其特征在于,为当前流程节点添加子项参数前,先将其对应的子项参数名称显示在终端界面,以便操作人员选择。
10.如权利要求9所述的一种基于参数链的子项展开系统,其特征在于,将对应子项参数名称显示在终端界面前,识别所述当前流程节点的参数类型。
11.如权利要求10所述的一种基于参数链的子项展开系统,其特征在于,通过使用项目开发软件中的boost库中的any类型提供的type name获取到参数类型的关键字;基于该关键字,在所述类型注册表中查询到该类型对应的子项参数名称,获取到子项参数名称列表,将其显示在终端界面。
CN202010278155.7A 2020-04-10 2020-04-10 一种基于参数链的子项展开方法及系统 Active CN111506307B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010278155.7A CN111506307B (zh) 2020-04-10 2020-04-10 一种基于参数链的子项展开方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010278155.7A CN111506307B (zh) 2020-04-10 2020-04-10 一种基于参数链的子项展开方法及系统

Publications (2)

Publication Number Publication Date
CN111506307A CN111506307A (zh) 2020-08-07
CN111506307B true CN111506307B (zh) 2023-04-14

Family

ID=71864050

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010278155.7A Active CN111506307B (zh) 2020-04-10 2020-04-10 一种基于参数链的子项展开方法及系统

Country Status (1)

Country Link
CN (1) CN111506307B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112667324B (zh) * 2020-12-30 2023-12-05 凌云光技术股份有限公司 一种调用命令模式中命令类的方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577165A (zh) * 2012-07-20 2014-02-12 杭州勒卡斯广告策划有限公司 一种表单生成方法和表单生成器
CN108363594A (zh) * 2018-01-08 2018-08-03 浪潮通用软件有限公司 一种工作流系统中参与者解析的方法
CN109254855A (zh) * 2018-08-29 2019-01-22 北京奇艺世纪科技有限公司 一种参数传输协议的注册方法、装置及电子设备
CN110727670A (zh) * 2019-10-11 2020-01-24 集奥聚合(北京)人工智能科技有限公司 基于流程图的数据结构预测传递及自动化数据处理方法
CN110969414A (zh) * 2019-11-27 2020-04-07 中国地质大学(武汉) 一种基于Java的跨平台工作流实现方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7793273B2 (en) * 2004-11-23 2010-09-07 National Instruments Corporation Type propagation for automatic casting of output types in a data flow program

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577165A (zh) * 2012-07-20 2014-02-12 杭州勒卡斯广告策划有限公司 一种表单生成方法和表单生成器
CN108363594A (zh) * 2018-01-08 2018-08-03 浪潮通用软件有限公司 一种工作流系统中参与者解析的方法
CN109254855A (zh) * 2018-08-29 2019-01-22 北京奇艺世纪科技有限公司 一种参数传输协议的注册方法、装置及电子设备
CN110727670A (zh) * 2019-10-11 2020-01-24 集奥聚合(北京)人工智能科技有限公司 基于流程图的数据结构预测传递及自动化数据处理方法
CN110969414A (zh) * 2019-11-27 2020-04-07 中国地质大学(武汉) 一种基于Java的跨平台工作流实现方法及系统

Also Published As

Publication number Publication date
CN111506307A (zh) 2020-08-07

Similar Documents

Publication Publication Date Title
CN111868645B (zh) 数字双胞胎建模仿真方法、装置和系统
CN111666326B (zh) Etl调度方法及装置
CN109831334B (zh) 网络拓扑构建方法、装置及终端设备
CN101834750B (zh) 一种通用业务监控方法
CN106598992A (zh) 数据库的操作方法及装置
CN101968793A (zh) 一种基于异构数据源数据核对的方法和系统
CN109582289B (zh) 规则引擎中规则流的处理方法、系统、存储介质和处理器
CN109710631A (zh) 辅助生成sql代码的方法、装置、设备及计算机存储介质
CN111506307B (zh) 一种基于参数链的子项展开方法及系统
EP1865448A1 (en) Provisioning and activation using a service catalog
CN107704256A (zh) 一种Ubuntu上实现Python依赖系统库自动化安装的方法
CN115016784B (zh) 低代码应用复用方法、应用解析系统、设备及存储介质
CN114896003A (zh) 页面的配置方法和装置、存储介质及电子装置
CN110941634A (zh) 数据的处理方法及装置、存储介质和电子装置
CN110704122A (zh) 插件加载方法及装置
JPH1127285A (ja) ネットワーク管理システム及び記録媒体
CN110297843B (zh) 用于b/s系统的数据查询方法及系统、终端
CN112947954A (zh) 一种界面更新方法、装置和存储介质
CN110555178A (zh) 数据代理方法及装置
CN111522748B (zh) 一种自动化测试案例生成方法、装置、服务器及存储介质
CN106372121B (zh) 服务器及数据处理方法
CN114513410A (zh) 一种设备快速接入物联网平台的方法和系统
JP2000181933A (ja) 階層構造作成方法及び装置
CN113448689A (zh) 运行期Dubbo协议转换装置及方法
CN113448980A (zh) 用于生成sql语句的方法及装置、电子设备

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
CB02 Change of applicant information

Address after: 100094 Beijing city Haidian District Cui Hunan loop 13 Hospital No. 7 Building 7 room 701

Applicant after: Lingyunguang Technology Co.,Ltd.

Address before: 100094 Beijing city Haidian District Cui Hunan loop 13 Hospital No. 7 Building 7 room 701

Applicant before: Beijing lingyunguang Technology Group Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant