CN113050938A - 视觉软件开发系统、方法、装置及计算机存储介质 - Google Patents

视觉软件开发系统、方法、装置及计算机存储介质 Download PDF

Info

Publication number
CN113050938A
CN113050938A CN202110251760.XA CN202110251760A CN113050938A CN 113050938 A CN113050938 A CN 113050938A CN 202110251760 A CN202110251760 A CN 202110251760A CN 113050938 A CN113050938 A CN 113050938A
Authority
CN
China
Prior art keywords
module
interface
data
layer
control
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
Application number
CN202110251760.XA
Other languages
English (en)
Other versions
CN113050938B (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.)
Hangzhou Hikrobot Technology Co Ltd
Original Assignee
Hangzhou Hikrobot Technology 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 Hangzhou Hikrobot Technology Co Ltd filed Critical Hangzhou Hikrobot Technology Co Ltd
Priority to CN202110251760.XA priority Critical patent/CN113050938B/zh
Publication of CN113050938A publication Critical patent/CN113050938A/zh
Priority to PCT/CN2022/079753 priority patent/WO2022188780A1/zh
Priority to JP2023547704A priority patent/JP2024506044A/ja
Priority to KR1020237027372A priority patent/KR20230127351A/ko
Priority to EP22766303.6A priority patent/EP4307106A4/en
Application granted granted Critical
Publication of CN113050938B publication Critical patent/CN113050938B/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
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请实施例公开了一种视觉软件开发系统、方法及计算机存储介质,属于机器视觉技术领域。该视觉软件开发系统中的应用界面层用于显示模块添加控件,该模块添加控件用于向数据处理层导入第三方模块的模块数据,如此,应用界面层显示的N个模块显示控件对应的模块便可以包括第三方模块。由此可知,本申请实施例提供的视觉软件开发系统是一种通用的开放式视觉软件开发系统,该视觉软件开发系统允许用户基于不同的业务需求开发不同的第三方模块,并将开发的第三方模块挂载在本申请实施例提供的软件开发系统中,从而使得后续开发的视觉软件能够更加适应不同业务的个性化需求。

Description

视觉软件开发系统、方法、装置及计算机存储介质
技术领域
本申请实施例涉及机器视觉技术领域,特别涉及一种视觉软件开发系统、方法及计算机存储介质。
背景技术
机器视觉是指通过机器代替人眼来做测量或判断的技术。在机器视觉技术领域中,通过图形化的流程图替代传统的语言代码作为软件来实现某个具体的功能,从而便于更多用户能够快速开发自身需求的视觉软件。在机器视觉领域中,视觉软件还可以称为机器视觉软件。而视觉软件需要基于视觉软件开发系统来实现。由于不同的视觉软件对应的不同的用户需求,因此,当前针对视觉软件开发系统需要重点解决的问题为:如何构建视觉软件开发系统以使基于视觉软件开发系统所定制的视觉软件满足用户需求。
相关技术中,为了使得开发出的视觉软件满足用户需求,通常是针对每一类视觉软件配置一个视觉软件开发系统。这样视觉软件开发系统具有专业性,基于该视觉软件开发系统开发的视觉软件能够满足指定的用户需求。但是相关技术中的视觉软件开发系统不具有通用性,导致需要针对不同类型的视觉软件分别配置不同的视觉软件开发系统。且在用户需求临时发生变化时,基于已有的视觉软件开发系统开发的视觉软件难以满足用户最新的需求。
发明内容
本申请实施例提供了一种视觉软件开发系统、方法、装置及计算机存储介质,可以用于开发满足不同业务需求的视觉软件。所述技术方案如下:
一方面,提供了一种视觉软件开发系统,所述视觉软件开发系统包括应用界面层和数据处理层;
所述应用界面层用于:显示N个模块显示控件,所述N个模块显示控件分别和N个模块对应,所述N个模块各自的模块数据存储在所述数据处理层,所述模块数据包括相应模块的执行逻辑,所述应用界面层还用于显示模块添加控件,所述模块添加控件用于向所述数据处理层导入第三方模块的模块数据,所述N个模块包括所述第三方模块,所述N为大于或等于1的正整数;
所述应用界面层还用于:响应于所述用户针对所述N个模块显示控件中一个或多个模块显示控件的第一操作,显示流程图,所述流程图指示所述一个或多个模块显示控件各自对应的模块之间的执行顺序;
所述数据处理层用于:响应于所述应用界面层显示的所述流程图,调用并运行所述一个或多个模块显示控件各自对应的模块的模块数据,得到所述流程图的数据处理结果,向所应用界面层返回所述数据处理结果。
在一种可能的实现方式中,
所述应用界面层用于:响应于针对所述模块添加控件的第二操作,获取用户通过所述模块添加控件导入的第三方模块的模块数据,将导入的第三方模块的模块数据发送至所述数据处理层;
所述数据处理层用于:在检验所述导入的第三方模块的模块数据满足参考规则的情况下,存储所述导入的第三方模块的模块数据,向所述应用界面层返回模块加载成功消息,所述模块加载成功消息指示成功加载第三方模块。
在一种可能的实现方式中,
所述参考规则包括第三方模块的输入输出接口的设计方式和/或第三方模块的模块数据的封装方式;
其中,所述第三方模块的输入输出接口的设计方式包括所述第三方模块的输入数据和/或输出数据的格式,所述第三方模块的模块数据的封装方式指示所述第三方模块的模块数据在所述数据处理层的存储格式,所述存储格式包括动态链接库、静态链接库、可执行exe文件中任一种。
在一种可能的实现方式中,
所述应用界面层还用于:
响应于所述针对所述模块添加控件的第三操作,显示模块配置文件,所述模块配置文件指示所述参考规则。
在一种可能的实现方式中,
所述应用界面层还用于:响应于所述用户针对所述N个模块显示控件中第一模块显示控件的第四操作,显示和所述第一模块显示控件对应的第一模块的模块配置界面,所述模块配置界面中包括多个模块配置控件,所述多个模块配置控件中任一模块配置控件用于指示所述用户对所述第一模块执行过程中的参数进行编辑;
所述应用界面层还用于:响应于针对所述任一模块配置控件的第五操作,获取用户通过所述任一模块配置控件编辑的参数,向所述数据处理层发送编辑后的参数;
所述数据处理层还用于:基于所述编辑后的参数更新所述第一模块的模块数据;
其中,在所述流程图包括所述第一模块的情况下,所述数据处理层还用于:基于更新后的所述第一模块的模块数据更新所述流程图的数据处理结果,向所应用界面层返回更新后的数据处理结果。
在一种可能的实现方式中,
在所述第一模块为第三方模块的情况下,用户通过所述模块添加控件导入的所述第一模块的模块数据中还包括模块配置界面文件,所述模块界面配置文件指示所述第一模块的模块配置界面的程序代码;
所述应用界面层显示的第一模块的模块配置界面是按照所述第一模块的模块数据中的模块配置界面文件显示的。
在一种可能的实现方式中,
所述数据处理层还用于:基于所述流程图生成第一代码包,所述第一代码包指示所述流程图包括的各个模块的执行逻辑以及包括的各个模块之间的执行顺序;
所述数据处理层还用于:控制所述应用界面层显示所述第一代码包对应的第一代码控件,所述第一代码控件用于指示所述用户下载所述第一代码包,所述第一代码包支持导入第三方系统,并在所述第三方系统上运行后显示所述流程图。
在一种可能的实现方式中,
所述应用界面层还用于:显示运行界面显示控件,所述运行界面显示控件指示显示针对所述流程图的运行界面,所述运行界面用于显示所述流程图的运行信息,所述流程图的运行信息指示所述流程图运行过程中的中间数据;
所述应用界面层还用于:响应于针对所述运行界面显示控件的第六操作,显示所述运行界面,以使所述用户基于所述运行界面查看所述流程图的运行过程中的中间数据。
在一种可能的实现方式中,
所述应用界面层还用于:显示运行界面配置控件,所述运行界面配置控件指示显示运行界面配置界面,所述运行界面配置界面用于对所述运行界面上显示的内容进行配置;
所述应用界面层还用于:响应于针对所述运行界面配置控件的第七操作,显示所述运行界面配置界面,所述运行界面配置界面包括多个运行界面配置子控件,所述多个运行界面配置子控件中任一运行界面配置子控件对应有开启选项;
所述应用界面层还用于:响应于针对所述多个运行界面配置子控件中第一运行界面配置子控件的开启选项的第八操作,显示内容来源选项,响应于针对所述内容来源选项的第九操作,将所述第一运行界面配置子控件和所述流程图中的一个模块进行绑定;
其中,所述运行界面上显示的运行信息包括和所述第一运行界面配置子控件绑定的模块的数据。
在一种可能的实现方式中,
所述数据处理层还用于:将所述运行界面的程序代码导出为第二代码包;
所述数据处理层还用于:控制所述应用界面层显示所述第二代码包对应的第二代码控件,所述第二代码控件用于指示所述用户下载所述第二代码包,所述第二代码包支持导入第三方系统,并在所述第三方系统上运行后显示所述运行界面。
在一种可能的实现方式中,
所述数据处理层包括数据调度层以及功能模块层;
所述功能模块层中存储所述N个模块的模块数据;
所述数据调度层用于:按照所述流程图中所述一个或多个模块标识各自对应的模块之间的执行顺序,依次从所述功能模块层中调用并运行所述一个或多个模块标识各自对应的模块的模块数据,得到所述数据处理结果。
在一种可能的实现方式中,
所述数据处理层用于:存储M个模块的模块数据,所述M为大于或等于所述N的正整数;
所述应用界面层还用于:显示模块注册控件,所述应用界面层用于响应于所述用户通过所述模块注册控件从所述M个模块中选择的所述N个模块,显示所述N个模块显示控件。
在一种可能的实现方式中,
所述N个模块为所述数据处理层校验合法的模块,所述校验合法的模块是指所述用户有权限使用相应模块。
在一种可能的实现方式中,
所述应用界面层还用于:显示针对任一模块显示控件的调用控件,所述调用控件指示允许用户在第三方系统调用所述任一模块显示控件对应的模块;
所述应用界面层还用于:响应于针对所述调用控件的第十操作,显示所述任一模块显示控件所对应的模块的模块数据的接口链接;
所述应用界面层还用于:在检测到所述第三方系统发送的针对所述接口链接的数据调用请求时,基于所述接口链接从所述数据处理层获取所述任一模块显示控件所对应的模块的模块数据,将获取的模块数据发送至所述第三方系统。
另一方面、提供了一种视觉软件开发方法,所述方法应用于视觉软件开发系统,所述视觉软件开发系统包括应用界面层和数据处理层,所述方法包括:
所述应用界面层显示N个模块显示控件,所述N个模块显示控件分别和N个模块对应,所述N个模块各自的模块数据存储在所述数据处理层,所述模块数据包括相应模块的执行逻辑,所述应用界面层还显示有模块添加控件,所述模块添加控件用于向所述数据处理层导入第三方模块的模块数据,所述N个模块包括所述第三方模块,所述N为大于或等于1的正整数;
所述应用界面层响应于所述用户针对所述N个模块显示控件中一个或多个模块显示控件的第一操作,显示流程图,所述流程图指示所述一个或多个模块显示控件各自对应的模块之间的执行顺序;
所述数据处理层响应于所述应用界面层显示的所述流程图,调用并运行所述一个或多个模块显示控件各自对应的模块的模块数据,得到所述流程图的数据处理结果,向所应用界面层返回所述数据处理结果。
在一种可能的实现方式中,所述方法还包括:
所述应用界面层响应于针对所述模块添加控件的第二操作,获取用户通过所述模块添加控件导入的第三方模块的模块数据,将导入的第三方模块的模块数据发送至所述数据处理层;
所述数据处理层在检验所述导入的第三方模块的模块数据满足参考规则的情况下,存储所述导入的第三方模块的模块数据,向所述应用界面层返回模块加载成功消息,所述模块加载成功消息指示成功加载第三方模块;
在一种可能的实现方式中,所述参考规则包括第三方模块的输入输出接口的设计方式和/或第三方模块的模块数据的封装方式;
其中,所述第三方模块的输入输出接口的设计方式包括所述第三方模块的输入数据和/或输出数据的格式,所述第三方模块的模块数据的封装方式指示所述第三方模块的模块数据在所述数据处理层的存储格式,所述存储格式包括动态链接库、静态链接库、可执行exe文件中任一种;
在一种可能的实现方式中,所述方法还包括:
所述应用界面层响应于所述针对所述模块添加控件的第三操作,显示模块配置文件,所述模块配置文件指示所述参考规则;
在一种可能的实现方式中,所述方法还包括:
所述应用界面层响应于所述用户针对所述N个模块显示控件中第一模块显示控件的第四操作,显示和所述第一模块显示控件对应的第一模块的模块配置界面,所述模块配置界面中包括多个模块配置控件,所述多个模块配置控件中任一模块配置控件用于指示所述用户对所述第一模块执行过程中的参数进行编辑;
所述应用界面层响应于针对所述任一模块配置控件的第五操作,获取用户通过所述任一模块配置控件编辑的参数,向所述数据处理层发送编辑后的参数;
所述数据处理层基于所述编辑后的参数更新所述第一模块的模块数据;
其中,在所述流程图包括所述第一模块的情况下,所述数据处理层基于更新后的所述第一模块的模块数据更新所述流程图的数据处理结果,向所应用界面层返回更新后的数据处理结果;
在一种可能的实现方式中,在所述第一模块为第三方模块的情况下,用户通过所述模块添加控件导入的所述第一模块的模块数据中还包括模块配置界面文件,所述模块界面配置文件指示所述第一模块的模块配置界面的程序代码;
所述应用界面层显示的第一模块的模块配置界面是按照所述第一模块的模块数据中的模块配置界面文件显示的;
在一种可能的实现方式中,所述方法还包括:
所述数据处理层基于所述流程图生成第一代码包,所述第一代码包指示所述流程图包括的各个模块的执行逻辑以及包括的各个模块之间的执行顺序;
所述数据处理层控制所述应用界面层显示所述第一代码包对应的第一代码控件,所述第一代码控件用于指示所述用户下载所述第一代码包,所述第一代码包支持导入第三方系统,并在所述第三方系统上运行后显示所述流程图;
在一种可能的实现方式中,所述方法还包括:
所述应用界面层显示运行界面显示控件,所述运行界面显示控件指示显示针对所述流程图的运行界面,所述运行界面用于显示所述流程图的运行信息,所述流程图的运行信息指示所述流程图运行过程中的中间数据;
所述应用界面层响应于针对所述运行界面显示控件的第六操作,显示所述运行界面,以使所述用户基于所述运行界面查看所述流程图的运行过程中的中间数据;
在一种可能的实现方式中,所述方法还包括:
所述应用界面层显示运行界面配置控件,所述运行界面配置控件指示显示运行界面配置界面,所述运行界面配置界面用于对所述运行界面上显示的内容进行配置;
所述应用界面层响应于针对所述运行界面配置控件的第七操作,显示所述运行界面配置界面,所述运行界面配置界面包括多个运行界面配置子控件,所述多个运行界面配置子控件中任一运行界面配置子控件对应有开启选项;
所述应用界面层响应于针对所述多个运行界面配置子控件中第一运行界面配置子控件的开启选项的第八操作,显示内容来源选项,响应于针对所述内容来源选项的第九操作,将所述第一运行界面配置子控件和所述流程图中的一个模块进行绑定;
其中,所述运行界面上显示的运行信息包括和所述第一运行界面配置子控件绑定的模块的数据;
在一种可能的实现方式中,所述方法还包括:
所述数据处理层将所述运行界面的程序代码导出为第二代码包;
所述数据处理层控制所述应用界面层显示所述第二代码包对应的第二代码控件,所述第二代码控件用于指示所述用户下载所述第二代码包,所述第二代码包支持导入第三方系统,并在所述第三方系统上运行后显示所述运行界面;
在一种可能的实现方式中,所述数据处理层包括数据调度层以及功能模块层;
所述功能模块层中存储所述N个模块的模块数据;
所述数据处理层响应于所述应用界面层显示的所述流程图,调用并运行所述一个或多个模块显示控件各自对应的模块的模块数据,得到所述流程图的数据处理结果,包括:
所述数据调度层按照所述流程图中所述一个或多个模块标识各自对应的模块之间的执行顺序,依次从所述功能模块层中调用并运行所述一个或多个模块标识各自对应的模块的模块数据,得到所述数据处理结果;
在一种可能的实现方式中,所述方法还包括:
所述应用界面层显示模块注册控件,所述应用界面层响应于所述用户通过所述模块注册控件从M个模块中选择的所述N个模块,显示所述N个模块显示控件,其中,所述数据处理层中存储有所述M个模块的模块数据,所述M为大于或等于所述N的正整数;
在一种可能的实现方式中,所述N个模块为所述数据处理层校验合法的模块,所述校验合法的模块是指所述用户有权限使用相应模块;
在一种可能的实现方式中,所述方法还包括:
所述应用界面层显示针对任一模块显示控件的调用控件,所述调用控件指示允许用户在第三方系统调用所述任一模块显示控件对应的模块;
所述应用界面层响应于针对所述调用控件的第十操作,显示所述任一模块显示控件所对应的模块的模块数据的接口链接;
所述应用界面层在检测到所述第三方系统发送的针对所述接口链接的数据调用请求时,基于所述接口链接从所述数据处理层获取所述任一模块显示控件所对应的模块的模块数据,将获取的模块数据发送至所述第三方系统。
另一方面、提供了一种视觉软件开发装置,所述装置部署于视觉软件开发系统,所述视觉软件开发系统包括应用界面层和数据处理层,所述装置包括:
显示模块,用于控制所述应用界面层显示N个模块显示控件,所述N个模块显示控件分别和N个模块对应,所述N个模块各自的模块数据存储在所述数据处理层,所述模块数据包括相应模块的执行逻辑,所述应用界面层还显示有模块添加控件,所述模块添加控件用于向所述数据处理层导入第三方模块的模块数据,所述N个模块包括所述第三方模块,所述N为大于或等于1的正整数;
所述显示模块,还用于控制所述应用界面层响应于所述用户针对所述N个模块显示控件中一个或多个模块显示控件的第一操作,显示流程图,所述流程图指示所述一个或多个模块显示控件各自对应的模块之间的执行顺序;
运行模块,用于控制所述数据处理层响应于所述应用界面层显示的所述流程图,调用并运行所述一个或多个模块显示控件各自对应的模块的模块数据,得到所述流程图的数据处理结果,向所应用界面层返回所述数据处理结果。
在一种可能的实现方式中,所述装置还包括:
获取模块,用于控制所述应用界面层响应于针对所述模块添加控件的第二操作,获取用户通过所述模块添加控件导入的第三方模块的模块数据,将导入的第三方模块的模块数据发送至所述数据处理层;
检验模块,用于控制所述数据处理层在检验所述导入的第三方模块的模块数据满足参考规则的情况下,存储所述导入的第三方模块的模块数据,向所述应用界面层返回模块加载成功消息,所述模块加载成功消息指示成功加载第三方模块;
在一种可能的实现方式中,所述参考规则包括第三方模块的输入输出接口的设计方式和/或第三方模块的模块数据的封装方式;
其中,所述第三方模块的输入输出接口的设计方式包括所述第三方模块的输入数据和/或输出数据的格式,所述第三方模块的模块数据的封装方式指示所述第三方模块的模块数据在所述数据处理层的存储格式,所述存储格式包括动态链接库、静态链接库、可执行exe文件中任一种;
在一种可能的实现方式中,
所述显示模块,还用于控制所述应用界面层响应于所述针对所述模块添加控件的第三操作,显示模块配置文件,所述模块配置文件指示所述参考规则;
在一种可能的实现方式中,
所述显示模块,还用于控制所述应用界面层响应于所述用户针对所述N个模块显示控件中第一模块显示控件的第四操作,显示和所述第一模块显示控件对应的第一模块的模块配置界面,所述模块配置界面中包括多个模块配置控件,所述多个模块配置控件中任一模块配置控件用于指示所述用户对所述第一模块执行过程中的参数进行编辑;
所述装置还包括获取模块,用于控制所述应用界面层响应于针对所述任一模块配置控件的第五操作,获取用户通过所述任一模块配置控件编辑的参数,向所述数据处理层发送编辑后的参数;
更新模块,用于控制所述数据处理层基于所述编辑后的参数更新所述第一模块的模块数据;
其中,在所述流程图包括所述第一模块的情况下,所述数据处理层基于更新后的所述第一模块的模块数据更新所述流程图的数据处理结果,向所应用界面层返回更新后的数据处理结果;
在一种可能的实现方式中,在所述第一模块为第三方模块的情况下,用户通过所述模块添加控件导入的所述第一模块的模块数据中还包括模块配置界面文件,所述模块界面配置文件指示所述第一模块的模块配置界面的程序代码;
所述应用界面层显示的第一模块的模块配置界面是按照所述第一模块的模块数据中的模块配置界面文件显示的;
在一种可能的实现方式中,所述装置还包括:
生成模块,用于控制所述数据处理层基于所述流程图生成第一代码包,所述第一代码包指示所述流程图包括的各个模块的执行逻辑以及包括的各个模块之间的执行顺序;
所述显示模块,还用于控制所述数据处理层控制所述应用界面层显示所述第一代码包对应的第一代码控件,所述第一代码控件用于指示所述用户下载所述第一代码包,所述第一代码包支持导入第三方系统,并在所述第三方系统上运行后显示所述流程图;
在一种可能的实现方式中,
所述显示模块,还用于控制所述应用界面层显示运行界面显示控件,所述运行界面显示控件指示显示针对所述流程图的运行界面,所述运行界面用于显示所述流程图的运行信息,所述流程图的运行信息指示所述流程图运行过程中的中间数据;
所述显示模块,还用于控制所述应用界面层响应于针对所述运行界面显示控件的第六操作,显示所述运行界面,以使所述用户基于所述运行界面查看所述流程图的运行过程中的中间数据;
在一种可能的实现方式中,
所述显示模块,还用于控制所述应用界面层显示运行界面配置控件,所述运行界面配置控件指示显示运行界面配置界面,所述运行界面配置界面用于对所述运行界面上显示的内容进行配置;
所述显示模块,还用于控制所述应用界面层响应于针对所述运行界面配置控件的第七操作,显示所述运行界面配置界面,所述运行界面配置界面包括多个运行界面配置子控件,所述多个运行界面配置子控件中任一运行界面配置子控件对应有开启选项;
所述显示模块,还用于控制所述应用界面层响应于针对所述多个运行界面配置子控件中第一运行界面配置子控件的开启选项的第八操作,显示内容来源选项,响应于针对所述内容来源选项的第九操作,将所述第一运行界面配置子控件和所述流程图中的一个模块进行绑定;
其中,所述运行界面上显示的运行信息包括和所述第一运行界面配置子控件绑定的模块的数据;
在一种可能的实现方式中,所述装置还包括:
导出模块,用于控制所述数据处理层将所述运行界面的程序代码导出为第二代码包;
所述显示模块,还用于控制所述数据处理层控制所述应用界面层显示所述第二代码包对应的第二代码控件,所述第二代码控件用于指示所述用户下载所述第二代码包,所述第二代码包支持导入第三方系统,并在所述第三方系统上运行后显示所述运行界面;
在一种可能的实现方式中,所述数据处理层包括数据调度层以及功能模块层;
所述功能模块层中存储所述N个模块的模块数据;
所述运行模块,用于控制所述数据调度层按照所述流程图中所述一个或多个模块标识各自对应的模块之间的执行顺序,依次从所述功能模块层中调用并运行所述一个或多个模块标识各自对应的模块的模块数据,得到所述数据处理结果;
在一种可能的实现方式中,
所述显示模块,还用于控制所述应用界面层显示模块注册控件,所述应用界面层响应于所述用户通过所述模块注册控件从M个模块中选择的所述N个模块,显示所述N个模块显示控件,其中,所述数据处理层中存储有所述M个模块的模块数据,所述M为大于或等于所述N的正整数;
在一种可能的实现方式中,所述N个模块为所述数据处理层校验合法的模块,所述校验合法的模块是指所述用户有权限使用相应模块;
在一种可能的实现方式中,
所述显示模块,还用于控制所述应用界面层显示针对任一模块显示控件的调用控件,所述调用控件指示允许用户在第三方系统调用所述任一模块显示控件对应的模块;
所述显示模块,还用于控制所述应用界面层响应于针对所述调用控件的第十操作,显示所述任一模块显示控件所对应的模块的模块数据的接口链接;
所述装置还包括获取模块,用于控制所述应用界面层在检测到所述第三方系统发送的针对所述接口链接的数据调用请求时,基于所述接口链接从所述数据处理层获取所述任一模块显示控件所对应的模块的模块数据,将获取的模块数据发送至所述第三方系统。
另一方面,提供了一种视觉软件开发装置,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述视觉软件开发方法中的任一步骤。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述视觉软件开发方法中的任一步骤。
另一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述视觉软件开发方法中任一步骤。
本申请实施例提供的技术方案带来的有益效果至少包括:
本申请实施例提供了一种视觉软件开发系统。该视觉软件开发系统中的应用界面层用于显示模块添加控件,该模块添加控件用于向数据处理层导入第三方模块的模块数据,如此,应用界面层显示的N个模块显示控件对应的模块便可以包括第三方模块。因此,在本申请实施例中,用户可以随时基于业务需求通过该模块添加控件导入第三方模块,然后基于第三方模块通过应用界面层显示用户配置的流程图,该流程图即为用户配置的视觉软件,并通过数据处理层运行该流程图,从而完成视觉软件的开发流程。
由此可知,本申请实施例提供的视觉软件开发系统是一种通用的开放式视觉软件开发系统,该视觉软件开发系统允许用户基于不同的业务需求开发不同的第三方模块,并将开发的第三方模块挂载在本申请实施例提供的软件开发系统中,从而使得后续开发的视觉软件能够更加适应不同业务的个性化需求。如此,就无需针对不同类型的视觉软件配置不同的视觉软件开发系统,在本申请实施例提供的视觉软件开发系统上便可开发不同类型的视觉软件。
此外,即使业务需求或用户需求临时发生变化,通过本申请实施例提供的视觉软件开发系统用户可以临时开发新的第三方模块,然后将开发的新的第三方模块挂载在本申请实施例提供的软件开发系统中,从而使得后续开发的视觉软件能够亏快速适应用户最新的需求。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种视觉软件开发系统的架构示意图;
图2是本申请实施例提供的应用界面层显示的主界面的示意图;
图3是本申请实施例提供的一种流程图的示意图;
图4是本申请实施例提供的一种模块的示意图;
图5是本申请实施例提供的一种第三方模块的模块数据的格式示意图;
图6是本申请实施例提供的一种运行界面的配置过程和导出代码的示意图;
图7是本申请实施例提供的一种第三方模块的模块数据的格式示意图;
图8是本申请实施例提供的一种运行界面的配置过程和导出代码的示意图;
图9是本申请实施例提供的一种模块注册的流程示意图;
图10是本申请实施例提供的一种模块加载和模块注册的方法流程图;
图11是本申请实施例提供的一种配置流程图的方法流程图;
图12是本申请实施例提供的一种视觉软件开发装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
应当理解的是,本文提及的“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在对本申请实施例提供的视觉软件开发系统进行详细解释说明之前,先对本申请实施例涉及的应用场景进行详细解释说明。
目前,机器视觉的主要原理是:通过图像采集装置将被检测目标转换为图像信号,然后将图像信号进行专门的图像处理,基于图像处理结果分析得到被检测目标的特征信息,进而根据目标的特征信息确定针对目标的检测结果。
基于上述机器视觉的工作原理,目前机器视觉技术广泛应用在各种领域中。在工业技术中,通过机器视觉技术可以实现产品外形和表面缺陷的检测。比如,木材加工检测、金属表面检测、印刷电路板缺陷检查、焊缝缺陷自动识别等等。在医学领域,通过机器视觉技术可以辅助医生诊断人体病源的大小、形状和异常,从而为有效诊断提供证据。在交通监控技术领域,通过机器视觉技术可以实现对违章、逆行等车辆的车牌的自动识别。前述仅仅是对机器视觉技术的应用领域的示例说明,本申请实施例并不限定机器视觉技术具体应用领域。
视觉软件即为实现上述机器视觉技术的软件,也即是,通过视觉软件可以实现上述针对目标的具体检测功能。进一步地,为了便可开发人员快速开发视觉软件,目前在机器视觉技术中,开发人员可以使用图形化的流程图替代传统的语言代码来开发视觉软件。也即是,视觉软件可以通过流程图的方式图形化地显示出来,从而便于开发人员了解视觉软件的内部执行逻辑。
在上述视觉软件的流程图中,该流程图是由多个模块按照一定的连接关系连接而成,每个模块用于实现一个具体的子功能,各个模块之间的连接关系指示各个模块的执行顺序。因此,该流程图能够指示视觉软件的内部执行逻辑。
本申请实施例提供的视觉软件开发系统便应用于开发上述流程图化的视觉软件的场景中。目的在于提供一种通用的视觉软件开发系统,通过该通用的视觉软件开发系统开发人员还能根据业务需求个性化定制所需的视觉软件。
为了便于说明说明,在此先对本申请实施例涉及的视觉软件开发系统进行详细解释说明。
图1是本申请实施例提供的一种视觉软件开发系统的架构示意图。如图1所示,该视觉软件开发系统100包括应用界面层101和数据处理层102。
应用界面层101用于显示N个模块显示控件,N为大于或等于1的正整数,N个模块显示控件分别和N个模块对应,N个模块各自的模块数据存储在数据处理层102,模块数据包括相应模块的执行逻辑。应用界面层101还用于响应于用户针对N个模块显示控件中一个或多个模块显示控件的第一操作,显示流程图,流程图指示一个或多个模块显示控件各自对应的模块之间的执行顺序。数据处理层102用于响应于应用界面层101显示的流程图,调用并运行一个或多个模块显示控件各自对应的模块的模块数据,得到流程图的数据处理结果,向所应用界面层101返回数据处理结果。
上述第一操作可以为拖拽操作、点击操作等等。通过应用界面层显示的N个模块对应的模块显示控件,用户(比如开发人员)可以配置流程图,该流程图即为满足某个特定业务需求的视觉软件。流程图中包括N个模块中的一个或多个模块,以及这一个或多个模块的连接关系。流程图中模块之间的连接关系指示模块之间的执行顺序。比如,流程图中模块A指向模块B,则数据处理层则先基于模块A的模块数据执行相关逻辑,然后再基于模块B的模块数据执行相关逻辑。
用户在应用界面层配置流程图的过程中,数据处理层便可基于应用界面层显示的流程图调用并运行流程图中模块的模块数据,从而得到流程图的数据处理结果,以完成对配置的流程图的开发流程。
图2是本申请实施例提供的应用界面层显示的主界面的示意图。如图2所示,该主界面中包括菜单区、视觉工具区、流程编辑区、图形渲染区以及文本显示区等功能分区。
其中,菜单区用于显示针对主界面的各种控件,比如包括界面视图控件、页面分区配置控件等等。视觉工具区用于显示各个模块显示控件。流程编辑区用于显示用户配置的流程图。用户可以通过拖拽的方式将视觉工具区中的模块显示控件显示在流程编辑区以配置流程图。图形渲染区用于显示流程图中某个模块的图形处理结果,该图形处理结果以图示方式给出。文本显示区用于显示流程图中某个模块的数据处理结果,该数据处理结果以文本方式给出。比如,针对流程编辑区中显示的流程图,当用户点击该流程图中某个模块时,图形渲染区可以显示流程图中该模块的图形处理结果,文本显示区可以显示流程图中该模块的文本格式的数据处理结果。
需要说明的是,前述图形渲染区和文本显示区均是针对某个模块的处理结果的结果显示区,本申请实施例并不限定某个模块的处理结果的显示方式,可以仅仅以图示方式显示,也可以仅仅以文本方式显示,也可以同时以图示方式和文本方式显示。
基于图2所示的主界面可知,本申请实施例提供的应用界面层采用图形化交互设计,通过拖拽视觉工具区中的模块显示控件便可生成流程图,从而使得视觉软件采用图示化流程图方式实现。
图3是本申请实施例提供的一种流程图的示意图。如图3所示,图3左侧的常用工具即为视觉工具区中各个模块显示控件,图3右侧即为用户配置的流程图,该流程图中包括4个模块,分别为图像源1模块、快速特征分析模块、位置修正模块、以及圆查找模块。其中,图像源1模块指向快速特征分析模块,快速特征分析模块指向位置修正模块、位置修正模块指向圆查找模块。该流程图所指示的视觉软件方案为:针对图像源1、先进行快速特征分析、然后再进行位置修正,最后进行圆查找。这4个模块均是图3左侧所示的常用工具分区中模块显示控件对应的模块。
需要说明的是,图2以及图3所示的主界面仅仅是应用界面层提供的主界面的一种示例。主界面显示的功能分区以及不同功能分区的组合方式均可以由用户个性化定制,本申请实施例对此不作详细说明。
此外,图2以及图3中显示的控件比如模块显示控件可以具有独立封装、显示可配置等特点。后续实施例中涉及的其他控件均可以具有此特点,后续不再重复说明。
其中,独立封装是指各个控件对应的数据独立封装在数据处理层。各个控件之间没有数据交互,所有控件的对应的数据都面向数据处理层。其中,各个控件对应的数据包括应用界面层显示的控件的显示尺寸、显示颜色等信息,此时当数据处理层中的控件对应的数据发生变化时,应界面层显示的该控件便会随之发生变化。如此,各个控件可以独自使用,避免控件之间的相互影响。
显示可配置是指应用界面层显示的各个控件的显示位置、显示大小、以及显示颜色等显示信息均可以由用户基于自身需求修改。从而使得应用界面层显示的控件尽可能满足用户的需求。比如,用户可以通过鼠标拖拽某个控件,应用界面层响应于针对该控件的鼠标拖拽事件,修改该控件的显示位置,并将修改后的该控件的显示位置保存到该控件对应的配置文件中。
通过上述“显示可配置”特点,应用界面层显示的控件的显示大小、显示位置、显示颜色都可修改。可选地,每个控件都有最小显示尺寸,以避免显示尺寸太小,从而影响该控件在主界面上的布局。
在本申请实施例中,在图1所示的系统中,应用界面层101还用于显示模块添加控件,该模块添加控件用于向数据处理层102导入第三方模块的模块数据。由于第三方模块可以是用户基于业务需求配置的任意功能数据包,因此,基于图1所示的系统,用户可以随时基于业务需求通过应用界面层显示的模块添加控件导入第三方模块,然后用户在应用界面层便可配置包括第三方模块的流程图,并通过数据处理层运行该流程图,从而完成视觉软件的开发流程。也即是,基于图1所示的系统,用户可以随时基于业务需求定制视觉软件。
在一种可能的实现方式中,当应用界面层检测到针对该模块添加控件的操作时,便可显示模块加载窗口,然后获取用户通过该模块加载窗口导入的第三方模块的模块数据,将模块数据存储至数据处理层。后续便可将第三方模块以第三方模块显示控件的方式显示在应用界面层。也即是,本申请实施例提供的系统可以支持将第三方开发者开发的第三方模块加入到应用界面层的主界面之中。前述将第三方模块以第三方模块显示控件的方式显示在应用界面层可以通过模块注册的方式实现,关于模块注册的相关内容将在后续实施例中详细说明,在此先不展开阐述。
此外,在往主界面上添加数据处理层的模块对应的模块显示控件时,还可以在主界面的配置文件中增加针对该添加的模块的描述信息。该描述信息包括但不限于模块名称,模块图标(icon),模块对应的模块数据的存储路径等信息。如此,应用界面层在主界面上显示该模块对应的模块显示控件时,还可以显示该模块的模块名称、模块图标等信息。
由此可知,本申请实施例提供的视觉软件开发系统是一种通用的开放式视觉软件开发系统,该视觉软件开发系统允许用户基于不同的业务需求开发不同的第三方模块,并将开发的第三方模块挂载在本申请实施例提供的软件开发系统中,从而使得后续开发的视觉软件能够更加适应不同业务的个性化需求。如此,就无需针对不同类型的视觉软件配置不同的视觉软件开发系统,在本申请实施例提供的视觉软件开发系统上便可开发不同类型的视觉软件。
此外,即使业务需求或用户需求临时发生变化,通过本申请实施例提供的视觉软件开发系统用户可以临时开发新的第三方模块,然后将开发的新的第三方模块挂载在本申请实施例提供的软件开发系统中,从而使得后续开发的视觉软件能够快速适应用户最新的需求。
综上所述,本申请实施例提出了一种开放框架的视觉软件开发系统,该视觉软件开发系统采用开放式框架设计,支持用户根据实际应用需求基于本框架进行多个层次的二次开发,因此该视觉软件开发系统兼具灵活性和易用性。
此外,在图1所示的系统中,如图1所示,数据处理层还可以进一步包括数据调度层和功能模块层。这种场景下,前述数据处理层的功能分散到数据调度层和功能模块层上,以便于对各个模块进行有效管理。其中,功能模块层中存储N个模块的模块数据,数据调度层用于:按照流程图中一个或多个模块标识各自对应的模块之间的执行顺序,依次从功能模块层中调用并运行一个或多个模块标识各自对应的模块的模块数据,得到数据处理结果。
也即是,功能模块层用于封装各个模块的模块数据,并对外提供各个模块的输入输出接口。数据调度层用于基于各个模块的输入输出接口调用模块的模块数据,然后实现流程图中各个模块的功能。比如,当数据调度层需要调用功能模块层中的模块A时,数据调度层通过模块A的输入接口向功能模块层输入模块A运行时所需的数据,然后功能模块层基于输入的数据执行模块A的执行逻辑,得到结果数据,并将结果数据通过模块A的输出接口发送至数据调度层。至此,数据调度层完成了对功能模块层中模块A的调用过程。
需要说明的是,为了提高功能模块层中各个模块的数据的安全性,功能模块层中各个模块的模块数据是独立封装的。也即是,功能模块层中各个模块之间没有通信。统一由数据调度层来调用功能模块层中的数据。图4是本申请实施例提供的一种数据调度层调用功能模块层中各个模块的模块数据的示意图。如图4所示,数据调度层调度模块一、模块二以及模块三之间是相互独立,调用各个模块之间并没有交叉。
在数据处理层包括数据调度层和功能模块层的场景下,数据调度层在运行流程图之前,可以先将流程图中各个模块调用的顺序关系记录在一定的数据结构中。该数据结构比如可以为树结构或者图结构。然后数据调度层运行流程图时按照一定的顺序遍历这个数据结构,依次调用功能模块层各个模块的接口,从而完成对流程图的开发流程。
此外,本申请实施例涉及的模块可以为实现任意功能的模块。该模块可以包括算法模块、图像采集模块、数据运算模块、外设控制模块、通信模块等。本申请实施例对此不做限定。
图5是本申请实施例提供的一种模块的示意图。如图5所示,本申请实施例涉及的模块可以包括四大类,第一类为外设硬件对应的模块,比如图像采集模块、相机控制模块、光源控制模块等。第二类为图像处理相关的模块,比如模板匹配模块、几何查找模块、读码模块、OCR(optical character recognition,光学字符识别)模块等等。第三类为数据处理相关的模块,比如数据处理模块、逻辑运算模块、数据统计模块等等。第四类为通信相关的模块。
上述用于对本申请实施例提供的视觉软件开发系统的关键功能进行解释说明,下面对图1所示的系统的其他功能进一步详细说明。需要说明的是,下述几个功能仅仅是对本申请实施例涉及的功能示例说明,并不构成对图1所示的系统的功能的限定。
1、视觉软件开发系统支持第三方模块的模块数据的自主设计和开发。
由于第三方模块并不是系统本身已经有的模块,而是由第三方自主设计和开发的模块,为了保证导入的第三方模块能够成功挂载到本申请实施例提供的系统上,第三方模块的模块数据需要满足本申请实施例提供的系统指定的规则。
因此,在一种可能的实现方式中,应用界面层用于:响应于针对模块添加控件的第二操作,获取用户通过该模块添加控件导入的第三方模块的模块数据,将导入的第三方模块的模块数据发送至数据处理层。这种场景下,数据处理层用于:在检验导入的第三方模块的模块数据满足参考规则的情况下,存储导入的第三方模块的模块数据,向应用界面层返回模块加载成功消息,模块加载成功消息指示成功加载第三方模块。
相应地,在检验导入的第三方模块的模块数据不满足参考规则的情况下,数据处理层并不会存储导入的第三方模块的模块数据,而是向应用界面层返回模块加载失败消息,该模块加载失败消息指示当前加载第三方模块失败了。
也即是,在开发人员向本系统导入第三方模块时,系统中的数据处理层会对第三方模块的模块数据进行检验,只有在检验导入的第三方模块的模块数据满足参考规则的情况下,才会将第三方模块的模块数据成功加载至数据处理层。从而保证挂载在申请实施例提供的视觉软件开发系统下的第三方模块能够和视觉软件开发系统自身已有的模块相兼容。
另外,为了便于开发人员快速了解到导入到本系统中第三方模块的模块数据需要满足的规则,系统可以对外说明第三方模块的模块数据需要满足的参考规则。因此,在一种可能的实现方式中,图1中的应用界面层还用于:响应于针对模块添加控件的第三操作,显示模块配置文件,该模块配置文件指示前述的参考规则。
上述第三操作可以为点击操作、语音操作等等。比如,第二操作为右键双击操作,则当用户通过鼠标右键双击主界面上显示的模块添加控件时,应用界面层便可显示模块配置文件。该模块配置文件指示导入的第三方模块的模块数据需满足的规则,也即是,用户通过查阅该模块配置文件,便可了解到当前需要导入的第三方模块的模块数据需要满足的规则。
可选地,开发第三方模块的开发人员还可以通过其他途径获知导入到本系统中第三方模块的模块数据需要满足的参考规则,本申请实施例对此不做限定。比如,开发人员可以通过该本申请实施例提供的视觉软件开发系统的相关纸质文档中获知这些参考规则。
具体地,上述参考规则可以包括第三方模块的输入输出接口的设计方式和/或第三方模块的模块数据的封装方式。其中,第三方模块的输入输出接口的设计方式包括输入数据和/或输出数据的格式。其中,输入数据或输出数据的格式具体可以为包括数据的灵敏度等信息。第三方模块的模块数据的封装方式指示模块在数据处理层中的存储格式,该存储格式可以包括动态链接库、静态链接库、exe(executable,可执行)文件等等中的任一种。
通过上述模块添加控件的相关功能,可以实现将第三方开发的模块加载到数据处理层。具体地,在数据处理层包括数据调度层和功能模块层的场景下,将第三方开发的模块加载到数据处理层具体是指:将第三方开发的模块的模块数据加载在功能模块层。其中,可以将第三方开发的模块的模块数据封装成动态库(或可执行程序)的形式存储在功能模块层,功能模块层可以生成第三方开发的模块的句柄(该句柄用于唯一标识该模块),以便于后续数据调度层通过该句柄调用该模块。
此外,为了进一步开放模块,图1所示的系统还可以支持将已经加载的模块删除,也即是释放模块。具体实现方式在此不再详细说明。图6是本申请实施例提供的一种模块加载和模块释放的示意图。如图6所示,数据调度层可以响应于用户在应用界面层执行的操作将某个模块加载到功能模块层,也可以响应于用户在应用界面层执行的操作将某个模块从功能模块层删除,也即是释放模块。
另外,前述内容中的第一操作至第三操作均是用户对相应控件触发的用户操作,该用户操作可以为点击操作、语音操作、或滑动操作等等。第一操作至第三操作仅仅用于区分不同的操作,并不构成对具体的用户操作的限定。后续涉及的第四操作至第十操作均可以参考该解释,后续不再重复说明。
2、视觉软件开发系统支持用户对任意模块的模块数据的二次开发。
对于已经挂载在本申请提供的系统下的模块,为了保证模块能够随时应对变化的业务需求,该视觉软件开发系统还支持用户对系统中已经挂载的模块的模块数据的二次开发,以使二次开发的模块能够符合最新的业务需求。
因此,在一种可能的实现方式中,该应用界面层还用于:响应于用户针对N个模块显示控件中第一模块显示控件的第四操作,显示和第一模块显示控件对应的第一模块的模块配置界面,模块配置界面中包括多个模块配置控件,任一模块配置控件用于指示用户对第一模块执行过程中的参数进行编辑。其中,第一模块显示控件为N个模块显示控件中任一个。这种场景下,应用界面层还用于:响应于针对任一模块配置控件的第五操作,获取用户通过任一模块配置控件编辑的参数,向数据处理层发送编辑后的参数。数据处理层用于:基于编辑后的参数更新第一模块的模块数据。通过该过程,便可实现用户对任一模块的模块数据进行修改,以使修改后的模块数据满足最新的业务需求。
此外,上述用户对任意模块的模块数据进行的二次开发的时机可以为:在用户基于应用界面层配置完流程图之后,对流程图中包括的某个模块的模块数据进行二次开发。
这种场景下,假设用户是对流程图中包括的第一模块的模块数据进行二次开发,此时数据处理层还用于:基于更新后的第一模块的模块数据更新流程图的数据处理结果,并向所应用界面层返回更新后的数据处理结果。
也即是,在用户基于应用界面层配置完流程图之后,如果用户对流程图中包括的某个模块的模块数据进行二次开发,那么视觉软件开发系统会自动基于更新后的模块数据更新该流程图的数据处理结果。
上述第一模块执行过程中的参数可以包括输入参数、输出参数、以及执行过程中的其他关联参数等等。模块配置控件可以包括字符配置控件,整形配置控件,浮点数配置控件,枚举配置控件等等。
上述模块配置界面可以是系统针对所有模块预先配置好的界面,也即是该模块配置界面为系统默认的模块配置界面。在一种可能的实现方式中,系统预先存储有针对所有模块的模块配置界面文件,该模块配置界面文件用于指示模块配置界面的相关内容,应用界面层加载该模块配置界面文件后便可显示默认的模块配置界面。比如,上述第三操作为双击操作,当双击主界面上显示的第一模块对应的模块显示控件时,由应用界面层根据XML(extensible markup language可扩展标记语言)定义的默认模块配置界面文件,动态生成一个系统默认的模块配置界面。
可选地,如果上述用户进行二次开发的第一模块为第三方模块,该第一模块的模块配置界面还可以由第三方自主设计。此时,在向系统导入第一模块的模块数据时,导入的第一模块的模块数据还可以包括第三方针对第一模块自定义的模块配置界面文件,该模块配置界面文件用于指示第一模块对应的模块配置界面的程序代码。此时,应用界面层显示的第一模块的模块配置界面是按照第一模块的模块数据中的模块配置界面文件显示的。
其中,第三方自主设计的模块配置界面文件同样可以是XML定义的配置文件。
此外,在模块配置界面文件中第三方还可以指定特定的模块配置控件库中模块配置控件的名称。此时第三方模块的模块数据中还可以包括第三方提供的特定的模块配置控件库。这种场景下,应用界面层在基于第三方提供的模块配置界面文件显示模块配置界面时,显示的模块配置界面中包括特定的模块配置控件库中模块配置控件,从而便于用户基于第三方提供的模块配置控件库中的模块配置控件完成第三方模块的配置工作。
其中,应用界面层为第三方提供的模块配置控件提供获取或设置参数的接口,以便用户基于这些接口对第三方提供的模块配置控件的相关参数进行调用或修改。其中,获取或设置参数的接口可以键值(Key-Value)的形式工作,从而提供整数型(int),浮点型(float),字符串型(string)等基本类型的模块配置控件的支持。另外提供获取或设置参数的接口还可以以二进制的形式工作,由于二进制的工作形式允许对大块数据进行调用,因此获取或设置参数的接口以二进制形式工作时,可以实现大块数据的参数进行调用或修改。
综上所述,在本申请实施例中,对于系统中默认的模块(本申请实施例统称为原生模块)或第三方模块,用户通过第三操作触发模块时就可以出现系统上已经配置好的模块配置界面,这个配置界面显示有输入、输出、运行参数等模块配置控件,从而便于用户对模块的相关参数进行修改。可选地,对于第三方模块,第三方还可以导入一个模块配置界面文件,相当于模块配置界面是由第三方提供。
图7是本申请实施例提供的一种第三方模块的模块数据的格式示意图。如图7所示,数据处理层包括数据调度层和功能模块层。其中,应用界面层的主界面的视觉工具区显示有针对原生模块的模块显示控件,该模块显示控件显示为原生模块的图标。视觉工具区还显示有针对第三方模块的模块显示控件,该模块显示控件显示为第三方模块的图标。显示这样的界面对应的XML如图7所示,也即是,用于显示的这两个模块的模块显示控件的代码如下:
Figure BDA0002966369550000241
此外,如图7所示,第三方模块的模块数据存储在功能模块层。第三方模块的模块数据包括针对第三方模块的模块配置界面文件、模块动态库以及模块配置控件库。其中,图7中,第三方模块的模块数据的代码如下:
disanfangmodule.xml/是指模块配置界面文件
disanfangmodule.dll/是指模块动态库
disanfangmoduleConfig.dll/是指模块配置控件库。
其中,通过模块动态库可以获取第三方模块的内部执行逻辑。模块配置控件库以及模块配置界面文件已经在前述实施例中详细说明,在此不再重复说明。
需要说明的是,为了能够兼容图1所示的系统,第三方导入的模块配置界面文件和系统默认的模块配置界面文件应该满足同一规则,以使第三方提供的模块配置界面和本申请实施例默认的模块配置界面兼容。该部分内容可以通过前述模块配置文件所指示的规则的相关内容来实现,也即是,模块配置文件中包括的规则包含第三方导入的模块配置界面文件需要满足的规则,在此不再详细说明。
3、视觉软件开发系统支持将流程图转换为底层代码,以便开发人员进一步进行二次开发。
在用户配置流程图之后,为了便于其他用户需要对该流程图所指示的视觉软件进一步进行二次开发,本申请实施例提供的系统还支持流程图转换为底层代码,以便开发人员进一步进行二次开发。
因此,在一种可能的实现方式中,数据处理层还用于基于流程图生成第一代码包,第一代码包指示流程图包括的各个模块的执行逻辑以及包括的各个模块之间的执行顺序,也即是,第一代码包指示流程图的内部执行逻辑。这种场景下,数据处理层还用于控制应用界面层显示第一代码包对应的第一代码控件,第一代码控件用于指示用户下载第一代码包,第一代码包支持导入第三方系统,并在第三方系统上运行后显示流程图。
其中,数据处理层在生成第一代码包之后,还可以将第一代码包存储在某个指定位置,比如存储在功能模块层中。当应用界面层检测到针对第一代码控件的选择操作时,便可获取该第一代码包,然后将第一代码包下载到指定位置,以便用户将第一代码包导入第三方系统,从而在第三方系统上运行该第一代码包后,在第三方系统上显示前述在本申请实施例提供的系统上配置的流程图。另外,进一步地,用户还可以在第三方系统上基于第一代码包对该流程图进行二次开发,以生成新的视觉软件。
也即是,本申请实施例还提供了一种导出模式,通过该导出模式可以将流程图中模块调用以及相关的数据存取关系变成代码。该代码可以供客户借鉴参考或集成到他们自己的软件中。
此外,数据处理层在生成第一代码包之后,还可以将第一代码包发送至应用界面层,由应用界面层显示第一代码包,以便于开发人员在本申请实施例提供的系统上对第一代码包进行在线修改。这种场景下,应用界面层在检测到针对第一代码包的修改指令后,还可以基于用户对第一代码包的修改更新显示的流程图。
4、视觉软件开发系统提供运行界面,以便开发人员通过运行界面了解视觉软件运行过程涉及的关键图片、图形、或者文字等等。
由于流程图中仅仅显示基本的流程,对于视觉软件后台运行信息并不会显示,因此,在本申请实施例中,为了便于开发人员了解视觉软件运行过程,针对配置的流程图,视觉软件开发系统还支持显示该流程图的后台运行信息。在本申请实施例中,流程图的运行信息指示流程图运行过程中的中间数据。
因此,在一种可能的实现方式中,图1所示的系统中的应用界面层还用于显示运行界面显示控件,运行界面显示控件指示显示针对流程图的运行界面,运行界面用于显示流程图的运行信息,流程图的运行信息指示流程图运行过程中的中间数据。这种场景下,应用界面层用于响应于针对运行界面显示控件的第六操作,显示运行界面,以使用户基于运行界面查看流程图的运行过程中的中间数据。
比如,在用户配置流程图之后,当检测到针对该运行界面显示控件的点击操作时,应用界面层则显示一个运行界面,在该运行界面上显示该流程图的运行信息。该运行界面可以是当前主界面上的一个功能分区。
此外,上述运行界面中显示的具体内容可以为系统默认的信息。
可选地,运行界面中显示的具体内容也可以为用户基本业务需求指定要求显示的,此时应用界面层还用于:显示运行界面配置控件,运行界面配置控件指示显示运行界面配置界面,运行界面配置界面用于对运行界面上显示的内容进行配置。这种场景下,应用界面层还用于:响应于针对运行界面配置控件的第七操作,显示运行界面配置界面,该运行界面配置界面用于用户配置运行界面需要显示哪些信息以及显示的信息的来源。
在一种可能的实现方式中,运行界面配置界面包括多个运行界面配置子控件,多个运行界面配置子控件中任一运行界面配置子控件对应有开启选项。此时,应用界面层还用于:响应于针对多个运行界面配置子控件中第一运行界面配置子控件的开启选项的第八操作,显示内容来源选项,响应于针对内容来源选项的第九操作,将第一运行界面配置子控件和流程图中的一个模块进行绑定。在将第一运行界面配置子控件和流程图中的一个模块进行绑定之后,运行界面上便可显示和第一运行界面配置子控件对应的显示信息,该显示信息来源于和第一运行界面配置子控件绑定的模块的数据。
也即是,图1所示的系统提供了一个可以编辑的运行界面,以便于用户根据实际应用需要设计流程图的运行界面。如此,客户在做视觉软件时,就可以将视觉软件中涉及的某些关键图片,图形,文字通过运行界面呈现出来。
上述运行界面配置子控件可以包括图像控件、文本显示框、参数设置框、状态灯、按钮、表格等等。在配置运行界面时,通过这些运行界面配置子控件配置运行界面上需要显示哪些信息,然后将需要显示的信息与流程图中的模块的模块数据进行绑定,也即是,指示显示的信息的来源,从而配置出一个符合业务需求的运行界面。
此外,在用户配置运行界面之后,为了便于其他用户需要对该运行界面进一步进行二次开发,本申请实施例提供的系统还支持将运行界面转换为底层代码,以便开发人员进一步进行二次开发。
因此,在一种可能的实现方式中,数据处理层还用于将运行界面的程序代码导出为第二代码包。此时,数据处理层还用于控制应用界面层显示第二代码包对应的第二代码控件,第二代码控件用于指示用户下载第二代码包,第二代码包支持导入第三方系统,并在第三方系统上运行后显示该运行界面。
其中,数据处理层在生成第二代码包之后,还可以将第二代码包存储在某个指定位置,比如存储在功能模块层中。然后,当应用界面层检测到针对第二代码控件的选择操作时,便可获取该第二代码包,然后将第二代码包下载在指定位置,以便用户将第二代码包导入第三方系统,并在第三方系统上运行后显示前述在本申请实施例提供的系统上配置的运行界面。此外,进一步地,用户还可以在第三方系统中基于第二代码包对视觉软件进行二次开发,以生成新的运行界面。
由此可知,在本申请实施例中,可以将运行界面翻译成代码,从而形成一份基于界面开发SDK(software development kit,软件开发工具包)的导出代码工程,让客户可以基于该工程继续开发其它功能,或将视觉部分集成到他们的软件之中。也即是,通过将运行界面翻译成代码的方式,以实现运行界面向客户开放。
图8是本申请实施例提供的一种运行界面的配置过程和导出代码的示意图。图8上面的方框中指示配置的运行界面,如图8所示,该运行界面中用于显示图像,该图像为相机采集图像后经过圆查找处理后的图像,该运行界面中显示有相机的连接状态,该运行界面中还显示有针对相机采集的图像执行圆查找后确定的圆半径等等。
其中,运行界面上显示的图像是依据相机模块执行后的数据以及圆查找模块执行后的数据确定的。执行圆查找后确定的圆半径是根据圆查找模块执行后的数据确定的。此外,相机连接状态是依据相机模块执行过程中的数据确定。此外,运行界面上还可以显示单次运行或多次运行,单次运行指示只运行一次该流程图,多次运行指示运行多次该流程图。前述运行界面上显示的内容以及显示的内容的来源均可以通过前述的运行界面配置界面上的相关运行界面配置子控件来实现,在此不再一一举例说明。
图8最下方的虚线方框中指示显示的运行界面对应的代码,该代码是以文本方式显示,也即是通过该代码客户可以在自己的软件中的显示图8上方的运行界面,从而实现运行界面的对外开放。
5、视觉软件开发系统支持模块的注册和合法校验。
为了提高本申请实施例提供的视觉软件开发系统的通用性和专业性,在本申请实施例中,数据处理层可以存储有海量模块的模块数据,用户在使用本申请实施例提供的系统中,只需要从海量模块中选择当前业务所需要的模块加载在应用界面层即可。也即是,各个客户可以基于自身的业务需求从海量模块中选择注册部分模块,以便于开发符合自身业务需求的流程图,同时还能减少系统应用界面层的数据存储和处理压力。
因此,在一种可能的实现方式中,数据处理层用于存储M个模块的模块数据,M为大于或等于N的正整数。此时,应用界面层还用于显示模块注册控件,应用界面层用于响应于用户通过模块注册控件从M个模块中选择的N个模块,显示N个模块显示控件。
也即是,在系统初始化时,用户可以通过该模块注册控件选择部分模块注册至应用界面层。如此,应用界面层无需显示数据处理层的全部模块,以便于简化当前应用界面层显示的主界面。
此外,为了提高模块数据的安全性,避免恶意用户随意更改模块对应的模块数据,注册至应用界面层的模块是合法校验通过的模块。也即是,图1所示的应用界面层上显示的N个模块显示控件对应的N个模块为数据处理层校验合法的模块。其中,校验合法的模块是指用户有权限使用相应模块。
这种场景下,对于系统的数据处理层中配置的各个模块,可以预先配置各个模块的允许权限,该允许权限指示允许哪些用户能够使用相应模块。如此,用户在通过上述方式注册某个模块时,系统会对该用户的权限进行校验,如果该用户不在该模块的允许权限内,则系统会拒绝该用户注册该模块。
图9是本申请实施例提供的一种模块注册的流程示意图。如图9所示,在系统初始化后,如果基于应用界面层上用户的操作,应用界面层检测到用户当前需要注册某个模块,则应用界面层会向数据调度层发送注册请求。数据调度层接收到该注册请求后,校验用户的权限,如果校验通过,则将该模块添加到注册的模块列表中,并向应用界面层发送注册通过的结果,以使应用界面层在注册通过时显示针对该模块的模块显示控件。相应地,如果校验没有通过,向应用界面层发送注册失败的结果,此时应用界面层则不会显示针对该模块的模块显示控件。
需要说明的是,图9所示的校验流程是在注册模块的时候实现的,可选地,该校验流程也可以在图6所示的模块加载过程中实现,在此不再详细说明。
6、视觉软件开发系统支持第三方调用本系统下挂载的模块。
在本申请实施例中,视觉软件开发系统还可以允许客户将本系统下挂载的模块调用到其他软件中,从而便于客户基于本系统下挂载的模块快速开发其他模块。因此,在一种可能的实现方式中,应用界面层还用于:显示针对任一模块显示控件的调用控件,调用控件指示允许用户在第三方系统调用任一模块显示控件对应的模块。
这种场景下,应用界面层还用于:响应于针对调用控件的第十操作,显示任一模块显示控件所对应的模块的模块数据的接口链接。应用界面层还用于:在检测到第三方系统发送的针对接口链接的数据调用请求时,基于接口链接从数据处理层获取任一模块显示控件所对应的模块的模块数据,将获取的模块数据发送至第三方系统。
也即是,显示针对任一模块显示控件的调用控件之后,当应用界面层检测到针对该调用控件的选择操作时,便可提供该模块对应的模块数据的接口链接,以便于客户在其他软件中基于该链接调用该模块。
综上所述,本申请实施例提供了一种视觉软件开发系统。该视觉软件开发系统中的应用界面层用于显示模块添加控件,该模块添加控件用于向数据处理层导入第三方模块的模块数据,如此,应用界面层显示的N个模块显示控件对应的模块便可以包括第三方模块。因此,在本申请实施例中,用户可以随时基于业务需求通过该模块添加控件导入第三方模块,然后基于第三方模块通过应用界面层显示用户配置的流程图,该流程图即为用户配置的视觉软件,并通过数据处理层运行该流程图,从而完成视觉软件的开发流程。
由此可知,本申请实施例提供的视觉软件开发系统是一种通用的开放式视觉软件开发系统,该视觉软件开发系统允许用户基于不同的业务需求开发不同的第三方模块,并将开发的第三方模块挂载在本申请实施例提供的软件开发系统中,从而使得后续开发的视觉软件能够更加适应不同业务的个性化需求。如此,就无需针对不同类型的视觉软件配置不同的视觉软件开发系统,在本申请实施例提供的视觉软件开发系统上便可开发不同类型的视觉软件。
此外,即使业务需求或用户需求临时发生变化,通过本申请实施例提供的视觉软件开发系统用户可以临时开发新的第三方模块,然后将开发的新的第三方模块挂载在本申请实施例提供的软件开发系统中,从而使得后续开发的视觉软件能够亏快速适应用户最新的需求。
基于上述提供的视觉软件开发系统的功能,本申请实施例还提供了一种视觉软件开发方法,该方法应用于视觉软件开发系统,视觉软件开发系统包括应用界面层和数据处理层。另外,基于前述系统相关内容可知,本申请实施例提供的系统的功能可以具体包括模块加载、模块注册以及配置流程图等三个方面。下面通过两个实施例分别对上述三个方面进行解释说明。
图10是本申请实施例提供的一种模块加载和模块注册的流程示意图。如图10所示,该方法包括如下几个步骤。
步骤1001:应用界面层响应于针对模块添加控件的第二操作,获取用户通过模块添加控件导入的第三方模块的模块数据,将导入的第三方模块的模块数据发送至数据处理层。
步骤1002:数据处理层在检验导入的第三方模块的模块数据满足参考规则的情况下,存储导入的第三方模块的模块数据,向应用界面层返回模块加载成功消息,该模块加载成功消息指示成功加载第三方模块。
步骤1003:应用界面层显示模块注册控件,应用界面层响应于用户通过模块注册控件从M个模块中选择的N个模块,显示N个模块显示控件,其中,数据处理层存储有M个模块的模块数据,M为大于或等于N的正整数。
在基于图10所示的实施例完成模块加载和模块注册之后,便可在本申请实施例提供的系统上配置流程图,从而实现视觉软件的开发。图11是本申请实施例提供的一种配置流程图的方法流程图,如图11所示,该方法包括如下几个步骤:
步骤1101:应用界面层显示N个模块显示控件和模块添加控件,N个模块显示控件分别和N个模块对应,N个模块各自的模块数据存储在数据处理层,模块数据包括相应模块的执行逻辑,应用界面层还显示有模块添加控件,该模块添加控件用于向数据处理层导入第三方模块的模块数据,N个模块包括第三方模块,N为大于或等于1的正整数。
步骤1102:应用界面层响应于用户针对N个模块显示控件中一个或多个模块显示控件的第一操作,显示流程图,该流程图指示一个或多个模块显示控件各自对应的模块之间的执行顺序。
步骤1103:数据处理层响应于应用界面层显示的流程图,调用并运行一个或多个模块显示控件各自对应的模块的模块数据,得到流程图的数据处理结果,向应用界面层返回该数据处理结果。
在图10以及图11提供的方法的基础上,在一种可能的实现方式中,参考规则包括第三方模块的输入输出接口的设计方式和/或第三方模块的模块数据的封装方式;
其中,第三方模块的输入输出接口的设计方式包括第三方模块的输入数据和/或输出数据的格式,第三方模块的模块数据的封装方式指示第三方模块的模块数据在数据处理层的存储格式,存储格式包括动态链接库、静态链接库、可执行exe文件中任一种;
在一种可能的实现方式中,该方法还包括:
应用界面层响应于针对模块添加控件的第三操作,显示模块配置文件,模块配置文件指示参考规则;
在一种可能的实现方式中,该方法还包括:
应用界面层响应于用户针对N个模块显示控件中第一模块显示控件的第四操作,显示和第一模块显示控件对应的第一模块的模块配置界面,模块配置界面中包括多个模块配置控件,多个模块配置控件中任一模块配置控件用于指示用户对第一模块执行过程中的参数进行编辑;
应用界面层响应于针对任一模块配置控件的第五操作,获取用户通过任一模块配置控件编辑的参数,向数据处理层发送编辑后的参数;
数据处理层基于编辑后的参数更新第一模块的模块数据;
其中,在流程图包括第一模块的情况下,数据处理层基于更新后的第一模块的模块数据更新流程图的数据处理结果,向所应用界面层返回更新后的数据处理结果;
在一种可能的实现方式中,在第一模块为第三方模块的情况下,用户通过模块添加控件导入的第一模块的模块数据中还包括模块配置界面文件,模块界面配置文件指示第一模块的模块配置界面的程序代码;
应用界面层显示的第一模块的模块配置界面是按照第一模块的模块数据中的模块配置界面文件显示的;
在一种可能的实现方式中,该方法还包括:
数据处理层基于流程图生成第一代码包,第一代码包指示流程图包括的各个模块的执行逻辑以及包括的各个模块之间的执行顺序;
数据处理层控制应用界面层显示第一代码包对应的第一代码控件,第一代码控件用于指示用户下载第一代码包,第一代码包支持导入第三方系统,并在第三方系统上运行后显示流程图;
在一种可能的实现方式中,该方法还包括:
应用界面层显示运行界面显示控件,运行界面显示控件指示显示针对流程图的运行界面,运行界面用于显示流程图的运行信息,流程图的运行信息指示流程图运行过程中的中间数据;
应用界面层响应于针对运行界面显示控件的第六操作,显示运行界面,以使用户基于运行界面查看流程图的运行过程中的中间数据;
在一种可能的实现方式中,该方法还包括:
应用界面层显示运行界面配置控件,运行界面配置控件指示显示运行界面配置界面,运行界面配置界面用于对运行界面上显示的内容进行配置;
应用界面层响应于针对运行界面配置控件的第七操作,显示运行界面配置界面,运行界面配置界面包括多个运行界面配置子控件,多个运行界面配置子控件中任一运行界面配置子控件对应有开启选项;
应用界面层响应于针对多个运行界面配置子控件中第一运行界面配置子控件的开启选项的第八操作,显示内容来源选项,响应于针对内容来源选项的第九操作,将第一运行界面配置子控件和流程图中的一个模块进行绑定;
其中,运行界面上显示的运行信息包括和第一运行界面配置子控件绑定的模块的数据;
在一种可能的实现方式中,该方法还包括:
数据处理层将运行界面的程序代码导出为第二代码包;
数据处理层控制应用界面层显示第二代码包对应的第二代码控件,第二代码控件用于指示用户下载第二代码包,第二代码包支持导入第三方系统,并在第三方系统上运行后显示运行界面;
在一种可能的实现方式中,数据处理层包括数据调度层以及功能模块层;
功能模块层中存储N个模块的模块数据;
数据处理层响应于应用界面层显示的流程图,调用并运行一个或多个模块显示控件各自对应的模块的模块数据,得到流程图的数据处理结果,包括:
数据调度层按照流程图中一个或多个模块标识各自对应的模块之间的执行顺序,依次从功能模块层中调用并运行一个或多个模块标识各自对应的模块的模块数据,得到数据处理结果;
在一种可能的实现方式中,N个模块为数据处理层校验合法的模块,校验合法的模块是指用户有权限使用相应模块;
在一种可能的实现方式中,该方法还包括:
应用界面层显示针对任一模块显示控件的调用控件,调用控件指示允许用户在第三方系统调用任一模块显示控件对应的模块;
应用界面层响应于针对调用控件的第十操作,显示任一模块显示控件所对应的模块的模块数据的接口链接;
应用界面层在检测到第三方系统发送的针对接口链接的数据调用请求时,基于接口链接从数据处理层获取任一模块显示控件所对应的模块的模块数据,将获取的模块数据发送至第三方系统。
上述提供的方法中的任一步骤的实现方式均可以参考前述系统相关的解释,在此不再重复说明。
综上所述,本申请实施例提供了一种视觉软件开发系统。该视觉软件开发系统中的应用界面层用于显示模块添加控件,该模块添加控件用于向数据处理层导入第三方模块的模块数据,如此,应用界面层显示的N个模块显示控件对应的模块便可以包括第三方模块。因此,在本申请实施例中,用户可以随时基于业务需求通过该模块添加控件导入第三方模块,然后基于第三方模块通过应用界面层显示用户配置的流程图,该流程图即为用户配置的视觉软件,并通过数据处理层运行该流程图,从而完成视觉软件的开发流程。
由此可知,本申请实施例提供的视觉软件开发系统是一种通用的开放式视觉软件开发系统,该视觉软件开发系统允许用户基于不同的业务需求开发不同的第三方模块,并将开发的第三方模块挂载在本申请实施例提供的软件开发系统中,从而使得后续开发的视觉软件能够更加适应不同业务的个性化需求。如此,就无需针对不同类型的视觉软件配置不同的视觉软件开发系统,在本申请实施例提供的视觉软件开发系统上便可开发不同类型的视觉软件。
此外,即使业务需求或用户需求临时发生变化,通过本申请实施例提供的视觉软件开发系统用户可以临时开发新的第三方模块,然后将开发的新的第三方模块挂载在本申请实施例提供的软件开发系统中,从而使得后续开发的视觉软件能够亏快速适应用户最新的需求。
图12是本申请实施例提供的一种视觉软件开发装置的结构示意图,该装置部署于视觉软件开发系统,视觉软件开发系统包括应用界面层和数据处理层。如图12所示,该视觉软件开发装置1200包括如下几个模块。
显示模块1201,用于控制应用界面层显示N个模块显示控件,N个模块显示控件分别和N个模块对应,N个模块各自的模块数据存储在数据处理层,模块数据包括相应模块的执行逻辑,应用界面层还显示有模块添加控件,模块添加控件用于向数据处理层导入第三方模块的模块数据,N个模块包括第三方模块,N为大于或等于1的正整数;
显示模块1201,还用于控制应用界面层响应于用户针对N个模块显示控件中一个或多个模块显示控件的第一操作,显示流程图,流程图指示一个或多个模块显示控件各自对应的模块之间的执行顺序;
运行模块1202,用于控制数据处理层响应于应用界面层显示的流程图,调用并运行一个或多个模块显示控件各自对应的模块的模块数据,得到流程图的数据处理结果,向所应用界面层返回数据处理结果。
在一种可能的实现方式中,该装置还包括:
获取模块,用于控制应用界面层响应于针对模块添加控件的第二操作,获取用户通过模块添加控件导入的第三方模块的模块数据,将导入的第三方模块的模块数据发送至数据处理层;
检验模块,用于控制数据处理层在检验导入的第三方模块的模块数据满足参考规则的情况下,存储导入的第三方模块的模块数据,向应用界面层返回模块加载成功消息,模块加载成功消息指示成功加载第三方模块;
在一种可能的实现方式中,参考规则包括第三方模块的输入输出接口的设计方式和/或第三方模块的模块数据的封装方式;
其中,第三方模块的输入输出接口的设计方式包括第三方模块的输入数据和/或输出数据的格式,第三方模块的模块数据的封装方式指示第三方模块的模块数据在数据处理层的存储格式,存储格式包括动态链接库、静态链接库、可执行exe文件中任一种;
在一种可能的实现方式中,
显示模块,还用于控制应用界面层响应于针对模块添加控件的第三操作,显示模块配置文件,模块配置文件指示参考规则;
在一种可能的实现方式中,
显示模块,还用于控制应用界面层响应于用户针对N个模块显示控件中第一模块显示控件的第四操作,显示和第一模块显示控件对应的第一模块的模块配置界面,模块配置界面中包括多个模块配置控件,多个模块配置控件中任一模块配置控件用于指示用户对第一模块执行过程中的参数进行编辑;
该装置还包括获取模块,用于控制应用界面层响应于针对任一模块配置控件的第五操作,获取用户通过任一模块配置控件编辑的参数,向数据处理层发送编辑后的参数;
更新模块,用于控制数据处理层基于编辑后的参数更新第一模块的模块数据;
其中,在流程图包括第一模块的情况下,数据处理层基于更新后的第一模块的模块数据更新流程图的数据处理结果,向所应用界面层返回更新后的数据处理结果;
在一种可能的实现方式中,在第一模块为第三方模块的情况下,用户通过模块添加控件导入的第一模块的模块数据中还包括模块配置界面文件,模块界面配置文件指示第一模块的模块配置界面的程序代码;
应用界面层显示的第一模块的模块配置界面是按照第一模块的模块数据中的模块配置界面文件显示的;
在一种可能的实现方式中,该装置还包括:
生成模块,用于控制数据处理层基于流程图生成第一代码包,第一代码包指示流程图包括的各个模块的执行逻辑以及包括的各个模块之间的执行顺序;
显示模块,还用于控制数据处理层控制应用界面层显示第一代码包对应的第一代码控件,第一代码控件用于指示用户下载第一代码包,第一代码包支持导入第三方系统,并在第三方系统上运行后显示流程图;
在一种可能的实现方式中,
显示模块,还用于控制应用界面层显示运行界面显示控件,运行界面显示控件指示显示针对流程图的运行界面,运行界面用于显示流程图的运行信息,流程图的运行信息指示流程图运行过程中的中间数据;
显示模块,还用于控制应用界面层响应于针对运行界面显示控件的第六操作,显示运行界面,以使用户基于运行界面查看流程图的运行过程中的中间数据;
在一种可能的实现方式中,
显示模块,还用于控制应用界面层显示运行界面配置控件,运行界面配置控件指示显示运行界面配置界面,运行界面配置界面用于对运行界面上显示的内容进行配置;
显示模块,还用于控制应用界面层响应于针对运行界面配置控件的第七操作,显示运行界面配置界面,运行界面配置界面包括多个运行界面配置子控件,多个运行界面配置子控件中任一运行界面配置子控件对应有开启选项;
显示模块,还用于控制应用界面层响应于针对多个运行界面配置子控件中第一运行界面配置子控件的开启选项的第八操作,显示内容来源选项,响应于针对内容来源选项的第九操作,将第一运行界面配置子控件和流程图中的一个模块进行绑定;
其中,运行界面上显示的运行信息包括和第一运行界面配置子控件绑定的模块的数据;
在一种可能的实现方式中,该装置还包括:
导出模块,用于控制数据处理层将运行界面的程序代码导出为第二代码包;
显示模块,还用于控制数据处理层控制应用界面层显示第二代码包对应的第二代码控件,第二代码控件用于指示用户下载第二代码包,第二代码包支持导入第三方系统,并在第三方系统上运行后显示运行界面;
在一种可能的实现方式中,数据处理层包括数据调度层以及功能模块层;
功能模块层中存储N个模块的模块数据;
运行模块,用于控制数据调度层按照流程图中一个或多个模块标识各自对应的模块之间的执行顺序,依次从功能模块层中调用并运行一个或多个模块标识各自对应的模块的模块数据,得到数据处理结果;
在一种可能的实现方式中,
显示模块,还用于控制应用界面层显示模块注册控件,应用界面层响应于用户通过模块注册控件从M个模块中选择的N个模块,显示N个模块显示控件,其中,数据处理层中存储有M个模块的模块数据,M为大于或等于N的正整数;
在一种可能的实现方式中,N个模块为数据处理层校验合法的模块,校验合法的模块是指用户有权限使用相应模块;
在一种可能的实现方式中,
显示模块,还用于控制应用界面层显示针对任一模块显示控件的调用控件,调用控件指示允许用户在第三方系统调用任一模块显示控件对应的模块;
显示模块,还用于控制应用界面层响应于针对调用控件的第十操作,显示任一模块显示控件所对应的模块的模块数据的接口链接;
该装置还包括获取模块,用于控制应用界面层在检测到第三方系统发送的针对接口链接的数据调用请求时,基于接口链接从数据处理层获取任一模块显示控件所对应的模块的模块数据,将获取的模块数据发送至第三方系统。
综上所述,本申请实施例提供了一种视觉软件开发系统。该视觉软件开发系统中的应用界面层用于显示模块添加控件,该模块添加控件用于向数据处理层导入第三方模块的模块数据,如此,应用界面层显示的N个模块显示控件对应的模块便可以包括第三方模块。因此,在本申请实施例中,用户可以随时基于业务需求通过该模块添加控件导入第三方模块,然后基于第三方模块通过应用界面层显示用户配置的流程图,该流程图即为用户配置的视觉软件,并通过数据处理层运行该流程图,从而完成视觉软件的开发流程。
由此可知,本申请实施例提供的视觉软件开发系统是一种通用的开放式视觉软件开发系统,该视觉软件开发系统允许用户基于不同的业务需求开发不同的第三方模块,并将开发的第三方模块挂载在本申请实施例提供的软件开发系统中,从而使得后续开发的视觉软件能够更加适应不同业务的个性化需求。如此,就无需针对不同类型的视觉软件配置不同的视觉软件开发系统,在本申请实施例提供的视觉软件开发系统上便可开发不同类型的视觉软件。
此外,即使业务需求或用户需求临时发生变化,通过本申请实施例提供的视觉软件开发系统用户可以临时开发新的第三方模块,然后将开发的新的第三方模块挂载在本申请实施例提供的软件开发系统中,从而使得后续开发的视觉软件能够亏快速适应用户最新的需求。
需要说明的是:上述实施例提供的视觉软件开发装置在开发视觉软件时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的视觉软件开发装置与视觉软件开发方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请实施例的较佳实施例,并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (20)

1.一种视觉软件开发系统,其特征在于,所述视觉软件开发系统包括应用界面层和数据处理层;
所述应用界面层用于:显示N个模块显示控件,所述N个模块显示控件分别和N个模块对应,所述N个模块各自的模块数据存储在所述数据处理层,所述模块数据包括相应模块的执行逻辑,所述应用界面层还用于显示模块添加控件,所述模块添加控件用于向所述数据处理层导入第三方模块的模块数据,所述N个模块包括所述第三方模块,所述N为大于或等于1的正整数;
所述应用界面层还用于:响应于所述用户针对所述N个模块显示控件中一个或多个模块显示控件的第一操作,显示流程图,所述流程图指示所述一个或多个模块显示控件各自对应的模块之间的执行顺序;
所述数据处理层用于:响应于所述应用界面层显示的所述流程图,调用并运行所述一个或多个模块显示控件各自对应的模块的模块数据,得到所述流程图的数据处理结果,向所应用界面层返回所述数据处理结果。
2.如权利要求1所述的系统,其特征在于,
所述应用界面层用于:响应于针对所述模块添加控件的第二操作,获取用户通过所述模块添加控件导入的第三方模块的模块数据,将导入的第三方模块的模块数据发送至所述数据处理层;
所述数据处理层用于:在检验所述导入的第三方模块的模块数据满足参考规则的情况下,存储所述导入的第三方模块的模块数据,向所述应用界面层返回模块加载成功消息,所述模块加载成功消息指示成功加载第三方模块。
3.如权利要求2所述的系统,其特征在于,
所述参考规则包括第三方模块的输入输出接口的设计方式和/或第三方模块的模块数据的封装方式;
其中,所述第三方模块的输入输出接口的设计方式包括所述第三方模块的输入数据和/或输出数据的格式,所述第三方模块的模块数据的封装方式指示所述第三方模块的模块数据在所述数据处理层的存储格式,所述存储格式包括动态链接库、静态链接库、可执行exe文件中任一种。
4.如权利要求2或3所述的系统,其特征在于,所述应用界面层还用于:
响应于所述针对所述模块添加控件的第三操作,显示模块配置文件,所述模块配置文件指示所述参考规则。
5.如权利要求1所述的系统,其特征在于,
所述应用界面层还用于:响应于所述用户针对所述N个模块显示控件中第一模块显示控件的第四操作,显示和所述第一模块显示控件对应的第一模块的模块配置界面,所述模块配置界面中包括多个模块配置控件,所述多个模块配置控件中任一模块配置控件用于指示所述用户对所述第一模块执行过程中的参数进行编辑;
所述应用界面层还用于:响应于针对所述任一模块配置控件的第五操作,获取用户通过所述任一模块配置控件编辑的参数,向所述数据处理层发送编辑后的参数;
所述数据处理层还用于:基于所述编辑后的参数更新所述第一模块的模块数据;
其中,在所述流程图包括所述第一模块的情况下,所述数据处理层还用于:基于更新后的所述第一模块的模块数据更新所述流程图的数据处理结果,向所应用界面层返回更新后的数据处理结果。
6.如权利要求5所述的系统,其特征在于,在所述第一模块为第三方模块的情况下,用户通过所述模块添加控件导入的所述第一模块的模块数据中还包括模块配置界面文件,所述模块界面配置文件指示所述第一模块的模块配置界面的程序代码;
所述应用界面层显示的第一模块的模块配置界面是按照所述第一模块的模块数据中的模块配置界面文件显示的。
7.如权利要求1所述的系统,其特征在于,
所述数据处理层还用于:基于所述流程图生成第一代码包,所述第一代码包指示所述流程图包括的各个模块的执行逻辑以及包括的各个模块之间的执行顺序;
所述数据处理层还用于:控制所述应用界面层显示所述第一代码包对应的第一代码控件,所述第一代码控件用于指示所述用户下载所述第一代码包,所述第一代码包支持导入第三方系统,并在所述第三方系统上运行后显示所述流程图。
8.如权利要求1所述的系统,其特征在于,
所述应用界面层还用于:显示运行界面显示控件,所述运行界面显示控件指示显示针对所述流程图的运行界面,所述运行界面用于显示所述流程图的运行信息,所述流程图的运行信息指示所述流程图运行过程中的中间数据;
所述应用界面层还用于:响应于针对所述运行界面显示控件的第六操作,显示所述运行界面,以使所述用户基于所述运行界面查看所述流程图的运行过程中的中间数据。
9.如权利要求8所述的系统,其特征在于,
所述应用界面层还用于:显示运行界面配置控件,所述运行界面配置控件指示显示运行界面配置界面,所述运行界面配置界面用于对所述运行界面上显示的内容进行配置;
所述应用界面层还用于:响应于针对所述运行界面配置控件的第七操作,显示所述运行界面配置界面,所述运行界面配置界面包括多个运行界面配置子控件,所述多个运行界面配置子控件中任一运行界面配置子控件对应有开启选项;
所述应用界面层还用于:响应于针对所述多个运行界面配置子控件中第一运行界面配置子控件的开启选项的第八操作,显示内容来源选项,响应于针对所述内容来源选项的第九操作,将所述第一运行界面配置子控件和所述流程图中的一个模块进行绑定;
其中,所述运行界面上显示的运行信息包括和所述第一运行界面配置子控件绑定的模块的数据。
10.如权利要求8所述的系统,其特征在于,
所述数据处理层还用于:将所述运行界面的程序代码导出为第二代码包;
所述数据处理层还用于:控制所述应用界面层显示所述第二代码包对应的第二代码控件,所述第二代码控件用于指示所述用户下载所述第二代码包,所述第二代码包支持导入第三方系统,并在所述第三方系统上运行后显示所述运行界面。
11.如权利要求1所述的系统,其特征在于,所述数据处理层包括数据调度层以及功能模块层;
所述功能模块层中存储所述N个模块的模块数据;
所述数据调度层用于:按照所述流程图中所述一个或多个模块标识各自对应的模块之间的执行顺序,依次从所述功能模块层中调用并运行所述一个或多个模块标识各自对应的模块的模块数据,得到所述数据处理结果。
12.如权利要求1所述的系统,其特征在于,
所述数据处理层用于:存储M个模块的模块数据,所述M为大于或等于所述N的正整数;
所述应用界面层还用于:显示模块注册控件,所述应用界面层用于响应于所述用户通过所述模块注册控件从所述M个模块中选择的所述N个模块,显示所述N个模块显示控件。
13.如权利要求12所述的系统,其特征在于,所述N个模块为所述数据处理层校验合法的模块,所述校验合法的模块是指所述用户有权限使用相应模块。
14.如权利要求1所述的系统,其特征在于,
所述应用界面层还用于:显示针对任一模块显示控件的调用控件,所述调用控件指示允许用户在第三方系统调用所述任一模块显示控件对应的模块;
所述应用界面层还用于:响应于针对所述调用控件的第十操作,显示所述任一模块显示控件所对应的模块的模块数据的接口链接;
所述应用界面层还用于:在检测到所述第三方系统发送的针对所述接口链接的数据调用请求时,基于所述接口链接从所述数据处理层获取所述任一模块显示控件所对应的模块的模块数据,将获取的模块数据发送至所述第三方系统。
15.一种视觉软件开发方法,其特征在于,所述方法应用于视觉软件开发系统,所述视觉软件开发系统包括应用界面层和数据处理层,所述方法包括:
所述应用界面层显示N个模块显示控件,所述N个模块显示控件分别和N个模块对应,所述N个模块各自的模块数据存储在所述数据处理层,所述模块数据包括相应模块的执行逻辑,所述应用界面层还显示有模块添加控件,所述模块添加控件用于向所述数据处理层导入第三方模块的模块数据,所述N个模块包括所述第三方模块,所述N为大于或等于1的正整数;
所述应用界面层响应于所述用户针对所述N个模块显示控件中一个或多个模块显示控件的第一操作,显示流程图,所述流程图指示所述一个或多个模块显示控件各自对应的模块之间的执行顺序;
所述数据处理层响应于所述应用界面层显示的所述流程图,调用并运行所述一个或多个模块显示控件各自对应的模块的模块数据,得到所述流程图的数据处理结果,向所应用界面层返回所述数据处理结果。
16.如权利要求15所述的方法,其特征在于,所述方法还包括:
所述应用界面层响应于针对所述模块添加控件的第二操作,获取用户通过所述模块添加控件导入的第三方模块的模块数据,将导入的第三方模块的模块数据发送至所述数据处理层;
所述数据处理层在检验所述导入的第三方模块的模块数据满足参考规则的情况下,存储所述导入的第三方模块的模块数据,向所述应用界面层返回模块加载成功消息,所述模块加载成功消息指示成功加载第三方模块;
可选地,所述参考规则包括第三方模块的输入输出接口的设计方式和/或第三方模块的模块数据的封装方式;
其中,所述第三方模块的输入输出接口的设计方式包括所述第三方模块的输入数据和/或输出数据的格式,所述第三方模块的模块数据的封装方式指示所述第三方模块的模块数据在所述数据处理层的存储格式,所述存储格式包括动态链接库、静态链接库、可执行exe文件中任一种;
可选地,所述方法还包括:
所述应用界面层响应于所述针对所述模块添加控件的第三操作,显示模块配置文件,所述模块配置文件指示所述参考规则;
可选地,所述方法还包括:
所述应用界面层响应于所述用户针对所述N个模块显示控件中第一模块显示控件的第四操作,显示和所述第一模块显示控件对应的第一模块的模块配置界面,所述模块配置界面中包括多个模块配置控件,所述多个模块配置控件中任一模块配置控件用于指示所述用户对所述第一模块执行过程中的参数进行编辑;
所述应用界面层响应于针对所述任一模块配置控件的第五操作,获取用户通过所述任一模块配置控件编辑的参数,向所述数据处理层发送编辑后的参数;
所述数据处理层基于所述编辑后的参数更新所述第一模块的模块数据;
其中,在所述流程图包括所述第一模块的情况下,所述数据处理层基于更新后的所述第一模块的模块数据更新所述流程图的数据处理结果,向所应用界面层返回更新后的数据处理结果;
可选地,在所述第一模块为第三方模块的情况下,用户通过所述模块添加控件导入的所述第一模块的模块数据中还包括模块配置界面文件,所述模块界面配置文件指示所述第一模块的模块配置界面的程序代码;
所述应用界面层显示的第一模块的模块配置界面是按照所述第一模块的模块数据中的模块配置界面文件显示的;
可选地,所述方法还包括:
所述数据处理层基于所述流程图生成第一代码包,所述第一代码包指示所述流程图包括的各个模块的执行逻辑以及包括的各个模块之间的执行顺序;
所述数据处理层控制所述应用界面层显示所述第一代码包对应的第一代码控件,所述第一代码控件用于指示所述用户下载所述第一代码包,所述第一代码包支持导入第三方系统,并在所述第三方系统上运行后显示所述流程图;
可选地,所述方法还包括:
所述应用界面层显示运行界面显示控件,所述运行界面显示控件指示显示针对所述流程图的运行界面,所述运行界面用于显示所述流程图的运行信息,所述流程图的运行信息指示所述流程图运行过程中的中间数据;
所述应用界面层响应于针对所述运行界面显示控件的第六操作,显示所述运行界面,以使所述用户基于所述运行界面查看所述流程图的运行过程中的中间数据;
可选地,所述方法还包括:
所述应用界面层显示运行界面配置控件,所述运行界面配置控件指示显示运行界面配置界面,所述运行界面配置界面用于对所述运行界面上显示的内容进行配置;
所述应用界面层响应于针对所述运行界面配置控件的第七操作,显示所述运行界面配置界面,所述运行界面配置界面包括多个运行界面配置子控件,所述多个运行界面配置子控件中任一运行界面配置子控件对应有开启选项;
所述应用界面层响应于针对所述多个运行界面配置子控件中第一运行界面配置子控件的开启选项的第八操作,显示内容来源选项,响应于针对所述内容来源选项的第九操作,将所述第一运行界面配置子控件和所述流程图中的一个模块进行绑定;
其中,所述运行界面上显示的运行信息包括和所述第一运行界面配置子控件绑定的模块的数据;
可选地,所述方法还包括:
所述数据处理层将所述运行界面的程序代码导出为第二代码包;
所述数据处理层控制所述应用界面层显示所述第二代码包对应的第二代码控件,所述第二代码控件用于指示所述用户下载所述第二代码包,所述第二代码包支持导入第三方系统,并在所述第三方系统上运行后显示所述运行界面;
可选地,所述数据处理层包括数据调度层以及功能模块层;
所述功能模块层中存储所述N个模块的模块数据;
所述数据处理层响应于所述应用界面层显示的所述流程图,调用并运行所述一个或多个模块显示控件各自对应的模块的模块数据,得到所述流程图的数据处理结果,包括:
所述数据调度层按照所述流程图中所述一个或多个模块标识各自对应的模块之间的执行顺序,依次从所述功能模块层中调用并运行所述一个或多个模块标识各自对应的模块的模块数据,得到所述数据处理结果;
可选地,所述方法还包括:
所述应用界面层显示模块注册控件,所述应用界面层响应于所述用户通过所述模块注册控件从M个模块中选择的所述N个模块,显示所述N个模块显示控件,其中,所述数据处理层中存储有所述M个模块的模块数据,所述M为大于或等于所述N的正整数;
可选地,所述N个模块为所述数据处理层校验合法的模块,所述校验合法的模块是指所述用户有权限使用相应模块;
可选地,所述方法还包括:
所述应用界面层显示针对任一模块显示控件的调用控件,所述调用控件指示允许用户在第三方系统调用所述任一模块显示控件对应的模块;
所述应用界面层响应于针对所述调用控件的第十操作,显示所述任一模块显示控件所对应的模块的模块数据的接口链接;
所述应用界面层在检测到所述第三方系统发送的针对所述接口链接的数据调用请求时,基于所述接口链接从所述数据处理层获取所述任一模块显示控件所对应的模块的模块数据,将获取的模块数据发送至所述第三方系统。
17.一种视觉软件开发装置,其特征在于,所述装置部署于视觉软件开发系统,所述视觉软件开发系统包括应用界面层和数据处理层,所述装置包括:
显示模块,用于控制所述应用界面层显示N个模块显示控件,所述N个模块显示控件分别和N个模块对应,所述N个模块各自的模块数据存储在所述数据处理层,所述模块数据包括相应模块的执行逻辑,所述应用界面层还显示有模块添加控件,所述模块添加控件用于向所述数据处理层导入第三方模块的模块数据,所述N个模块包括所述第三方模块,所述N为大于或等于1的正整数;
所述显示模块,还用于控制所述应用界面层响应于所述用户针对所述N个模块显示控件中一个或多个模块显示控件的第一操作,显示流程图,所述流程图指示所述一个或多个模块显示控件各自对应的模块之间的执行顺序;
运行模块,用于控制所述数据处理层响应于所述应用界面层显示的所述流程图,调用并运行所述一个或多个模块显示控件各自对应的模块的模块数据,得到所述流程图的数据处理结果,向所应用界面层返回所述数据处理结果。
18.如权利要求17所述的装置,其特征在于,所述装置还包括:
获取模块,用于控制所述应用界面层响应于针对所述模块添加控件的第二操作,获取用户通过所述模块添加控件导入的第三方模块的模块数据,将导入的第三方模块的模块数据发送至所述数据处理层;
检验模块,用于控制所述数据处理层在检验所述导入的第三方模块的模块数据满足参考规则的情况下,存储所述导入的第三方模块的模块数据,向所述应用界面层返回模块加载成功消息,所述模块加载成功消息指示成功加载第三方模块;
可选地,所述参考规则包括第三方模块的输入输出接口的设计方式和/或第三方模块的模块数据的封装方式;
其中,所述第三方模块的输入输出接口的设计方式包括所述第三方模块的输入数据和/或输出数据的格式,所述第三方模块的模块数据的封装方式指示所述第三方模块的模块数据在所述数据处理层的存储格式,所述存储格式包括动态链接库、静态链接库、可执行exe文件中任一种;
可选地,
所述显示模块,还用于控制所述应用界面层响应于所述针对所述模块添加控件的第三操作,显示模块配置文件,所述模块配置文件指示所述参考规则;
可选地,
所述显示模块,还用于控制所述应用界面层响应于所述用户针对所述N个模块显示控件中第一模块显示控件的第四操作,显示和所述第一模块显示控件对应的第一模块的模块配置界面,所述模块配置界面中包括多个模块配置控件,所述多个模块配置控件中任一模块配置控件用于指示所述用户对所述第一模块执行过程中的参数进行编辑;
所述装置还包括获取模块,用于控制所述应用界面层响应于针对所述任一模块配置控件的第五操作,获取用户通过所述任一模块配置控件编辑的参数,向所述数据处理层发送编辑后的参数;
更新模块,用于控制所述数据处理层基于所述编辑后的参数更新所述第一模块的模块数据;
其中,在所述流程图包括所述第一模块的情况下,所述数据处理层基于更新后的所述第一模块的模块数据更新所述流程图的数据处理结果,向所应用界面层返回更新后的数据处理结果;
可选地,在所述第一模块为第三方模块的情况下,用户通过所述模块添加控件导入的所述第一模块的模块数据中还包括模块配置界面文件,所述模块界面配置文件指示所述第一模块的模块配置界面的程序代码;
所述应用界面层显示的第一模块的模块配置界面是按照所述第一模块的模块数据中的模块配置界面文件显示的;
可选地,所述装置还包括:
生成模块,用于控制所述数据处理层基于所述流程图生成第一代码包,所述第一代码包指示所述流程图包括的各个模块的执行逻辑以及包括的各个模块之间的执行顺序;
所述显示模块,还用于控制所述数据处理层控制所述应用界面层显示所述第一代码包对应的第一代码控件,所述第一代码控件用于指示所述用户下载所述第一代码包,所述第一代码包支持导入第三方系统,并在所述第三方系统上运行后显示所述流程图;
可选地,
所述显示模块,还用于控制所述应用界面层显示运行界面显示控件,所述运行界面显示控件指示显示针对所述流程图的运行界面,所述运行界面用于显示所述流程图的运行信息,所述流程图的运行信息指示所述流程图运行过程中的中间数据;
所述显示模块,还用于控制所述应用界面层响应于针对所述运行界面显示控件的第六操作,显示所述运行界面,以使所述用户基于所述运行界面查看所述流程图的运行过程中的中间数据;
可选地,
所述显示模块,还用于控制所述应用界面层显示运行界面配置控件,所述运行界面配置控件指示显示运行界面配置界面,所述运行界面配置界面用于对所述运行界面上显示的内容进行配置;
所述显示模块,还用于控制所述应用界面层响应于针对所述运行界面配置控件的第七操作,显示所述运行界面配置界面,所述运行界面配置界面包括多个运行界面配置子控件,所述多个运行界面配置子控件中任一运行界面配置子控件对应有开启选项;
所述显示模块,还用于控制所述应用界面层响应于针对所述多个运行界面配置子控件中第一运行界面配置子控件的开启选项的第八操作,显示内容来源选项,响应于针对所述内容来源选项的第九操作,将所述第一运行界面配置子控件和所述流程图中的一个模块进行绑定;
其中,所述运行界面上显示的运行信息包括和所述第一运行界面配置子控件绑定的模块的数据;
可选地,所述装置还包括:
导出模块,用于控制所述数据处理层将所述运行界面的程序代码导出为第二代码包;
所述显示模块,还用于控制所述数据处理层控制所述应用界面层显示所述第二代码包对应的第二代码控件,所述第二代码控件用于指示所述用户下载所述第二代码包,所述第二代码包支持导入第三方系统,并在所述第三方系统上运行后显示所述运行界面;
可选地,所述数据处理层包括数据调度层以及功能模块层;
所述功能模块层中存储所述N个模块的模块数据;
所述运行模块,用于控制所述数据调度层按照所述流程图中所述一个或多个模块标识各自对应的模块之间的执行顺序,依次从所述功能模块层中调用并运行所述一个或多个模块标识各自对应的模块的模块数据,得到所述数据处理结果;
可选地,
所述显示模块,还用于控制所述应用界面层显示模块注册控件,所述应用界面层响应于所述用户通过所述模块注册控件从M个模块中选择的所述N个模块,显示所述N个模块显示控件,其中,所述数据处理层中存储有所述M个模块的模块数据,所述M为大于或等于所述N的正整数;
可选地,所述N个模块为所述数据处理层校验合法的模块,所述校验合法的模块是指所述用户有权限使用相应模块;
可选地,
所述显示模块,还用于控制所述应用界面层显示针对任一模块显示控件的调用控件,所述调用控件指示允许用户在第三方系统调用所述任一模块显示控件对应的模块;
所述显示模块,还用于控制所述应用界面层响应于针对所述调用控件的第十操作,显示所述任一模块显示控件所对应的模块的模块数据的接口链接;
所述装置还包括获取模块,用于控制所述应用界面层在检测到所述第三方系统发送的针对所述接口链接的数据调用请求时,基于所述接口链接从所述数据处理层获取所述任一模块显示控件所对应的模块的模块数据,将获取的模块数据发送至所述第三方系统。
19.一种视觉软件开发装置,其特征在于,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述权利要求15-16任一所述的方法的步骤。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述权利要求15-16任一所述的方法的步骤。
CN202110251760.XA 2021-03-08 2021-03-08 视觉软件开发系统、方法、装置及计算机存储介质 Active CN113050938B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202110251760.XA CN113050938B (zh) 2021-03-08 2021-03-08 视觉软件开发系统、方法、装置及计算机存储介质
PCT/CN2022/079753 WO2022188780A1 (zh) 2021-03-08 2022-03-08 视觉软件开发系统、方法、装置及计算机存储介质
JP2023547704A JP2024506044A (ja) 2021-03-08 2022-03-08 視覚ソフトウェア開発システム、方法、装置及びコンピュータ記憶媒体
KR1020237027372A KR20230127351A (ko) 2021-03-08 2022-03-08 비전 소프트웨어 개발 시스템, 방법, 장치 및 컴퓨터저장 매체
EP22766303.6A EP4307106A4 (en) 2021-03-08 2022-03-08 SYSTEM, METHOD AND APPARATUS FOR DEVELOPING VISUAL SOFTWARE, AND COMPUTER STORAGE MEDIUM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110251760.XA CN113050938B (zh) 2021-03-08 2021-03-08 视觉软件开发系统、方法、装置及计算机存储介质

Publications (2)

Publication Number Publication Date
CN113050938A true CN113050938A (zh) 2021-06-29
CN113050938B CN113050938B (zh) 2024-06-14

Family

ID=76510724

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110251760.XA Active CN113050938B (zh) 2021-03-08 2021-03-08 视觉软件开发系统、方法、装置及计算机存储介质

Country Status (5)

Country Link
EP (1) EP4307106A4 (zh)
JP (1) JP2024506044A (zh)
KR (1) KR20230127351A (zh)
CN (1) CN113050938B (zh)
WO (1) WO2022188780A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113805936A (zh) * 2021-09-18 2021-12-17 中国能源建设集团广东省电力设计研究院有限公司 一种企业信息化系列产品版本管控方法
CN114501079A (zh) * 2022-01-29 2022-05-13 京东方科技集团股份有限公司 用于对多媒体数据进行处理的方法及相关设备
CN114661407A (zh) * 2022-05-20 2022-06-24 浙江简捷物联科技有限公司 一种界面配置的方法、bms和存储介质
WO2022188780A1 (zh) * 2021-03-08 2022-09-15 杭州海康机器人技术有限公司 视觉软件开发系统、方法、装置及计算机存储介质
US20230103989A1 (en) * 2021-10-04 2023-04-06 Oracle International Corporation Nested build automation for software dependencies

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105630472A (zh) * 2014-11-03 2016-06-01 中国科学院沈阳自动化研究所 制造执行系统客户端快速开发框架及其软件开发方法
CN109408996A (zh) * 2018-11-05 2019-03-01 北京艾瑞思机器人技术有限公司 用于智能设备控制的交互方法、装置、系统及存储介质
CN109783859A (zh) * 2018-12-13 2019-05-21 重庆金融资产交易所有限责任公司 模型构建方法、装置及计算机可读存储介质
CN112433702A (zh) * 2020-12-19 2021-03-02 合肥汉腾信息技术有限公司 一种轻量级流程设计系统及方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6298474B1 (en) * 1999-04-30 2001-10-02 Intergral Vision, Inc. Method and system for interactively developing a graphical control-flow structure and associated application software for use in a machine vision system and computer-readable storage medium having a program for executing the method
US8904302B2 (en) * 2010-09-30 2014-12-02 The Mathworks, Inc. Identification of semantically relevant concepts in a graphical model
CN108733368A (zh) * 2017-05-16 2018-11-02 研祥智能科技股份有限公司 机器视觉通用软件开发系统
CN112363730A (zh) * 2020-11-06 2021-02-12 上海节卡机器人科技有限公司 一种视觉项目部署方法、视觉系统、电子设备和存储介质
CN113050938B (zh) * 2021-03-08 2024-06-14 杭州海康机器人股份有限公司 视觉软件开发系统、方法、装置及计算机存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105630472A (zh) * 2014-11-03 2016-06-01 中国科学院沈阳自动化研究所 制造执行系统客户端快速开发框架及其软件开发方法
CN109408996A (zh) * 2018-11-05 2019-03-01 北京艾瑞思机器人技术有限公司 用于智能设备控制的交互方法、装置、系统及存储介质
CN109783859A (zh) * 2018-12-13 2019-05-21 重庆金融资产交易所有限责任公司 模型构建方法、装置及计算机可读存储介质
CN112433702A (zh) * 2020-12-19 2021-03-02 合肥汉腾信息技术有限公司 一种轻量级流程设计系统及方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022188780A1 (zh) * 2021-03-08 2022-09-15 杭州海康机器人技术有限公司 视觉软件开发系统、方法、装置及计算机存储介质
CN113805936A (zh) * 2021-09-18 2021-12-17 中国能源建设集团广东省电力设计研究院有限公司 一种企业信息化系列产品版本管控方法
US20230103989A1 (en) * 2021-10-04 2023-04-06 Oracle International Corporation Nested build automation for software dependencies
CN114501079A (zh) * 2022-01-29 2022-05-13 京东方科技集团股份有限公司 用于对多媒体数据进行处理的方法及相关设备
CN114661407A (zh) * 2022-05-20 2022-06-24 浙江简捷物联科技有限公司 一种界面配置的方法、bms和存储介质

Also Published As

Publication number Publication date
EP4307106A1 (en) 2024-01-17
KR20230127351A (ko) 2023-08-31
EP4307106A4 (en) 2024-08-07
WO2022188780A1 (zh) 2022-09-15
JP2024506044A (ja) 2024-02-08
CN113050938B (zh) 2024-06-14

Similar Documents

Publication Publication Date Title
CN113050938B (zh) 视觉软件开发系统、方法、装置及计算机存储介质
US11681502B2 (en) Industrial automation domain-specific language programming paradigm
EP3433732B1 (en) Converting visual diagrams into code
CN109918055B (zh) 一种应用程序的生成方法及设备
US7747588B2 (en) Extensible XML format and object model for localization data
EP3745256A1 (en) External code integrations within a computing environment
US8527943B1 (en) System and method of application development
US20170109136A1 (en) Generation of application behaviors
WO2019033016A1 (en) SYSTEM AND METHOD FOR PROVIDING VISUALIZATIONS OF COMPUTER INFRASTRUCTURE USING A DOMAIN-SPECIFIC LANGUAGE FOR CLOUD SERVICES INFRASTRUCTURE
CN114115841A (zh) 数据流接口动态编排方法、装置、设备、介质及程序产品
US11733977B2 (en) Graphical and text based co-design editor for industrial automation projects
CN117280318A (zh) 派生许多惯用编程语言接口
US20200366743A1 (en) Megamodel driven process enactment
KR20010071116A (ko) 소프트웨어의 생성장치 및 소프트웨어의 생성방법
US11977473B2 (en) Providing a pseudo language for manipulating complex variables of an orchestration flow
CN117311718A (zh) 一种国产gis应用开发方法及系统
El-Hokayem et al. Modularizing crosscutting concerns in component-based systems
KR20220003106A (ko) 컴퓨터-보조 컴퓨터 프로그래밍의 시스템 및 방법
CN101263459A (zh) 图形xml编程系统和引擎
CN111694723B (zh) 产品在h5下运行时对节点及组件编辑的方法、存储介质
Anguish et al. Cocoa programming
CN118355415A (zh) 图像处理方法、三维测量方法和电子设备
Pereira An HAROS Extension for Variability Aware ROS Code Analysis
CN116795358A (zh) 界面数据处理方法、装置、电子设备及介质
Ubayashi et al. An extensible aspect-oriented modeling environment for constructing domain-specific languages

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: 310051 room 304, B / F, building 2, 399 Danfeng Road, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Hangzhou Hikvision Robot Co.,Ltd.

Address before: 310051 room 304, B / F, building 2, 399 Danfeng Road, Binjiang District, Hangzhou City, Zhejiang Province

Applicant before: HANGZHOU HIKROBOT TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant