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

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

Info

Publication number
WO2022188780A1
WO2022188780A1 PCT/CN2022/079753 CN2022079753W WO2022188780A1 WO 2022188780 A1 WO2022188780 A1 WO 2022188780A1 CN 2022079753 W CN2022079753 W CN 2022079753W WO 2022188780 A1 WO2022188780 A1 WO 2022188780A1
Authority
WO
WIPO (PCT)
Prior art keywords
module
control
interface
display
data
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.)
Ceased
Application number
PCT/CN2022/079753
Other languages
English (en)
French (fr)
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 KR1020237027372A priority Critical patent/KR20230127351A/ko
Priority to JP2023547704A priority patent/JP7644830B2/ja
Priority to EP22766303.6A priority patent/EP4307106A4/en
Publication of WO2022188780A1 publication Critical patent/WO2022188780A1/zh
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Definitions

  • the embodiments of the present application relate to the technical field of machine vision, and in particular, to a vision software development system, method, device, and computer storage medium.
  • Machine vision refers to the technology that uses machines to replace human eyes to make measurements or judgments.
  • a specific function is realized by replacing the traditional language code as software with a graphical flow chart, so that more users can quickly develop vision software for their own needs.
  • vision software can also be called machine vision software.
  • the vision software needs to be realized based on the vision software development system. Due to the different user needs corresponding to different vision software, the current problem that needs to be solved for the vision software development system is: how to build a vision software development system so that the customized vision software based on the vision software development system can meet user needs.
  • a vision software development system in order to make the developed vision software meet user requirements, a vision software development system is usually configured for each type of vision software. In this way, the visual software development system is professional, and the visual software developed based on the visual software development system can meet the specified user requirements.
  • the vision software development system in the related art is not universal, which leads to the need to configure different vision software development systems for different types of vision software. And when the user's needs change temporarily, the vision software developed based on the existing vision software development system is difficult to meet the latest needs of the user.
  • the embodiments of the present application provide a vision software development system, method, device, and computer storage medium, which can be used to develop vision software that meets different business requirements.
  • the technical solution is as follows:
  • a visual software development system includes an application interface layer and a data processing layer; the application interface layer is used for: displaying N module display controls, the N module display controls are respectively Corresponding to N modules, the respective module data of the N modules is stored in the data processing layer, the module data includes the execution logic of the corresponding module, and the application interface layer is also used to display the module adding controls.
  • a control is added to import module data of a third-party module into the data processing layer, the N modules include the third-party module, and N is a positive integer greater than or equal to 1;
  • the application interface layer is also used for : in response to the user's first operation on one or more of the N module display controls, displaying a flow chart indicating the relationship between the modules corresponding to the one or more module display controls. Execution sequence; the data processing layer is used for: in response to the flow chart displayed by the application interface layer, calling and running the module data of the modules corresponding to the one or more module display controls to obtain the flow chart The data processing result is returned to the application interface layer.
  • the application interface layer is configured to: in response to the second operation of adding a control to the module, obtain the module data of the third-party module imported by the user through the module adding control, and add the imported
  • the module data of the third-party module is sent to the data processing layer; the data processing layer is used for: in the case of verifying that the module data of the imported third-party module satisfies the reference rules, store the imported third-party module data. module data, and returns a module loading success message to the application interface layer, where the module loading success message indicates that the third-party module is successfully loaded.
  • the reference rule includes the design method of the input and output interface of the third-party module and/or the encapsulation method of the module data of the third-party module; wherein, the design of the input and output interface of the third-party module
  • the method includes the format of the input data and/or output data of the third-party module, the encapsulation method of the module data of the third-party module indicates the storage format of the module data of the third-party module in the data processing layer, the The storage format includes any one of dynamic link library, static link library, and executable exe file.
  • the application interface layer is further configured to: in response to the third operation of adding a control to the module, display a module configuration file, where the module configuration file indicates the reference rule.
  • the application interface layer is further configured to: in response to a fourth operation by the user on the first module display control among the N module display controls, display and the first module display
  • the module configuration interface of the first module corresponding to the control, the module configuration interface includes multiple module configuration controls, and any one of the multiple module configuration controls is used to instruct the user to execute the first module.
  • the parameters in the process are edited; the application interface layer is also used for: in response to the fifth operation for the configuration control of any module, obtain the parameters edited by the user through the configuration control of any module, and report to the data processing
  • the data processing layer is further configured to: update the module data of the first module based on the edited parameters; wherein, in the case that the flow chart includes the first module,
  • the data processing layer is further configured to: update the data processing result of the flowchart based on the updated module data of the first module, and return the updated data processing result to the applied interface layer.
  • the module data of the first module imported by the user through the module add control also includes a module configuration interface file, and the The module interface configuration file indicates the program code of the module configuration interface of the first module; the module configuration interface of the first module displayed by the application interface layer is displayed according to the module configuration interface file in the module data of the first module .
  • the data processing layer is further configured to: generate a first code package based on the flowchart, where the first code package indicates the execution logic of each module included in the flowchart and the included The execution sequence between each module; the data processing layer is further configured to: control the application interface layer to display the first code control corresponding to the first code package, and the first code control is used to instruct the user to download
  • the first code package supports importing into a third-party system, and displays the flowchart after running on the third-party system.
  • the application interface layer is further configured to: display an operation interface display control, the operation interface display control instructs to display an operation interface for the flowchart, and the operation interface is used to display the operation interface
  • the operation information of the flow chart, the operation information of the flow chart indicates the intermediate data in the running process of the flow chart;
  • the application interface layer is further configured to: in response to the sixth operation of the display control for the operation interface, display all the The running interface is used, so that the user can view the intermediate data in the running process of the flowchart based on the running interface.
  • the application interface layer is further configured to: display an operation interface configuration control, the operation interface configuration control instructs to display an operation interface configuration interface, and the operation interface configuration interface is used for displaying the operation interface configuration control.
  • the application interface layer is further configured to: display the operation interface configuration interface in response to the seventh operation on the operation interface configuration control, and the operation interface configuration interface includes a plurality of operation interface configurations Sub-controls, any one of the plurality of operation interface configuration sub-controls corresponds to an enabling option; the application interface layer is further configured to: in response to the first operation in the plurality of operation interface configuration sub-controls
  • the eighth operation of the opening option of the interface configuration sub-control is to display the content source option, and in response to the ninth operation for the content source option, the first operation interface configuration sub-control and a module in the flowchart are performed. Binding; wherein, the running information displayed on the running interface includes the data of the module bound to the configuration sub-control of the first running interface.
  • the data processing layer is further configured to: export the program code of the running interface as a second code package; the data processing layer is further configured to: control the application interface layer to display all The second code control corresponding to the second code package, the second code control is used to instruct the user to download the second code package, the second code package supports importing into a third-party system, and is in the third-party system
  • the running interface is displayed after running on the system.
  • the data processing layer includes a data scheduling layer and a function module layer; the function module layer stores module data of the N modules; the data scheduling layer is used for: according to the In the flowchart, the one or more modules display the execution sequence between the modules corresponding to the controls, and sequentially call and run the module data of the modules corresponding to the one or more module display controls from the functional module layer, The data processing result is obtained.
  • the data processing layer is configured to: store module data of M modules, where M is a positive integer greater than or equal to the N; the application interface layer is further configured to: display the modules A registration control, the application interface layer is configured to display the N module display controls in response to the N modules selected by the user from the M modules through the module registration control.
  • the N modules are modules that are verified to be legal by the data processing layer, and the modules that are verified to be legal refer to corresponding modules that the user has permission to use.
  • the application interface layer is further configured to: display a call control for any module display control, and the call control indicates that the user is allowed to call the corresponding display control of any module in a third-party system module; the application interface layer is further configured to: in response to the tenth operation for calling the control, display the interface link of the module data of the module corresponding to the display control of any one of the modules; the application interface layer is further configured to : when detecting the data calling request sent by the third-party system for the interface link, obtain the module data of the module corresponding to the display control of any module from the data processing layer based on the interface link, and The acquired module data is sent to the third-party system.
  • a visual software development method is provided, the method is applied to a visual software development system, the visual software development system includes an application interface layer and a data processing layer, and the method includes: the application interface layer displays N module display controls, the N module display controls correspond to the N modules respectively, the module data of the N modules is stored in the data processing layer, the module data includes the execution logic of the corresponding module, the application
  • the interface layer also displays a module adding control, the module adding control is used to import the module data of the third-party module to the data processing layer, the N modules include the third-party module, and the N is greater than or equal to 1
  • the modules display the execution sequence between the modules corresponding to the controls; the data processing layer calls and runs the modules of the modules corresponding to the one or more modules in response to the flowchart displayed by the application interface layer. data, obtain the data processing result of the flowchart, and return the data processing result to the application interface layer.
  • the method further includes: the application interface layer, in response to a second operation of adding a control to the module, acquires module data of a third-party module imported by the user through the module adding control, Send the module data of the imported third-party module to the data processing layer; the data processing layer stores the imported third-party module's data under the condition that the module data of the imported third-party module satisfies the reference rule. module data, and returns a module loading success message to the application interface layer, where the module loading success message indicates that the third-party module is successfully loaded.
  • the reference rule includes the design method of the input and output interface of the third-party module and/or the encapsulation method of the module data of the third-party module; wherein, the design of the input and output interface of the third-party module
  • the method includes the format of the input data and/or output data of the third-party module, the encapsulation method of the module data of the third-party module indicates the storage format of the module data of the third-party module in the data processing layer, the The storage format includes any one of dynamic link library, static link library, and executable exe file.
  • the method further includes: the application interface layer, in response to a third operation of adding a control to the module, displays a module configuration file, where the module configuration file indicates the reference rule.
  • the method further includes: the application interface layer, in response to a fourth operation performed by the user on a first module display control among the N module display controls, displaying and the first module display control.
  • the module configuration interface of the first module corresponding to the module display control, the module configuration interface includes a plurality of module configuration controls, and any module configuration control in the plurality of module configuration controls is used to instruct the user to
  • the parameters in the module execution process are edited; the application interface layer, in response to the fifth operation for the configuration control of any module, obtains the parameters edited by the user through the configuration control of any module, and sends the parameters to the data processing layer.
  • the data processing layer updates the module data of the first module based on the edited parameters; wherein, in the case that the flowchart includes the first module, the data processing layer is based on The updated module data of the first module updates the data processing result of the flowchart, and returns the updated data processing result to the applied interface layer.
  • the module data of the first module imported by the user through the module add control also includes a module configuration interface file, and the The module interface configuration file indicates the program code of the module configuration interface of the first module; the module configuration interface of the first module displayed by the application interface layer is displayed according to the module configuration interface file in the module data of the first module .
  • the method further includes: generating, by the data processing layer, a first code package based on the flowchart, where the first code package indicates the execution logic of each module included in the flowchart; The execution sequence between the modules included; the data processing layer controls the application interface layer to display the first code control corresponding to the first code package, and the first code control is used to instruct the user to download the A first code package, the first code package supports importing into a third-party system, and displays the flowchart after running on the third-party system.
  • the method further includes: the application interface layer displays an operation interface display control, the operation interface display control instructs to display an operation interface for the flowchart, and the operation interface is used for displaying
  • the operation information of the flow chart indicates the intermediate data during the operation of the flow chart;
  • the application interface layer displays the operation interface in response to the sixth operation of the display control for the operation interface an interface, so that the user can view the intermediate data in the running process of the flowchart based on the running interface.
  • the method further includes: the application interface layer displays an operation interface configuration control, the operation interface configuration control instructs to display an operation interface configuration interface, and the operation interface configuration interface is used to The content displayed on the operation interface is configured; the application interface layer displays the operation interface configuration interface in response to the seventh operation on the operation interface configuration control, and the operation interface configuration interface includes a plurality of operation interface configuration sub-controls , any operation interface configuration sub-control in the plurality of operation interface configuration sub-controls corresponds to an opening option; the application interface layer responds to the opening of the first operation interface configuration sub-control among the plurality of operation interface configuration sub-controls The eighth operation of the option is to display the content source option, and in response to the ninth operation for the content source option, bind the first running interface configuration sub-control to a module in the flowchart; wherein, all The operation information displayed on the operation interface includes the data of the module bound to the configuration sub-control of the first operation interface.
  • the method further includes: the data processing layer exports the program code of the running interface as a second code package; the data processing layer controls the application interface layer to display the first code package; A second code control corresponding to the second code package, the second code control is used to instruct the user to download the second code package, the second code package supports importing into a third-party system, and the third-party system
  • the running interface is displayed after running.
  • the data processing layer includes a data scheduling layer and a function module layer; the function module layer stores module data of the N modules; the data processing layer responds to the application interface
  • the one or more modules display the execution sequence between the corresponding modules of the controls, and call and run the module data of the respective modules corresponding to the one or more module display controls from the functional module layer in turn to obtain all the module data. the data processing results.
  • the method further includes: the application interface layer displaying a module registration control, the application interface layer responding to the user selecting the module registration control from the M modules through the module registration control.
  • N modules displaying the N module display controls, wherein the data processing layer stores module data of the M modules, where M is a positive integer greater than or equal to the N.
  • the N modules are modules that are validated by the data processing layer, and the valid modules are validated means that the user has the right to use the corresponding module.
  • the method further includes: the application interface layer displays a call control for any module display control, the call control indicates that the user is allowed to call the any module display control in a third-party system corresponding module; the application interface layer displays the interface link of the module data of the module corresponding to the any module display control in response to the tenth operation for the calling control; the application interface layer detects the When a third-party system sends a data call request for the interface link, the module data of the module corresponding to the display control of any module is obtained from the data processing layer based on the interface link, and the obtained module data is sent to the third-party system.
  • a visual software development device is provided, the device is deployed in a visual software development system, the visual software development system includes an application interface layer and a data processing layer, and the device includes: a display module for controlling all
  • the application interface layer displays N module display controls, the N module display controls correspond to N modules respectively, and the respective module data of the N modules is stored in the data processing layer, and the module data includes the corresponding module data.
  • the application interface layer also displays a module adding control, the module adding control is used to import module data of a third-party module to the data processing layer, the N modules include the third-party module, the N is a positive integer greater than or equal to 1; the display module is further configured to control the application interface layer to respond to the user's first operation on one or more of the N module display controls, Displaying a flow chart, the flow chart indicating the execution sequence between the modules corresponding to the one or more modules display controls; an operation module for controlling the data processing layer to respond to the display of the application interface layer A flowchart, calling and running the module data of the corresponding modules of the one or more module display controls, obtaining the data processing result of the flowchart, and returning the data processing result to the application interface layer.
  • the module adding control is used to import module data of a third-party module to the data processing layer
  • the N modules include the third-party module, the N is a positive integer greater than or equal to 1
  • the display module is further configured to control the application interface layer to respond to
  • the apparatus further includes: an acquiring module, configured to control the application interface layer to acquire, in response to a second operation of adding a control to the module, the first information imported by the user through the module adding a control
  • the module data of the third-party module sends the module data of the imported third-party module to the data processing layer; the verification module is used to control the data processing layer to verify that the module data of the imported third-party module meets the reference rules.
  • the module data of the imported third-party module is stored, and a module loading success message is returned to the application interface layer, where the module loading success message indicates that the third-party module is successfully loaded.
  • the reference rule includes the design method of the input and output interface of the third-party module and/or the encapsulation method of the module data of the third-party module; wherein, the design of the input and output interface of the third-party module
  • the method includes the format of the input data and/or output data of the third-party module, the encapsulation method of the module data of the third-party module indicates the storage format of the module data of the third-party module in the data processing layer, the The storage format includes any one of dynamic link library, static link library, and executable exe file.
  • the display module is further configured to control the application interface layer to display a module configuration file in response to the third operation of adding a control to the module, where the module configuration file indicates the the reference rules.
  • the display module is further configured to control the application interface layer, in response to the user's fourth operation on the first module display control among the N module display controls, to display and display all
  • the module configuration interface of the first module corresponding to the first module display control the module configuration interface includes a plurality of module configuration controls, and any module configuration control in the plurality of module configuration controls is used to instruct the user to The parameters in the execution process of the first module are edited; the device further includes an acquisition module, which is used to control the application interface layer to respond to the fifth operation of configuring the control for any of the modules, to acquire the user through the any of the modules.
  • the module configures parameters edited by the control, and sends the edited parameters to the data processing layer; an update module is used to control the data processing layer to update the module data of the first module based on the edited parameters; wherein, in When the flowchart includes the first module, the data processing layer updates the data processing result of the flowchart based on the updated module data of the first module, and returns the updated data to the applied interface layer. data processing results.
  • the module data of the first module imported by the user through the module add control also includes a module configuration interface file, and the The module interface configuration file indicates the program code of the module configuration interface of the first module; the module configuration interface of the first module displayed by the application interface layer is displayed according to the module configuration interface file in the module data of the first module .
  • the apparatus further includes: a generating module, configured to control the data processing layer to generate a first code package based on the flowchart, where the first code package indicates that the flowchart includes The execution logic of each module and the execution sequence among the included modules; the display module is further configured to control the data processing layer to control the application interface layer to display the first code control corresponding to the first code package, The first code control is used to instruct the user to download the first code package, the first code package supports importing into a third-party system, and displays the flowchart after running on the third-party system.
  • a generating module configured to control the data processing layer to generate a first code package based on the flowchart, where the first code package indicates that the flowchart includes The execution logic of each module and the execution sequence among the included modules
  • the display module is further configured to control the data processing layer to control the application interface layer to display the first code control corresponding to the first code package,
  • the first code control is used to instruct the user to download the first code package, the first code package supports importing
  • the display module is further configured to control the application interface layer to display an operation interface display control, the operation interface display control instructs to display an operation interface for the flowchart, and the operation interface is used to display the operation information of the flow chart, the operation information of the flow chart indicates intermediate data during the operation of the flow chart; the display module is further used to control the application interface layer to respond to the operation
  • the sixth operation of the interface display control is to display the running interface, so that the user can view the intermediate data in the running process of the flowchart based on the running interface.
  • the display module is further configured to control the application interface layer to display an operation interface configuration control, the operation interface configuration control instructs to display an operation interface configuration interface, and the operation interface configuration interface is used for configuring the content displayed on the running interface;
  • the display module is further configured to control the application interface layer to display the running interface configuration interface in response to a seventh operation for configuring the control on the running interface, the
  • the operation interface configuration interface includes a plurality of operation interface configuration sub-controls, and any operation interface configuration sub-control in the plurality of operation interface configuration sub-controls corresponds to an open option;
  • the display module is also used to control the application interface layer response In the eighth operation for enabling options of the first operation interface configuration sub-control among the plurality of operation interface configuration sub-controls, a content source option is displayed, and in response to the ninth operation for the content source option, the first operation interface configuration sub-control is displayed.
  • the operation interface configuration sub-control is bound to a module in the flowchart; wherein, the operation information displayed on the operation interface includes data of the
  • the apparatus further includes: an export module, configured to control the data processing layer to export the program code of the running interface as a second code package; the display module, further configured to control The data processing layer controls the application interface layer to display a second code control corresponding to the second code package, where the second code control is used to instruct the user to download the second code package, and the second code
  • the package supports importing into a third-party system, and displays the running interface after running on the third-party system.
  • the data processing layer includes a data scheduling layer and a function module layer; the function module layer stores module data of the N modules; the operation module is used to control the data
  • the scheduling layer sequentially calls and runs the respective corresponding modules of the one or more module display controls from the function module layer according to the execution sequence of the modules corresponding to the one or more module display controls in the flow chart. module data of the module to obtain the data processing result.
  • the display module is further configured to control the application interface layer to display a module registration control, and the application interface layer selects from M modules in response to the user using the module registration control
  • the N modules are displayed, and the N module display controls are displayed, wherein the data processing layer stores the module data of the M modules, and the M is a positive integer greater than or equal to the N.
  • the N modules are modules that are verified to be legal by the data processing layer, and the modules that are verified to be legal refer to corresponding modules that the user has permission to use.
  • the display module is further configured to control the application interface layer to display a call control for any module display control, where the call control indicates that the user is allowed to call the any one of the modules in a third-party system
  • a module corresponding to the module display control the display module is further configured to control the application interface layer to display the interface of the module data of the module corresponding to the any module display control in response to the tenth operation for the calling control
  • the apparatus further includes an acquisition module, configured to control the application interface layer to obtain a data call request from the data processing layer based on the interface link when detecting a data call request for the interface link sent by the third-party system.
  • the module data of the module corresponding to the display control of any module is acquired, and the acquired module data is sent to the third-party system.
  • a visual software development apparatus comprising: a processor; a memory for storing instructions executable by the processor; wherein the processor is configured to execute any of the above visual software development methods one step.
  • a computer-readable storage medium is provided, and instructions are stored on the computer-readable storage medium, and when the instructions are executed by a processor, any step in the above-mentioned visual software development method is implemented.
  • a computer program product comprising instructions that, when executed on a computer, cause the computer to perform any of the steps in the above-described vision software development method.
  • the embodiments of the present application provide a visual software development system.
  • the application interface layer in the visual software development system is used to display module add controls, and the module add controls are used to import module data of third-party modules into the data processing layer.
  • the N modules displayed by the application interface layer display the modules corresponding to the controls.
  • the user can add controls through the module to import the third-party module based on business requirements at any time, and then display the flow chart of the user configuration through the application interface layer based on the third-party module, and the flow chart is the visual configuration of the user. software, and run the flowchart through the data processing layer to complete the development process of the vision software.
  • the vision software development system provided by the embodiment of the present application is a general open vision software development system, and the vision software development system allows users to develop different third-party modules based on different business requirements, and integrates the developed third-party modules.
  • the third-party module is mounted in the software development system provided by the embodiment of the present application, so that the subsequently developed visual software can better adapt to the individual needs of different services. In this way, there is no need to configure different vision software development systems for different types of vision software, and different types of vision software can be developed on the vision software development system provided by the embodiments of the present application.
  • the user of the visual software development system provided by the embodiments of the present application can temporarily develop new third-party modules, and then mount the developed new third-party modules on the software provided by the embodiments of the present application.
  • the subsequent development of the visual software can quickly adapt to the latest needs of users.
  • FIG. 1 is a schematic diagram of the architecture of a visual software development system provided by an embodiment of the present application.
  • FIG. 2 is a schematic diagram of a main interface displayed by an application interface layer provided by an embodiment of the present application
  • FIG. 3 is a schematic diagram of a flowchart provided by an embodiment of the present application.
  • FIG. 4 is a schematic diagram of a module provided by an embodiment of the present application.
  • FIG. 5 is a schematic diagram of the format of module data of a third-party module provided by an embodiment of the present application.
  • FIG. 6 is a schematic diagram of a configuration process and a derived code of a running interface provided by an embodiment of the present application
  • FIG. 7 is a schematic diagram of a format of module data of a third-party module provided by an embodiment of the present application.
  • FIG. 8 is a schematic diagram of a configuration process and a derived code of a running interface provided by an embodiment of the present application.
  • FIG. 9 is a schematic flowchart of a module registration provided by an embodiment of the present application.
  • FIG. 10 is a flowchart of a method for module loading and module registration provided by an embodiment of the present application.
  • FIG. 11 is a flowchart of a method for configuring a flowchart provided by an embodiment of the present application.
  • FIG. 12 is a schematic structural diagram of a visual software development apparatus provided by an embodiment of the present application.
  • references herein to "a plurality” means two or more.
  • “/” means or means, for example, A/B can mean A or B;
  • "and/or” in this text is only a relationship to describe the related objects, Indicates that three relationships can exist, for example, A and/or B, can represent: A alone exists, A and B exist at the same time, and B exists alone.
  • words such as “first” and “second” are used to distinguish the same or similar items with basically the same function and effect. Those skilled in the art can understand that the words “first”, “second” and the like do not limit the quantity and execution order, and the words “first”, “second” and the like are not necessarily different.
  • the main principle of machine vision is: convert the detected target into an image signal through an image acquisition device, then perform special image processing on the image signal, and analyze the characteristic information of the detected target based on the image processing result, and then according to the characteristics of the target The information determines the detection result for the target.
  • the current machine vision technology is widely used in various fields.
  • the detection of product shape and surface defects can be realized through machine vision technology.
  • machine vision technology can assist doctors in diagnosing the size, shape and abnormality of human pathogens, thereby providing evidence for effective diagnosis.
  • machine vision technology can realize automatic recognition of license plates of vehicles that violate regulations and reverse traffic.
  • the vision software is the software for realizing the above-mentioned machine vision technology, that is, the above-mentioned specific detection function for the target can be realized through the vision software.
  • developers can use graphical flowcharts instead of traditional language codes to develop vision software. That is, the vision software can be graphically displayed in the form of a flow chart, so that developers can understand the internal execution logic of the vision software.
  • the flow chart is formed by connecting multiple modules according to a certain connection relationship, each module is used to implement a specific sub-function, and the connection relationship between each module indicates the execution of each module order.
  • the flowchart can indicate the internal execution logic of the vision software.
  • the vision software development system provided by the embodiment of the present application is applied in the scenario of developing the above-mentioned flowchart-based vision software.
  • the purpose is to provide a general vision software development system through which developers can customize the required vision software according to business requirements.
  • FIG. 1 is a schematic structural diagram of a visual software development system provided by an embodiment of the present application. As shown in FIG. 1 , the visual software development system 100 includes an application interface layer 101 and a data processing layer 102 .
  • the application interface layer 101 is used to display N module display controls, where N is a positive integer greater than or equal to 1, the N module display controls correspond to the N modules respectively, and the respective module data of the N modules is stored in the data processing layer 102.
  • the data includes the execution logic of the corresponding module.
  • the application interface layer 101 is further configured to display a flow chart in response to the first operation of the user for one or more module display controls in the N module display controls, and the flow chart indicates that the one or more module display controls correspond to the respective modules. execution order.
  • the data processing layer 102 is used to call and run the module data of the corresponding modules of one or more module display controls in response to the flowchart displayed by the application interface layer 101, obtain the data processing result of the flowchart, and return data to the application interface layer 101 process result.
  • the above-mentioned first operation may be a drag operation, a click operation, or the like.
  • a user such as a developer
  • can configure a flowchart which is a visual software that meets a specific business requirement.
  • the flowchart includes one or more modules among the N modules, and the connection relationship of the one or more modules.
  • the connection relationship between the modules in the flowchart indicates the execution order between the modules. For example, if module A points to module B in the flowchart, the data processing layer first executes the relevant logic based on the module data of module A, and then executes the relevant logic based on the module data of module B.
  • the data processing layer can call and run the module data of the modules in the flow chart based on the flow chart displayed by the application interface layer, so as to obtain the data processing result of the flow chart to complete the configuration.
  • FIG. 2 is a schematic diagram of a main interface displayed by an application interface layer provided by an embodiment of the present application.
  • the main interface includes functional areas such as a menu area, a visual tool area, a process editing area, a graphics rendering area, and a text display area.
  • the menu area is used to display various controls for the main interface, for example, including interface view controls, page partition configuration controls, and the like.
  • the visual tool area is used to display the various module display controls.
  • the process editing area is used to display the user-configured flowchart. The user can display the module display controls in the visual tool area in the process editing area by dragging and dropping to configure the flowchart.
  • the graphics rendering area is used to display the graphics processing result of a certain module in the flowchart, and the graphics processing result is given in a graphical way.
  • the text display area is used to display the data processing result of a certain module in the flow chart, and the data processing result is given in the form of text.
  • the graphics rendering area can display the graphic processing results of the module in the flowchart
  • the text display area can display the module's graphic processing results in the flowchart.
  • Data processing results in text format are both the result display area for the processing result of a certain module, and the embodiment of the present application does not limit the display mode of the processing result of a certain module, and can only be shown in the form of an illustration.
  • the display can also be displayed only in text mode, or can be displayed in graphical mode and text mode at the same time.
  • the application interface layer provided by the embodiment of the present application adopts a graphical interaction design, and a flowchart can be generated by dragging and dropping the module display controls in the visual tool area, so that the visual software adopts a graphical interface. Implemented by flow chart.
  • FIG. 3 is a schematic diagram of a flowchart provided by an embodiment of the present application.
  • the common tools on the left side of Figure 3 are the display controls of each module in the visual tool area
  • the right side of Figure 3 is the flow chart of user configuration.
  • the flow chart includes 4 modules, which are image source 1. module, fast feature analysis module, position correction module, and circle finding module.
  • the image source 1 module points to the fast feature analysis module
  • the fast feature analysis module points to the position correction module
  • the position correction module points to the circle finding module.
  • the vision software solution indicated by the flow chart is: for image source 1, first perform fast feature analysis, then perform position correction, and finally perform circle search.
  • These four modules are the modules corresponding to the module display controls in the common tool partition shown on the left side of Figure 3.
  • the main interface shown in FIG. 2 and FIG. 3 is only an example of the main interface provided by the application interface layer.
  • the functional partitions displayed on the main interface and the combination of different functional partitions can be customized by the user, which is not described in detail in this embodiment of the present application.
  • the controls shown in FIG. 2 and FIG. 3 such as the module display controls, may have the characteristics of independent encapsulation, configurable display, and the like. All other controls involved in the subsequent embodiments may have this feature, and the description will not be repeated in the following.
  • independent encapsulation means that the data corresponding to each control is independently encapsulated in the data processing layer. There is no data interaction between each control, and the data corresponding to all controls is oriented to the data processing layer. Among them, the data corresponding to each control includes the display size, display color and other information of the control displayed by the application interface layer. At this time, when the data corresponding to the control in the data processing layer changes, the control displayed by the application interface layer will follow. change. In this way, each control can be used independently, avoiding the interaction between the controls.
  • Display configurable means that the display information such as the display position, display size, and display color of each control displayed by the application interface layer can be modified by the user based on their own needs. Therefore, the controls displayed in the application interface layer can meet the needs of users as much as possible. For example, the user can drag a control with the mouse, and the application interface layer modifies the display position of the control in response to the mouse drag event for the control, and saves the modified display position of the control to the configuration corresponding to the control in the file. The configuration file corresponding to the control is recorded in the data processing layer.
  • the display size, display position, and display color of the controls displayed in the application interface layer can be modified.
  • each control has a minimum display size to avoid the display size being too small and affecting the layout of the control on the main interface.
  • the application interface layer 101 is also used to display a module adding control, and the module adding control is used to import module data of a third-party module into the data processing layer 102 .
  • the third-party module can be any functional data package configured by the user based on business requirements, based on the system shown in Figure 1, the user can add controls to the third-party module through the module displayed in the application interface layer based on business requirements at any time, and then the user can add controls to the third-party module at any time based on the business requirements.
  • the application interface layer can configure the flow chart including third-party modules, and run the flow chart through the data processing layer to complete the development process of the vision software. That is, based on the system shown in Figure 1, users can customize the vision software based on business requirements at any time.
  • the application interface layer when it detects the operation of adding a control to the module, it can display the module loading window, and then obtain the module data of the third-party module imported by the user through the module loading window, and load the module into the module. Data is stored in the data processing layer. Subsequently, the third-party module can be displayed on the application interface layer in the form of a third-party module display control. That is, the system provided by the embodiments of the present application can support adding a third-party module developed by a third-party developer into the main interface of the application interface layer.
  • the aforementioned display of the third-party module in the application interface layer in the form of a third-party module display control can be implemented by means of module registration. The relevant content of module registration will be described in detail in subsequent embodiments, and will not be described here.
  • description information of the module corresponding to the added module display control can also be added to the configuration file of the main interface.
  • the description information includes, but is not limited to, the module name, the module icon (icon), the storage path of the module data corresponding to the module, and other information.
  • the application interface layer displays the module display control corresponding to the module on the main interface, it can also display the module name, module icon and other information of the module.
  • the vision software development system provided by the embodiment of the present application is a general open vision software development system, and the vision software development system allows users to develop different third-party modules based on different business requirements, and integrates the developed third-party modules.
  • the third-party module is mounted in the software development system provided by the embodiment of the present application, so that the subsequently developed visual software can better adapt to the individual needs of different services. In this way, there is no need to configure different vision software development systems for different types of vision software, and different types of vision software can be developed on the vision software development system provided by the embodiments of the present application.
  • the user of the visual software development system provided by the embodiments of the present application can temporarily develop new third-party modules, and then mount the developed new third-party modules on the software provided by the embodiments of the present application.
  • the subsequent development of the visual software can quickly adapt to the latest needs of users.
  • the embodiment of the present application proposes a visual software development system with an open framework.
  • the visual software development system adopts an open framework design and supports users to perform secondary development at multiple levels based on the framework according to actual application requirements. Therefore, the visual software development system has both flexibility and ease of use.
  • the data processing layer 102 may further include a data scheduling layer and a function module layer.
  • the functions of the aforementioned data processing layer are distributed to the data scheduling layer and the function module layer, so as to facilitate the effective management of each module.
  • the module data of N modules is stored in the function module layer, and the data scheduling layer is used for: calling and running from the function module layer in turn according to the execution order between the corresponding modules of one or more module display controls in the flow chart
  • One or more modules display the module data of the respective modules corresponding to the controls, and obtain the data processing result.
  • the function module layer is used to encapsulate the module data of each module, and externally provide the input and output interfaces of each module.
  • the data scheduling layer is used to call the module data of the module based on the input and output interfaces of each module, and then implement the functions of each module in the flow chart. For example, when the data scheduling layer needs to call the module data of module A in the functional module layer, the data scheduling layer inputs the data required by the operation of module A to the functional module layer through the input interface of module A, and then the functional module layer based on the input The data executes the execution logic of the module A, obtains the result data, and sends the result data to the data scheduling layer through the output interface of the module A. So far, the data scheduling layer has completed the calling process of the module A in the function module layer.
  • FIG. 4 is a schematic diagram of a data scheduling layer calling module data of each module in a function module layer according to an embodiment of the present application. As shown in Figure 4, the scheduling module 1, module 2, and module 3 of the data scheduling layer are independent of each other, and there is no overlap between the calling modules. That is, each module is run separately based on the running schedule, and the result data of each module is cached.
  • the data scheduling layer can record the sequence relationship of each module call in the flowchart in a certain data structure before running the flowchart.
  • the data structure may be, for example, a tree structure or a graph structure. Then, when the data scheduling layer runs the flowchart, it traverses the data structure in a certain order, and sequentially calls the interfaces of each module of the function module layer, thereby completing the development process of the flowchart.
  • FIG. 5 is a schematic diagram of a module provided by an embodiment of the present application.
  • the modules involved in the embodiments of the present application may include four categories.
  • the first category is a module corresponding to peripheral hardware, such as an image acquisition module, a camera control module, and a light source control module.
  • the second category is the modules related to image processing, such as template matching module, geometric search module, code reading module, OCR (Optical Character Recognition, Optical Character Recognition) module and so on.
  • the third category is data processing related modules, such as data processing module, logic operation module, data statistics module and so on.
  • the fourth category is communication-related modules.
  • the visual software development system supports the independent design and development of module data of third-party modules.
  • the third-party module is not an existing module in the system itself, but a module independently designed and developed by a third-party, in order to ensure that the imported third-party module can be successfully mounted on the system provided by the embodiment of this application, the third-party module's The module data needs to meet the rules specified by the system provided by the embodiments of this application.
  • the application interface layer is used to: in response to the second operation for adding a control to a module, obtain the module data of the third-party module imported by the user through the module-adding control, and add the imported third-party module to the module data.
  • the module data is sent to the data processing layer.
  • the data processing layer is used to: store the module data of the imported third-party module under the condition that the module data of the imported third-party module satisfies the reference rules, and return the module loading success message to the application interface layer, and the module is loaded.
  • a success message indicates that the third-party module was successfully loaded.
  • the data processing layer does not store the module data of the imported third-party module, but returns a module loading failure message to the application interface layer.
  • the module load failed message indicates that the current load of the third-party module failed.
  • the data processing layer in the system will check the module data of the third-party module, only if the module data of the imported third-party module meets the reference rules. , the module data of the third-party module will be successfully loaded into the data processing layer.
  • the application interface layer in FIG. 1 is further configured to display a module configuration file in response to the third operation of adding a control to the module, the module configuration file indicating the aforementioned reference rules.
  • the above-mentioned third operation may be a click operation, a voice operation, or the like.
  • the application interface layer can display the module configuration file.
  • the module configuration file indicates the rules that the module data of the imported third-party module needs to meet, that is, the user can know the rules that the module data of the third-party module that needs to be imported currently needs to meet by consulting the module configuration file.
  • the developer who develops the third-party module can also learn the reference rules that the module data imported into the third-party module in the system needs to meet through other channels, which is not limited in this embodiment of the present application.
  • developers can learn these reference rules from the relevant paper documents of the visual software development system provided by the embodiments of the present application.
  • the above-mentioned reference rules may include the design method of the input and output interfaces of the third-party module and/or the encapsulation method of the module data of the third-party module.
  • the design method of the input and output interface of the third-party module includes the format of input data and/or output data.
  • the format of the input data or the output data may specifically include information such as the sensitivity of the data.
  • the encapsulation mode of the module data of the third-party module indicates the storage format of the module data in the data processing layer, and the storage format can include any one of a dynamic link library, a static link library, an exe (executable, executable) file, etc. .
  • the modules developed by the third party can be loaded into the data processing layer.
  • the data processing layer includes a data scheduling layer and a function module layer
  • loading a module developed by a third party into the data processing layer specifically refers to: loading module data of a module developed by a third party into the function module layer.
  • the module data of the module developed by the third party can be encapsulated into a dynamic library (or executable program) and stored in the function module layer, and the function module layer can generate the handle of the module developed by the third party (the handle is used to uniquely identify the module), so that the subsequent data scheduling layer can call the module through this handle.
  • FIG. 6 is a schematic diagram of module loading and module release provided by an embodiment of the present application.
  • the data scheduling layer can load a certain module into the function module layer in response to the operation performed by the user in the application interface layer, or can also load a certain module from the function module layer in response to the operation performed by the user in the application interface layer. Delete, that is, release the module.
  • first to third operations in the foregoing content are all user operations triggered by the user on corresponding controls, and the user operations may be click operations, voice operations, or sliding operations, and so on.
  • the first operation to the third operation are only used to distinguish different operations, and do not constitute a limitation on specific user operations. Reference may be made to this explanation for the fourth to tenth operations involved later, and the description will not be repeated hereinafter.
  • the visual software development system supports the secondary development of the module data of any module by the user.
  • the visual software development system also supports the secondary development of the module data of the modules already mounted in the system by the user.
  • the modules of secondary development can meet the latest business requirements.
  • the application interface layer is further configured to: in response to the user's fourth operation on the first module display control among the N module display controls, display the first module display control corresponding to the first module display control.
  • the module configuration interface of the module includes a plurality of module configuration controls, and any module configuration control is used to instruct the user to edit the parameters during the execution of the first module.
  • the first module display control is any one of the N module display controls.
  • the application interface layer is further configured to: in response to the fifth operation on any module configuration control, obtain parameters edited by the user through any module configuration control, and send the edited parameters to the data processing layer.
  • the data processing layer is used for: updating the module data of the first module based on the edited parameters. Through this process, the user can modify the module data of any module, so that the modified module data can meet the latest business requirements.
  • the above-mentioned timing of secondary development of the module data of any module by the user may be: after the user configures the flowchart based on the application interface layer, secondary development of the module data of a certain module included in the flowchart may be performed.
  • the data processing layer is also used to: update the data processing of the flow chart based on the updated module data of the first module result, and return the updated data processing result to the application interface layer.
  • the visual software development system will automatically update the module data based on the updated module data. Flowchart of data processing results.
  • the parameters in the execution process of the first module may include input parameters, output parameters, and other related parameters in the execution process, and so on.
  • Module configuration controls may include character configuration controls, shaping configuration controls, floating point configuration controls, enumeration configuration controls, and the like.
  • the above-mentioned module configuration interface may be an interface pre-configured by the system for all modules, that is, the module configuration interface is the default module configuration interface of the system.
  • the system pre-stores a module configuration interface file for all modules
  • the module configuration interface file is used to indicate the relevant content of the module configuration interface
  • the application interface layer can display the module configuration interface file after loading the module configuration interface file Default module configuration interface.
  • the above-mentioned fourth operation is a double-click operation.
  • the default module configuration interface file defined by the application interface layer according to XML (eXtensible Markup Language, Extensible Markup Language). dynamically generate a system default module configuration interface.
  • the module configuration interface of the first module can also be independently designed by the third party.
  • the imported module data of the first module may also include a module configuration interface file customized by a third party for the first module, and the module configuration interface file is used to indicate the first module.
  • the program code of the module configuration interface corresponding to the module is displayed according to the module configuration interface file in the module data of the first module.
  • the module configuration interface file independently designed by the third party may also be a configuration file defined by XML.
  • the third party can also specify the name of the module configuration control in a specific module configuration control library.
  • the module data of the third-party module may also include a specific module configuration control library provided by the third party.
  • the application interface layer displays the module configuration interface based on the module configuration interface file provided by the third party
  • the displayed module configuration interface includes the module configuration controls in the specific module configuration control library, so that it is convenient for the user to provide the module configuration interface based on the third-party configuration interface.
  • the module configuration control in the module configuration control library completes the configuration of third-party modules.
  • the application interface layer provides an interface for obtaining or setting parameters for the module configuration control provided by the third party, so that the user can call or modify the relevant parameters of the module configuration control provided by the third party based on these interfaces.
  • the interface for getting or setting parameters can work in the form of key-value, thereby providing basic types of module configuration controls such as integer (int), floating point (float), and string (string). support.
  • the interface for getting or setting parameters can also work in binary form. Since the working form of binary allows large blocks of data to be called, when the interface for getting or setting parameters works in binary form, the parameters of large blocks of data can be implemented. call or modify.
  • module configuration interface this module configuration interface displays module configuration controls such as input, output, operating parameters, etc., so that it is convenient for users to modify the relevant parameters of the module.
  • the third party can also import a module configuration interface file, which is equivalent to the module configuration interface provided by the third party.
  • FIG. 7 is a schematic diagram of a format of module data of a third-party module provided by an embodiment of the present application.
  • the data processing layer includes a data scheduling layer and a functional module layer.
  • the visual tool area of the main interface of the application interface layer displays a module display control for the native module, and the module display control is displayed as an icon of the native module.
  • the visual tool area also displays a module display control for the third-party module, which is displayed as the icon of the third-party module.
  • the XML corresponding to displaying such an interface is shown in Figure 7, that is, the codes of the module display controls of the two modules used for display are as follows:
  • the module data of the third-party modules is stored in the functional module layer.
  • the module data of the third-party module includes the module configuration interface file, the module dynamic library and the module configuration control library for the third-party module.
  • the code of the module data of the third-party module is as follows:
  • distearingmodule.xml/ refers to the module configuration interface file
  • distearingmodule.dll/ refers to the module dynamic library
  • distearingmoduleConfig.dll/ refers to the module configuration control library.
  • the internal execution logic of the third-party module can be obtained through the module dynamic library.
  • the module configuration control library and the module configuration interface file have been described in detail in the foregoing embodiments, and the description will not be repeated here.
  • the module configuration interface file imported by the third party and the default module configuration interface file of the system should satisfy the same rule, so that the module configuration interface provided by the third party and the embodiment of the present application
  • the default module configuration interface is compatible.
  • This part of the content can be realized by the relevant content of the rules indicated by the aforementioned module configuration file, that is, the rules included in the module configuration file include the rules that the third-party imported module configuration interface file needs to meet, which will not be described in detail here. .
  • the visual software development system supports the conversion of flowcharts into underlying codes, so that developers can further develop secondary development.
  • the system provided by the embodiment of the present application also supports the conversion of the flowchart into the underlying code, so that developers can further perform secondary development development. Therefore, in a possible implementation manner, the data processing layer is further configured to generate a first code package based on the flow chart, where the first code package indicates the execution logic of each module included in the flow chart and the execution sequence among the included modules , that is, the first code package instructs the internal execution logic of the flowchart.
  • the data processing layer is also used to control the application interface layer to display the first code control corresponding to the first code package, the first code control is used to instruct the user to download the first code package, and the first code package supports importing into a third-party system , and display a flowchart after running on a third-party system.
  • the data processing layer may also store the first code package in a specified location, for example, in the function module layer.
  • the application interface layer detects the selection operation for the first code control, it can obtain the first code package, and then download the first code package to a specified location, for example, a specified location selected by the user, so that the user can download the first code package
  • the package is imported into the third-party system, so that after the first code package is run on the third-party system, the aforementioned flowchart configured on the system provided by the embodiment of the present application is displayed on the third-party system.
  • the user can further develop the flowchart based on the first code package on the third-party system to generate new visual software. That is, the embodiment of the present application also provides an export mode, through which the module calls and related data access relationships in the flowchart can be converted into codes.
  • the code can be referenced by customers or integrated into their own software.
  • the data processing layer may also send the first code package to the application interface layer, and the application interface layer displays the first code package, so that the developer can compare the first code package on the system provided by the embodiment of the present application.
  • the first code package is modified online.
  • the application interface layer may also update the displayed flowchart based on the user's modification to the first code package.
  • the visual software development system provides a running interface, so that developers can understand the key pictures, graphics, or texts involved in the running process of the visual software through the running interface.
  • the vision software development system It also supports displaying background running information of the flowchart.
  • the operation information of the flowchart indicates intermediate data during the operation of the flowchart.
  • the running information of the flowchart is also the background running information. Therefore, in a possible implementation manner, the application interface layer in the system shown in FIG.
  • the application interface layer is configured to display the running interface in response to the sixth operation for displaying the control on the running interface, so that the user can view the intermediate data in the running process of the flowchart based on the running interface.
  • the application interface layer displays a running interface, and the running information of the flow chart is displayed on the running interface.
  • the running interface may be a functional partition on the current main interface.
  • the specific content displayed in the above-mentioned running interface may be the default information of the system.
  • the specific content displayed in the running interface can also be displayed as specified by the user's basic business requirements.
  • the application interface layer is also used to: display the running interface configuration control, the running interface configuration control instructs the display of the running interface configuration interface, and the running interface configuration control.
  • the interface configuration interface is used to configure the content displayed on the running interface.
  • the application interface layer is further configured to: in response to the seventh operation on the running interface configuration control, display the running interface configuration interface, where the running interface configuration interface is used for the user to configure what information needs to be displayed on the running interface and the information to be displayed. source.
  • the operation interface configuration interface includes multiple operation interface configuration sub-controls, and any operation interface configuration sub-control in the multiple operation interface configuration sub-controls corresponds to an enabling option.
  • the application interface layer is further configured to display the content source option in response to the eighth operation for enabling the option of the first operation interface configuration sub-control among the plurality of operation interface configuration sub-controls, and in response to the ninth operation for the content source option operation, bind the first running interface configuration sub-control to a module in the flow chart.
  • display information corresponding to the first operation interface configuration sub-control can be displayed on the operation interface, and the display information comes from and the first operation interface Configure the data of the module that the child control is bound to.
  • the system shown in FIG. 1 provides an editable running interface, so that the user can design the running interface of the flowchart according to actual application requirements.
  • the above-mentioned operating interface configuration sub-controls may include image controls, text display boxes, parameter setting boxes, status lights, buttons, tables, and the like.
  • the system provided by the embodiments of the present application also supports converting the running interface into underlying code, so that developers can further develop secondary development.
  • the data processing layer is further configured to export the program code of the running interface as a second code package.
  • the data processing layer is also used to control the application interface layer to display the second code control corresponding to the second code package, the second code control is used to instruct the user to download the second code package, the second code package supports importing into a third-party system, and The running interface is displayed after running on a third-party system.
  • the data processing layer may also store the second code package in a specified location, for example, in the function module layer. Then, when the application interface layer detects the selection operation for the second code control, it can obtain the second code package, and then download the second code package to a specified location, for example, a specified location selected by the user, so that the user can download the second code package
  • the second code package is imported into the third-party system, and after running on the third-party system, the aforementioned running interface configured on the system provided by the embodiment of the present application is displayed.
  • the user can further develop the vision software based on the second code package in the third-party system to generate a new operating interface.
  • the operating interface can be translated into code, thereby forming an export code project based on the interface development SDK (Software Development Kit, software development kit), so that customers can continue to develop based on the project. other functions, or integrate the vision part into their software. That is, by translating the running interface into code, the running interface is opened to customers.
  • interface development SDK Software Development Kit, software development kit
  • FIG. 8 is a schematic diagram of a configuration process and export code of a running interface provided by an embodiment of the present application.
  • the operation interface of the configuration is indicated in the box above in Fig. 8.
  • the operation interface is used to display an image, and the image is the image processed by the circle search after the image is captured by the camera, and the camera is displayed in the operation interface.
  • the connection status is displayed, and the running interface also displays the circle radius determined after the circle search is performed for the image captured by the camera, and so on.
  • the image displayed on the running interface is determined according to the data after the camera module is executed and the data after the circle search module is executed.
  • the circle radius determined after the circle search is executed is determined according to the data after the circle search module is executed.
  • the camera connection state is determined according to data during the execution of the camera module.
  • a single operation or multiple operations can also be displayed on the operation interface.
  • a single operation indicates that the flowchart is only executed once, and multiple operations indicate that the flowchart is executed multiple times.
  • the content displayed on the aforementioned running interface and the source of the displayed content can be implemented through the relevant running interface configuration sub-controls on the aforementioned running interface configuration interface, which will not be described one by one here.
  • the code corresponding to the running interface indicated in the dotted box at the bottom of Fig. 8 is displayed in text mode, that is, the client can display the running interface at the top of Fig. 8 in his own software through this code, so as to realize The operating interface is open to the outside world.
  • the visual software development system supports the registration and legal verification of modules.
  • the data processing layer may store module data of a large number of modules.
  • the data processing layer may store module data of a large number of modules.
  • the data processing layer is used to store module data of M modules, where M is a positive integer greater than or equal to N.
  • the application interface layer is further configured to display module registration controls, and the application interface layer is configured to display N module display controls in response to N modules selected by the user from the M modules through the module registration controls. That is, when the system is initialized, the user can select some modules to register with the application interface layer through the module registration control. In this way, the application interface layer does not need to display all the modules of the data processing layer, so as to simplify the main interface displayed by the current application interface layer.
  • the module registered in the application interface layer is the module that has passed the legal verification. That is, the N modules corresponding to the N module display controls displayed on the application interface layer shown in FIG. 1 are modules that are valid for verification at the data processing layer. Among them, the module that is valid for verification refers to the corresponding module that the user has permission to use.
  • the permission permission of each module may be pre-configured, and the permission permission indicates which users are allowed to use the corresponding module. In this way, when a user registers a module through the above method, the system will verify the user's authority, and if the user is not within the allowable authority of the module, the system will refuse the user to register the module.
  • FIG. 9 is a schematic flowchart of a module registration provided by an embodiment of the present application.
  • the application interface layer detects that the user currently needs to register a certain module based on the user's operation on the application interface layer, the application interface layer will send a registration request to the data scheduling layer.
  • the data scheduling layer receives the registration request (that is, receives the information), it verifies the user's authority. If the verification is passed, the module is added to the list of registered modules, and the result of the registration is sent to the application interface layer. Make the application interface layer display the module display control for the module when the registration is passed.
  • the verification process shown in FIG. 9 is implemented when the module is registered.
  • the verification process can also be implemented in the module loading process shown in FIG. 6 , which will not be described in detail here. .
  • the visual software development system supports third parties to call the modules mounted under this system.
  • the visual software development system may also allow the customer to call the modules mounted under the system into other software, thereby facilitating the customer to quickly develop other modules based on the modules mounted under the system. Therefore, in a possible implementation manner, the application interface layer is also used to: display a call control for any module display control, and the call control indicates that the user is allowed to call a module corresponding to any module display control in a third-party system. In this scenario, the application interface layer is further configured to: in response to the tenth operation for calling the control, display the interface link of the module data of the module corresponding to the display control of any module.
  • the application interface layer is also used to obtain the module data of the module corresponding to the display control of any module from the data processing layer based on the interface link when detecting the data call request sent by the third-party system for the interface link, and use the acquired module data Send to third-party systems.
  • the interface link of the module data corresponding to the module can be provided, so that the customer can use it in other software.
  • the embodiments of the present application provide a visual software development system.
  • the application interface layer in the visual software development system is used to display module add controls, and the module add controls are used to import module data of third-party modules into the data processing layer.
  • the N modules displayed by the application interface layer display the modules corresponding to the controls.
  • the user can add controls through the module to import the third-party module based on business requirements at any time, and then display the flow chart of the user configuration through the application interface layer based on the third-party module, and the flow chart is the visual configuration of the user. software, and run the flowchart through the data processing layer to complete the development process of the vision software.
  • the vision software development system provided by the embodiment of the present application is a general open vision software development system, and the vision software development system allows users to develop different third-party modules based on different business requirements, and integrates the developed third-party modules.
  • the third-party module is mounted in the software development system provided by the embodiment of the present application, so that the subsequently developed visual software can better adapt to the individual needs of different services. In this way, there is no need to configure different vision software development systems for different types of vision software, and different types of vision software can be developed on the vision software development system provided by the embodiments of the present application.
  • the user of the visual software development system provided by the embodiments of the present application can temporarily develop new third-party modules, and then mount the developed new third-party modules on the software provided by the embodiments of the present application.
  • the subsequent development of the visual software can quickly adapt to the latest needs of users.
  • FIG. 10 is a schematic flowchart of a module loading and module registration provided by an embodiment of the present application. As shown in Figure 10, the method includes the following steps.
  • Step 1001 The application interface layer, in response to the second operation of adding a control to the module, obtains the module data of the third-party module imported by the user through the module adding control, and sends the module data of the imported third-party module to the data processing layer.
  • Step 1002 The data processing layer stores the module data of the imported third-party module under the condition that the module data of the imported third-party module satisfies the reference rules, and returns a module loading success message to the application interface layer, and the module loading success message indicates success. Load third-party modules.
  • Step 1003 The application interface layer displays the module registration controls, and the application interface layer displays N module display controls in response to the N modules selected by the user from the M modules through the module registration control, wherein the data processing layer stores the data of the M modules.
  • Module data, M is a positive integer greater than or equal to N.
  • FIG. 11 is a flowchart of a method for configuring a flowchart provided by an embodiment of the present application. As shown in FIG. 11 , the method includes the following steps:
  • Step 1101 the application interface layer displays N module display controls and module add controls, the N module display controls correspond to the N modules respectively, the module data of the N modules is stored in the data processing layer, and the module data includes the execution logic of the corresponding modules , the application interface layer also displays a module adding control, the module adding control is used to import the module data of the third-party module to the data processing layer, N modules include third-party modules, and N is a positive integer greater than or equal to 1.
  • Step 1102 In response to the user's first operation on one or more of the N module display controls, the application interface layer displays a flow chart indicating the communication between the modules corresponding to the one or more module display controls. execution order.
  • Step 1103 In response to the flowchart displayed by the application interface layer, the data processing layer calls and runs the module data of the corresponding modules of one or more module display controls, obtains the data processing result of the flowchart, and returns the data processing to the application interface layer. result.
  • the reference rule includes the design method of the input and output interface of the third-party module and/or the encapsulation method of the module data of the third-party module; wherein, The design method of the input and output interface of the third-party module includes the format of the input data and/or output data of the third-party module, and the encapsulation method of the module data of the third-party module indicates the storage format of the module data of the third-party module in the data processing layer, and the storage format of the module data of the third-party module.
  • the format includes any one of dynamic link library, static link library, and executable exe file.
  • the method further includes: the application interface layer, in response to the third operation of adding a control to the module, displays a module configuration file, where the module configuration file indicates a reference rule.
  • the method further includes: in response to a user's fourth operation on the first module display control among the N module display controls, the application interface layer displays the display control of the first module corresponding to the first module display control.
  • the module configuration interface includes multiple module configuration controls, and any one of the multiple module configuration controls is used to instruct the user to edit the parameters in the execution process of the first module; the application interface layer responds to any one of the module configuration controls.
  • the fifth operation of the module configuration control is to obtain parameters edited by the user through any module configuration control, and send the edited parameters to the data processing layer; the data processing layer updates the module data of the first module based on the edited parameters; wherein, in the process When the diagram includes the first module, the data processing layer returns the updated data processing result to the application interface layer based on the updated data processing result of the module data update flowchart of the first module.
  • the module data of the first module imported by the user through the module add control also includes a module configuration interface file, and the module interface configuration file indicates the first module
  • the program code of the module configuration interface the module configuration interface of the first module displayed by the application interface layer is displayed according to the module configuration interface file in the module data of the first module.
  • the method further includes: the data processing layer generates a first code package based on the flow chart, where the first code package indicates the execution logic of each module included in the flow chart and the execution sequence among the included modules
  • the data processing layer controls the application interface layer to display the first code control corresponding to the first code package, the first code control is used to instruct the user to download the first code package, the first code package supports importing into the third-party system, and on the third-party system
  • the flowchart is displayed after running.
  • the method further includes: the application interface layer displays a running interface display control, the running interface display control instructs to display the running interface for the flowchart, the running interface is used to display the running information of the flowchart, and the The running information indicates intermediate data during the running process of the flowchart; the application interface layer displays the running interface in response to the sixth operation on the running interface display control, so that the user can view the intermediate data during the running process of the flowchart based on the running interface.
  • the method further includes: the application interface layer displays a running interface configuration control, the running interface configuration control instructs to display the running interface configuration interface, and the running interface configuration interface is used to configure the content displayed on the running interface;
  • the application interface layer displays an operation interface configuration interface in response to the seventh operation for the operation interface configuration control, the operation interface configuration interface includes a plurality of operation interface configuration sub-controls, and any operation interface configuration sub-control in the plurality of operation interface configuration sub-controls corresponds to There is an open option;
  • the application interface layer displays the content source option in response to the eighth operation for the open option of the first operation interface configuration sub-control in the plurality of operation interface configuration sub-controls, and in response to the ninth operation for the content source option, will
  • the first operation interface configuration sub-control is bound to a module in the flowchart; wherein, the operation information displayed on the operation interface includes data of the module bound to the first operation interface configuration sub-control.
  • the method further includes: the data processing layer exports the program code of the running interface as a second code package; the data processing layer controls the application interface layer to display the second code control corresponding to the second code package, and the first The second code control is used to instruct the user to download the second code package, the second code package supports importing into the third-party system, and displays the running interface after running on the third-party system.
  • the data processing layer includes a data scheduling layer and a function module layer; the function module layer stores module data of N modules; the data processing layer calls and runs a flowchart in response to the flowchart displayed by the application interface layer. or multiple modules display the module data of the respective modules corresponding to the controls, and obtain the data processing result of the flow chart, including: the data scheduling layer, according to the execution order between the corresponding modules of the one or more module display controls in the flow chart, sequentially from In the function module layer, one or more modules are called and run to display the module data of the respective modules corresponding to the controls, and the data processing result is obtained.
  • the N modules are modules that are valid for verification at the data processing layer, and the modules that are valid for verification refer to corresponding modules that the user has permission to use.
  • the method further includes: the application interface layer displays a call control for any module display control, and the call control indicates that the user is allowed to call a module corresponding to any module display control in a third-party system; the application interface layer In response to the tenth operation for calling the control, display the interface link of the module data of the module corresponding to any module display control; when the application interface layer detects the data calling request for the interface link sent by the third-party system, based on the interface link Obtain the module data of the module corresponding to any module display control from the data processing layer, and send the obtained module data to the third-party system.
  • the embodiments of the present application provide a visual software development method.
  • the application interface layer in the visual software development system to which the method is applied is used to display the module addition control, and the module addition control is used to import the module data of the third-party module into the data processing layer.
  • the N modules displayed by the application interface layer are displayed.
  • the module corresponding to the control can include third-party modules. Therefore, in the embodiment of the present application, the user can add controls through the module to import the third-party module based on business requirements at any time, and then display the flow chart of the user configuration through the application interface layer based on the third-party module, and the flow chart is the visual configuration of the user. software, and run the flowchart through the data processing layer to complete the development process of the vision software.
  • the vision software development system provided by the embodiment of the present application is a general open vision software development system, and the vision software development system allows users to develop different third-party modules based on different business requirements, and integrates the developed third-party modules.
  • the third-party module is mounted in the software development system provided by the embodiment of the present application, so that the subsequently developed visual software can better adapt to the individual needs of different services. In this way, there is no need to configure different vision software development systems for different types of vision software, and different types of vision software can be developed on the vision software development system provided by the embodiments of the present application.
  • the user of the visual software development system provided by the embodiments of the present application can temporarily develop new third-party modules, and then mount the developed new third-party modules on the software provided by the embodiments of the present application.
  • the subsequent development of the visual software can quickly adapt to the latest needs of users.
  • FIG. 12 is a schematic structural diagram of a visual software development device provided by an embodiment of the present application.
  • the device is deployed in a visual software development system, and the visual software development system includes an application interface layer and a data processing layer.
  • the visual software development apparatus 1200 includes the following modules.
  • the display module 1201 is used to control the application interface layer to display N module display controls, the N module display controls correspond to the N modules respectively, the module data of the N modules is stored in the data processing layer, and the module data includes the execution logic of the corresponding module , the application interface layer also displays a module add control, the module add control is used to import the module data of the third-party module to the data processing layer, N modules include third-party modules, and N is a positive integer greater than or equal to 1; display module 1201, It is also used to control the application interface layer to display a flow chart in response to the first operation of the user for one or more module display controls in the N module display controls, and the flow chart indicates that the one or more module display controls correspond to the respective modules.
  • the operation module 1202 is used to control the data processing layer to respond to the flow chart displayed by the application interface layer, call and run the module data of the corresponding modules of one or more module display controls, obtain the data processing result of the flow chart, and send the The application interface layer returns the data processing result.
  • the device further includes: an acquisition module, configured to control the application interface layer to acquire the module data of the third-party module imported by the user through the module addition control in response to the second operation for adding the control to the module, and to The module data of the imported third-party module is sent to the data processing layer; the verification module is used to control the data processing layer to store the module data of the imported third-party module under the condition that the module data of the imported third-party module meets the reference rules, A module loading success message is returned to the application interface layer, and the module loading success message indicates that the third-party module is successfully loaded.
  • an acquisition module configured to control the application interface layer to acquire the module data of the third-party module imported by the user through the module addition control in response to the second operation for adding the control to the module, and to The module data of the imported third-party module is sent to the data processing layer
  • the verification module is used to control the data processing layer to store the module data of the imported third-party module under the condition that the module data of the imported third-party module meets the reference rules,
  • the reference rule includes the design method of the input and output interface of the third-party module and/or the encapsulation method of the module data of the third-party module; wherein, the design method of the input and output interface of the third-party module includes the third-party module.
  • the format of the input data and/or output data of the module, the encapsulation method of the module data of the third-party module indicates the storage format of the module data of the third-party module in the data processing layer, the storage format includes dynamic link library, static link library, executable exe any of the files.
  • the display module is further configured to control the application interface layer to display the module configuration file in response to the third operation of adding a control to the module, and the module configuration file indicates the reference rule.
  • the display module is further configured to control the application interface layer to display the first module display control corresponding to the first module display control in response to the user's fourth operation on the first module display control among the N module display controls.
  • a module configuration interface of the module includes a plurality of module configuration controls, and any one of the plurality of module configuration controls is used to instruct the user to edit the parameters in the execution process of the first module;
  • the device further includes an acquisition module , used to control the application interface layer to respond to the fifth operation of configuring the control for any module, obtain the parameters edited by the user through any module configuration control, and send the edited parameters to the data processing layer; update module, used to control data processing The layer updates the module data of the first module based on the edited parameters; wherein, in the case that the flow chart includes the first module, the data processing layer updates the data processing result of the flow chart based on the updated module data of the first module, and reports to the application The interface layer returns the updated data processing result.
  • the module data of the first module imported by the user through the module add control also includes a module configuration interface file, and the module interface configuration file indicates the first module
  • the program code of the module configuration interface the module configuration interface of the first module displayed by the application interface layer is displayed according to the module configuration interface file in the module data of the first module.
  • the apparatus further includes: a generating module, configured to control the data processing layer to generate a first code package based on the flowchart, where the first code package indicates the execution logic of each module included in the flowchart and each included The execution sequence between modules; the display module is also used to control the data processing layer to control the application interface layer to display the first code control corresponding to the first code package, the first code control is used to instruct the user to download the first code package, the first code Packages support importing into third-party systems and display flowcharts after running on third-party systems.
  • the display module is further configured to control the application interface layer to display the operation interface display control, the operation interface display control instructs to display the operation interface for the flowchart, the operation interface is used to display the operation information of the flowchart, and the process
  • the running information of the graph indicates the intermediate data during the running process of the flow chart;
  • the display module is further configured to control the application interface layer to display the running interface in response to the sixth operation of the display control for the running interface, so that the user can view the flow chart based on the running interface.
  • Intermediate data during operation is further configured to control the application interface layer to display the operation interface display control, the operation interface display control instructs to display the operation interface for the flowchart, the operation interface is used to display the operation information of the flowchart, and the process
  • the running information of the graph indicates the intermediate data during the running process of the flow chart;
  • the display module is further configured to control the application interface layer to display the running interface in response to the sixth operation of the display control for the running interface, so that the user can view the flow chart based
  • the display module is further configured to control the application interface layer to display a running interface configuration control, the running interface configuration control instructs the display of the running interface configuration interface, and the running interface configuration interface is used to display the content displayed on the running interface.
  • the display module is further configured to control the application interface layer to display the operation interface configuration interface in response to the seventh operation for the operation interface configuration control, the operation interface configuration interface includes a plurality of operation interface configuration sub-controls, and a plurality of operation interface configuration sub-controls Any one of the operation interface configuration sub-controls corresponds to an opening option;
  • the display module is also used to control the application interface layer to respond to the eighth operation for the opening option of the first operation interface configuration sub-control in the plurality of operation interface configuration sub-controls to display
  • the content source option in response to the ninth operation for the content source option, binds the first operation interface configuration sub-control to a module in the flowchart; wherein, the operation information displayed on the operation interface includes the configuration with the first operation interface The data of the module to which
  • the device further includes: an export module for controlling the data processing layer to export the program code of the running interface as a second code package; a display module for controlling the data processing layer to control the application interface layer
  • the second code control corresponding to the second code package is displayed.
  • the second code control is used to instruct the user to download the second code package.
  • the second code package supports importing into a third-party system, and displays a running interface after running on the third-party system.
  • the data processing layer includes a data scheduling layer and a function module layer;
  • the function module layer stores module data of N modules;
  • an operation module is used to control the data scheduling layer to follow one or more of the flow charts
  • the module displays the execution sequence between the modules corresponding to the controls, and sequentially calls and runs one or more modules from the function module layer to display the module data of the modules corresponding to the controls to obtain the data processing result.
  • the display module is further configured to control the application interface layer to display the module registration control, and the application interface layer displays the N modules in response to the N modules selected by the user from the M modules through the module registration control.
  • a control wherein the data processing layer stores module data of M modules, where M is a positive integer greater than or equal to N.
  • the N modules are modules that are valid for verification at the data processing layer, and the modules that are valid for verification refer to corresponding modules that the user has permission to use.
  • the display module is also used to control the application interface layer to display a call control for any module display control, and the call control indicates that the user is allowed to call a module corresponding to any module display control in a third-party system;
  • display The module is also used to control the application interface layer to display the interface link of the module data of the module corresponding to the display control of any module in response to the tenth operation for calling the control;
  • the device also includes an acquisition module for controlling the application interface layer in the When detecting a data call request for the interface link sent by the third-party system, obtain the module data of the module corresponding to any module display control from the data processing layer based on the interface link, and send the obtained module data to the third-party system.
  • the embodiments of the present application provide an apparatus for developing visual software.
  • the application interface layer in the visual software development system where the device is deployed is used to display the module addition control, and the module addition control is used to import the module data of the third-party module into the data processing layer.
  • the N modules displayed by the application interface layer display
  • the module corresponding to the control can include third-party modules. Therefore, in the embodiment of the present application, the user can add controls through the module to import the third-party module based on business requirements at any time, and then display the flow chart of the user configuration through the application interface layer based on the third-party module, and the flow chart is the visual configuration of the user. software, and run the flowchart through the data processing layer to complete the development process of the vision software.
  • the vision software development system provided by the embodiment of the present application is a general open vision software development system, and the vision software development system allows users to develop different third-party modules based on different business requirements, and integrates the developed third-party modules.
  • the third-party module is mounted in the software development system provided by the embodiment of the present application, so that the subsequently developed visual software can better adapt to the individual needs of different services. In this way, there is no need to configure different vision software development systems for different types of vision software, and different types of vision software can be developed on the vision software development system provided by the embodiments of the present application.
  • the user of the visual software development system provided by the embodiments of the present application can temporarily develop new third-party modules, and then mount the developed new third-party modules on the software provided by the embodiments of the present application.
  • the subsequent development of the visual software can quickly adapt to the latest needs of users.
  • the vision software development apparatus when the vision software development apparatus provided by the above embodiment develops the vision software, only the division of the above functional modules is used as an example for illustration. In practical applications, the above functions can be allocated to different functional modules as required. , that is, dividing the internal structure of the device into different functional modules to complete all or part of the functions described above.
  • the visual software development apparatus provided by the above embodiments and the visual software development method embodiments belong to the same concept, and the specific implementation process thereof is detailed in the method embodiments, which will not be repeated here.
  • a visual software development apparatus comprising: a processor; a memory for storing instructions executable by the processor; wherein the processor is configured to execute any step in the above-mentioned visual software development method.
  • a computer-readable storage medium is provided, and instructions are stored on the computer-readable storage medium, and when the instructions are executed by a processor, any step in the above-mentioned visual software development method is implemented.
  • a computer program product comprising instructions that, when executed on a computer, cause the computer to perform any of the steps in the above-described vision software development method.

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

视觉软件开发系统、方法、装置及计算机存储介质
本申请要求于2021年03月08日提交中国专利局、申请号为202110251760.X发明名称为“视觉软件开发系统、方法、装置及计算机存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请实施例涉及机器视觉技术领域,特别涉及一种视觉软件开发系统、方法、装置及计算机存储介质。
背景技术
机器视觉是指通过机器代替人眼来做测量或判断的技术。在机器视觉技术领域中,通过图形化的流程图替代传统的语言代码作为软件来实现某个具体的功能,从而便于更多用户能够快速开发自身需求的视觉软件。在机器视觉领域中,视觉软件还可以称为机器视觉软件。而视觉软件需要基于视觉软件开发系统来实现。由于不同的视觉软件对应的不同的用户需求,因此,当前针对视觉软件开发系统需要重点解决的问题为:如何构建视觉软件开发系统以使基于视觉软件开发系统所定制的视觉软件满足用户需求。
相关技术中,为了使得开发出的视觉软件满足用户需求,通常是针对每一类视觉软件配置一个视觉软件开发系统。这样视觉软件开发系统具有专业性,基于该视觉软件开发系统开发的视觉软件能够满足指定的用户需求。但是相关技术中的视觉软件开发系统不具有通用性,导致需要针对不同类型的视觉软件分别配置不同的视觉软件开发系统。且在用户需求临时发生变化时,基于已有的视觉软件开发系统开发的视觉软件难以满足用户最新的需求。
发明内容
本申请实施例提供了一种视觉软件开发系统、方法、装置及计算机存储介质,可以用于开发满足不同业务需求的视觉软件。所述技术方案如下:
一方面,提供了一种视觉软件开发系统,所述视觉软件开发系统包括应用界面层和数据处理层;所述应用界面层用于:显示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所示,数据处理层102还可以进一步包括数据调度层和功能模块层。这种场景下,前述数据处理层的功能分散到数据调度层和功能模块层上,以便于对各个模块进行 有效管理。其中,功能模块层中存储N个模块的模块数据,数据调度层用于:按照流程图中一个或多个模块显示控件各自对应的模块之间的执行顺序,依次从功能模块层中调用并运行一个或多个模块显示控件各自对应的模块的模块数据,得到数据处理结果。
也即是,功能模块层用于封装各个模块的模块数据,并对外提供各个模块的输入输出接口。数据调度层用于基于各个模块的输入输出接口调用模块的模块数据,然后实现流程图中各个模块的功能。比如,当数据调度层需要调用功能模块层中的模块A的模块数据时,数据调度层通过模块A的输入接口向功能模块层输入模块A运行时所需的数据,然后功能模块层基于输入的数据执行模块A的执行逻辑,得到结果数据,并将结果数据通过模块A的输出接口发送至数据调度层。至此,数据调度层完成了对功能模块层中模块A的调用过程。
需要说明的是,为了提高功能模块层中各个模块的模块数据的安全性,功能模块层中各个模块的模块数据是独立封装的。也即是,功能模块层中各个模块之间没有通信。统一由数据调度层来调用功能模块层中的数据。图4是本申请实施例提供的一种数据调度层调用功能模块层中各个模块的模块数据的示意图。如图4所示,数据调度层调度模块一、模块二以及模块三之间是相互独立,调用各个模块之间并没有交叉。即,基于运行调度分别运行每一模块,并对每一模块的结果数据进行数据缓存。
在数据处理层包括数据调度层和功能模块层的场景下,数据调度层在运行流程图之前,可以先将流程图中各个模块调用的顺序关系记录在一定的数据结构中。该数据结构比如可以为树结构或者图结构。然后数据调度层运行流程图时按照一定的顺序遍历这个数据结构,依次调用功能模块层各个模块的接口,从而完成对流程图的开发流程。
此外,本申请实施例涉及的模块可以为实现任意功能的模块。该模块可以包括算法模块、图像采集模块、数据运算模块、外设控制模块、通信模块等。本申请实施例对此不做限定。图5是本申请实施例提供的一种模块的示意图。如图5所示,本申请实施例涉及的模块可以包括四大类,第一类为外设硬件对应的模块,比如图像采集模块、相机控制模块、光源控制模块等。第二类为图像处理相关的模块,比如模板匹配模块、几何查找模块、读码模块、OCR(Optical Character Recognition,光学字符识别)模块等等。第三类为数据处理相关的模块,比如数据处理模块、逻辑运算模块、数据统计模块等等。第四类为通信相关的模块。
上述用于对本申请实施例提供的视觉软件开发系统的关键功能进行解释说明,下面对图1所示的系统的其他功能进一步详细说明。需要说明的是,下述几个功能仅仅是对本申请实施例涉及的功能示例说明,并不构成对图1所示的系统的功能的限定。
1、视觉软件开发系统支持第三方模块的模块数据的自主设计和开发。
由于第三方模块并不是系统本身已经有的模块,而是由第三方自主设计和开发的模块,为了保证导入的第三方模块能够成功挂载到本申请实施例提供的系统上,第三方模块的模块数据需要满足本申请实施例提供的系统指定的规则。
因此,在一种可能的实现方式中,应用界面层用于:响应于针对模块添加控件的第二操作,获取用户通过该模块添加控件导入的第三方模块的模块数据,将导入的第三方模块的模块数据发送至数据处理层。这种场景下,数据处理层用于:在检验导入的第三方模块的模块数据满足参考规则的情况下,存储导入的第三方模块的模块数据,向应用界面层返回模块加载成功消息,模块加载成功消息指示成功加载第三方模块。相应地,在检验导入的第三方模块的模块数据不满足参考规则的情况下,数据处理层并不会存储导入的第三方模块的模块数据,而是向应用界面层返回模块加载失败消息,该模块加载失败消息指示当前加载第三方模块失败了。
也即是,在开发人员向本系统导入第三方模块时,系统中的数据处理层会对第三方模块的模块数据进行检验,只有在检验导入的第三方模块的模块数据满足参考规则的情况下,才会将第三方模块的模块数据成功加载至数据处理层。从而保证挂载在申请实施例提供的视觉软件开发系统下的第三方模块能够和视觉软件开发系统自身已有的模块相兼容。
另外,为了便于开发人员快速了解到导入到本系统中第三方模块的模块数据需要满足的规则,系统可以对外说明第三方模块的模块数据需要满足的参考规则。因此,在一种可能的实现方式中,图1中的应用界面层还用于:响应于针对模块添加控件的第三操作,显示模块配置文件,该模块配置文件指示前述的参考规则。上述第三操作可以为点击操作、语音操作等等。比如,第三操作为右键双击操作,则当用户通过鼠标右键双击主界面上显示的模块添加控件时,应用界面层便可显示模块配置文件。该模块配 置文件指示导入的第三方模块的模块数据需满足的规则,也即是,用户通过查阅该模块配置文件,便可了解到当前需要导入的第三方模块的模块数据需要满足的规则。
可选地,开发第三方模块的开发人员还可以通过其他途径获知导入到本系统中第三方模块的模块数据需要满足的参考规则,本申请实施例对此不做限定。比如,开发人员可以通过该本申请实施例提供的视觉软件开发系统的相关纸质文档中获知这些参考规则。
具体地,上述参考规则可以包括第三方模块的输入输出接口的设计方式和/或第三方模块的模块数据的封装方式。其中,第三方模块的输入输出接口的设计方式包括输入数据和/或输出数据的格式。其中,输入数据或输出数据的格式具体可以包括数据的灵敏度等信息。第三方模块的模块数据的封装方式指示模块数据在数据处理层中的存储格式,该存储格式可以包括动态链接库、静态链接库、exe(execu table,可执行)文件等等中的任一种。
通过上述模块添加控件的相关功能,可以实现将第三方开发的模块加载到数据处理层。具体地,在数据处理层包括数据调度层和功能模块层的场景下,将第三方开发的模块加载到数据处理层具体是指:将第三方开发的模块的模块数据加载在功能模块层。其中,可以将第三方开发的模块的模块数据封装成动态库(或可执行程序)的形式存储在功能模块层,功能模块层可以生成第三方开发的模块的句柄(该句柄用于唯一标识该模块),以便于后续数据调度层通过该句柄调用该模块。
此外,为了进一步开放模块,图1所示的系统还可以支持将已经加载的模块删除,也即是释放模块。具体实现方式在此不再详细说明。图6是本申请实施例提供的一种模块加载和模块释放的示意图。如图6所示,数据调度层可以响应于用户在应用界面层执行的操作将某个模块加载到功能模块层,也可以响应于用户在应用界面层执行的操作将某个模块从功能模块层删除,也即是释放模块。
另外,前述内容中的第一操作至第三操作均是用户对相应控件触发的用户操作,该用户操作可以为点击操作、语音操作、或滑动操作等等。第一操作至第三操作仅仅用于区分不同的操作,并不构成对具体的用户操作的限定。后续涉及的第四操作至第十操作均可以参考该解释,后续不再重复说明。
2、视觉软件开发系统支持用户对任意模块的模块数据的二次开发。
对于已经挂载在本申请提供的系统下的模块,为了保证模块能够随时应对变化的业务需求,该视觉软件开发系统还支持用户对系统中已经挂载的模块的模块数据的二次开发,以使二次开发的模块能够符合最新的业务需求。
因此,在一种可能的实现方式中,该应用界面层还用于:响应于用户针对N个模块显示控件中第一模块显示控件的第四操作,显示和第一模块显示控件对应的第一模块的模块配置界面,模块配置界面中包括多个模块配置控件,任一模块配置控件用于指示用户对第一模块执行过程中的参数进行编辑。其中,第一模块显示控件为N个模块显示控件中任一个。这种场景下,应用界面层还用于:响应于针对任一模块配置控件的第五操作,获取用户通过任一模块配置控件编辑的参数,向数据处理层发送编辑后的参数。数据处理层用于:基于编辑后的参数更新第一模块的模块数据。通过该过程,便可实现用户对任一模块的模块数据进行修改,以使修改后的模块数据满足最新的业务需求。
此外,上述用户对任意模块的模块数据进行的二次开发的时机可以为:在用户基于应用界面层配置完流程图之后,对流程图中包括的某个模块的模块数据进行二次开发。这种场景下,假设用户是对流程图中包括的第一模块的模块数据进行二次开发,此时数据处理层还用于:基于更新后的第一模块的模块数据更新流程图的数据处理结果,并向应用界面层返回更新后的数据处理结果。
也即是,在用户基于应用界面层配置完流程图之后,如果用户对流程图中包括的某个模块的模块数据进行二次开发,那么视觉软件开发系统会自动基于更新后的模块数据更新该流程图的数据处理结果。
上述第一模块执行过程中的参数可以包括输入参数、输出参数、以及执行过程中的其他关联参数等等。模块配置控件可以包括字符配置控件,整形配置控件,浮点数配置控件,枚举配置控件等等。
上述模块配置界面可以是系统针对所有模块预先配置好的界面,也即是该模块配置界面为系统默认的模块配置界面。在一种可能的实现方式中,系统预先存储有针对所有模块的模块配置界面文件,该模块配置界面文件用于指示模块配置界面的相关内容,应用界面层加载该模块配置界面文件后便可显示默认的模块配置界面。比如,上述第四操作为双击操作,当双击主界面上显示的第一模块对应的模块显示控件时,由应用界面层根据XML(eXtensible Markup Language,可扩展标记语言)定义的默认模块配置界面文件,动态生成一个系统默认的模块配置界面。
可选地,如果上述用户进行二次开发的第一模块为第三方模块,该第一模块的模块配置界面还可以 由第三方自主设计。此时,在向系统导入第一模块的模块数据时,导入的第一模块的模块数据还可以包括第三方针对第一模块自定义的模块配置界面文件,该模块配置界面文件用于指示第一模块对应的模块配置界面的程序代码。此时,应用界面层显示的第一模块的模块配置界面是按照第一模块的模块数据中的模块配置界面文件显示的。其中,第三方自主设计的模块配置界面文件同样可以是XML定义的配置文件。
此外,在模块配置界面文件中,第三方还可以指定特定的模块配置控件库中的模块配置控件的名称。此时第三方模块的模块数据中还可以包括第三方提供的特定的模块配置控件库。这种场景下,应用界面层在基于第三方提供的模块配置界面文件显示模块配置界面时,显示的模块配置界面中包括特定的模块配置控件库中的模块配置控件,从而便于用户基于第三方提供的模块配置控件库中的模块配置控件完成第三方模块的配置工作。
其中,应用界面层为第三方提供的模块配置控件提供获取或设置参数的接口,以便用户基于这些接口对第三方提供的模块配置控件的相关参数进行调用或修改。其中,获取或设置参数的接口可以键值(K ey-Value)的形式工作,从而提供整数型(int),浮点型(float),字符串型(string)等基本类型的模块配置控件的支持。另外提供获取或设置参数的接口还可以以二进制的形式工作,由于二进制的工作形式允许对大块数据进行调用,因此获取或设置参数的接口以二进制形式工作时,可以实现大块数据的参数进行调用或修改。
综上所述,在本申请实施例中,对于系统中默认的模块(本申请实施例统称为原生模块)或第三方模块,用户通过第四操作触发模块时就可以出现系统上已经配置好的模块配置界面,这个模块配置界面显示有输入、输出、运行参数等模块配置控件,从而便于用户对模块的相关参数进行修改。可选地,对于第三方模块,第三方还可以导入一个模块配置界面文件,相当于模块配置界面是由第三方提供。
图7是本申请实施例提供的一种第三方模块的模块数据的格式示意图。如图7所示,数据处理层包括数据调度层和功能模块层。其中,应用界面层的主界面的视觉工具区显示有针对原生模块的模块显示控件,该模块显示控件显示为原生模块的图标。视觉工具区还显示有针对第三方模块的模块显示控件,该模块显示控件显示为第三方模块的图标。显示这样的界面对应的XML如图7所示,也即是,用于显示的这两个模块的模块显示控件的代码如下:
ToolBox.xml
<Tools>
<Tool name=”原生模块”icon=”./source/a.png”className=”originmodule”/>
<Tool name=”第三方模块”icon=”./source/.png”className=”disanfangmodule”/>
</Tools>
此外,如图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 (45)

  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至10任一所述的系统,其中,所述数据处理层包括数据调度层以及功能模块层;
    所述功能模块层中存储所述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所述的方法,其中,所述方法还包括:所述应用界面层响应于针对所述模块添加控件的第二操作,获取用户通过所述模块添加控件导入的第三方模块的模块数据,将导入的第三方模块的模块数据发送至所述数据处理层;所述数据处理层在检验所述导入的第三方模块的模块数据满足参考规则的情况下,存储所述导入的第三方模块的模块数据,向所述应用界面层返回模块加载成功消息,所述模块加载成功消息指示成功加载第三方模块。
  17. 如权利要求16所述的方法,其中,所述参考规则包括第三方模块的输入输出接口的设计方式和/或第三方模块的模块数据的封装方式;其中,所述第三方模块的输入输出接口的设计方式包括所述第三方模块的输入数据和/或输出数据的格式,所述第三方模块的模块数据的封装方式指示所述第三方模块的模块数据在所述数据处理层的存储格式,所述存储格式包括动态链接库、静态链接库、可执行exe文件中任一种。
  18. 如权利要求16或17所述的方法,其中,所述方法还包括:所述应用界面层响应于针对所述模块添加控件的第三操作,显示模块配置文件,所述模块配置文件指示所述参考规则。
  19. 如权利要求15所述的方法,其中,所述方法还包括:所述应用界面层响应于所述用户针对所述N个模块显示控件中第一模块显示控件的第四操作,显示和所述第一模块显示控件对应的第一模块的模块配置界面,所述模块配置界面中包括多个模块配置控件,所述多个模块配置控件中任一模块配置控件用于指示所述用户对所述第一模块执行过程中的参数进行编辑;所述应用界面层响应于针对所述任一模块配置控件的第五操作,获取用户通过所述任一模块配置控件编辑的参数,向所述数据处理层发送编辑后的参数;所述数据处理层基于所述编辑后的参数更新所述第一模块的模块数据;其中,在所述流程图包括所述第一模块的情况下,所述数据处理层基于更新后的所述第一模块的模块数据更新所述流程图的数据处理结果,向所述应用界面层返回更新后的数据处理结果。
  20. 如权利要求19所述的方法,其中,在所述第一模块为第三方模块的情况下,用户通过所述模块添加控件导入的所述第一模块的模块数据中还包括模块配置界面文件,所述模块界面配置文件指示所述第一模块的模块配置界面的程序代码;所述应用界面层显示的第一模块的模块配置界面是按照所述第一模块的模块数据中的模块配置界面文件显示的。
  21. 如权利要求15所述的方法,其中,所述方法还包括:所述数据处理层基于所述流程图生成第一代码包,所述第一代码包指示所述流程图包括的各个模块的执行逻辑以及包括的各个模块之间的执行顺序;所述数据处理层控制所述应用界面层显示所述第一代码包对应的第一代码控件,所述第一代码控件用于指示所述用户下载所述第一代码包,所述第一代码包支持导入第三方系统,并在所述第三方系统上运行后显示所述流程图。
  22. 如权利要求15所述的方法,其中,所述方法还包括:所述应用界面层显示运行界面显示控件,所述运行界面显示控件指示显示针对所述流程图的运行界面,所述运行界面用于显示所述流程图的运行信息,所述流程图的运行信息指示所述流程图运行过程中的中间数据;所述应用界面层响应于针对所述运行界面显示控件的第六操作,显示所述运行界面,以使所述用户基于所述运行界面查看所述流程图的运行过程中的中间数据。
  23. 如权利要求22所述的方法,其中,所述方法还包括:所述应用界面层显示运行界面配置控件,所述运行界面配置控件指示显示运行界面配置界面,所述运行界面配置界面用于对所述运行界面上显示的内容进行配置;所述应用界面层响应于针对所述运行界面配置控件的第七操作,显示所述运行界面配置界面,所述运行界面配置界面包括多个运行界面配置子控件,所述多个运行界面配置子控件中任一运行界面配置子控件对应有开启选项;所述应用界面层响应于针对所述多个运行界面配置子控件中第一运行界面配置子控件的开启选项的第八操作,显示内容来源选项,响应于针对所述内容来源选项的第九操作,将所述第一运行界面配置子控件和所述流程图中的一个模块进行绑定;其中,所述运行界面上显示的运行信息包括和所述第一运行界面配置子控件绑定的模块的数据。
  24. 如权利要求22所述的方法,其中,所述方法还包括:所述数据处理层将所述运行界面的程序代码导出为第二代码包;所述数据处理层控制所述应用界面层显示所述第二代码包对应的第二代码控件,所述第二代码控件用于指示所述用户下载所述第二代码包,所述第二代码包支持导入第三方系统,并在所述第三方系统上运行后显示所述运行界面。
  25. 如权利要求15-24任一所述的方法,其中,所述数据处理层包括数据调度层以及功能模块层;所述功能模块层中存储所述N个模块的模块数据;所述数据处理层响应于所述应用界面层显示的所述流程图,调用并运行所述一个或多个模块显示控件各自对应的模块的模块数据,得到所述流程图的数据处理结果,包括:所述数据调度层按照所述流程图中所述一个或多个模块显示控件各自对应的模块之间的执行顺序,依次从所述功能模块层中调用并运行所述一个或多个模块显示控件各自对应的模块的模块数据,得到所述数据处理结果。
  26. 如权利要求15所述的方法,其中,所述方法还包括:所述应用界面层显示模块注册控件,所述 应用界面层响应于所述用户通过所述模块注册控件从M个模块中选择的所述N个模块,显示所述N个模块显示控件,其中,所述数据处理层中存储有所述M个模块的模块数据,所述M为大于或等于所述N的正整数。
  27. 如权利要求26所述的方法,其中,所述N个模块为所述数据处理层校验合法的模块,所述校验合法的模块是指所述用户有权限使用的相应模块。
  28. 如权利要求15所述的方法,其中,所述方法还包括:所述应用界面层显示针对任一模块显示控件的调用控件,所述调用控件指示允许用户在第三方系统调用所述任一模块显示控件对应的模块;所述应用界面层响应于针对所述调用控件的第十操作,显示所述任一模块显示控件所对应的模块的模块数据的接口链接;所述应用界面层在检测到所述第三方系统发送的针对所述接口链接的数据调用请求时,基于所述接口链接从所述数据处理层获取所述任一模块显示控件所对应的模块的模块数据,将获取的模块数据发送至所述第三方系统。
  29. 一种视觉软件开发装置,所述装置部署于视觉软件开发系统,所述视觉软件开发系统包括应用界面层和数据处理层,所述装置包括:显示模块,用于控制所述应用界面层显示N个模块显示控件,所述N个模块显示控件分别和N个模块对应,所述N个模块各自的模块数据存储在所述数据处理层,所述模块数据包括相应模块的执行逻辑,所述应用界面层还显示有模块添加控件,所述模块添加控件用于向所述数据处理层导入第三方模块的模块数据,所述N个模块包括所述第三方模块,所述N为大于或等于1的正整数;所述显示模块,还用于控制所述应用界面层响应于用户针对所述N个模块显示控件中一个或多个模块显示控件的第一操作,显示流程图,所述流程图指示所述一个或多个模块显示控件各自对应的模块之间的执行顺序;运行模块,用于控制所述数据处理层响应于所述应用界面层显示的所述流程图,调用并运行所述一个或多个模块显示控件各自对应的模块的模块数据,得到所述流程图的数据处理结果,向所述应用界面层返回所述数据处理结果。
  30. 如权利要求29所述的装置,其中,所述装置还包括:获取模块,用于控制所述应用界面层响应于针对所述模块添加控件的第二操作,获取用户通过所述模块添加控件导入的第三方模块的模块数据,将导入的第三方模块的模块数据发送至所述数据处理层;检验模块,用于控制所述数据处理层在检验所述导入的第三方模块的模块数据满足参考规则的情况下,存储所述导入的第三方模块的模块数据,向所述应用界面层返回模块加载成功消息,所述模块加载成功消息指示成功加载第三方模块。
  31. 如权利要求30所述的装置,其中,所述参考规则包括第三方模块的输入输出接口的设计方式和/或第三方模块的模块数据的封装方式;其中,所述第三方模块的输入输出接口的设计方式包括所述第三方模块的输入数据和/或输出数据的格式,所述第三方模块的模块数据的封装方式指示所述第三方模块的模块数据在所述数据处理层的存储格式,所述存储格式包括动态链接库、静态链接库、可执行exe文件中任一种。
  32. 如权利要求30或31所述的装置,其中,所述显示模块,还用于控制所述应用界面层响应于针对所述模块添加控件的第三操作,显示模块配置文件,所述模块配置文件指示所述参考规则。
  33. 如权利要求29所述的装置,其中,所述显示模块,还用于控制所述应用界面层响应于所述用户针对所述N个模块显示控件中第一模块显示控件的第四操作,显示和所述第一模块显示控件对应的第一模块的模块配置界面,所述模块配置界面中包括多个模块配置控件,所述多个模块配置控件中任一模块配置控件用于指示所述用户对所述第一模块执行过程中的参数进行编辑;所述装置还包括获取模块,用于控制所述应用界面层响应于针对所述任一模块配置控件的第五操作,获取用户通过所述任一模块配置控件编辑的参数,向所述数据处理层发送编辑后的参数;更新模块,用于控制所述数据处理层基于所述编辑后的参数更新所述第一模块的模块数据;其中,在所述流程图包括所述第一模块的情况下,所述数据处理层基于更新后的所述第一模块的模块数据更新所述流程图的数据处理结果,向所述应用界面层返回更新后的数据处理结果。
  34. 如权利要求33所述的装置,其中,在所述第一模块为第三方模块的情况下,用户通过所述模块添加控件导入的所述第一模块的模块数据中还包括模块配置界面文件,所述模块界面配置文件指示所述第一模块的模块配置界面的程序代码;所述应用界面层显示的第一模块的模块配置界面是按照所述第一模块的模块数据中的模块配置界面文件显示的。
  35. 如权利要求29所述的装置,其中,所述装置还包括:生成模块,用于控制所述数据处理层基于所述流程图生成第一代码包,所述第一代码包指示所述流程图包括的各个模块的执行逻辑以及包括的各 个模块之间的执行顺序;所述显示模块,还用于控制所述数据处理层控制所述应用界面层显示所述第一代码包对应的第一代码控件,所述第一代码控件用于指示所述用户下载所述第一代码包,所述第一代码包支持导入第三方系统,并在所述第三方系统上运行后显示所述流程图。
  36. 如权利要求29所述的装置,其中,所述显示模块,还用于控制所述应用界面层显示运行界面显示控件,所述运行界面显示控件指示显示针对所述流程图的运行界面,所述运行界面用于显示所述流程图的运行信息,所述流程图的运行信息指示所述流程图运行过程中的中间数据;所述显示模块,还用于控制所述应用界面层响应于针对所述运行界面显示控件的第六操作,显示所述运行界面,以使所述用户基于所述运行界面查看所述流程图的运行过程中的中间数据。
  37. 如权利要求36所述的装置,其中,所述显示模块,还用于控制所述应用界面层显示运行界面配置控件,所述运行界面配置控件指示显示运行界面配置界面,所述运行界面配置界面用于对所述运行界面上显示的内容进行配置;所述显示模块,还用于控制所述应用界面层响应于针对所述运行界面配置控件的第七操作,显示所述运行界面配置界面,所述运行界面配置界面包括多个运行界面配置子控件,所述多个运行界面配置子控件中任一运行界面配置子控件对应有开启选项;所述显示模块,还用于控制所述应用界面层响应于针对所述多个运行界面配置子控件中第一运行界面配置子控件的开启选项的第八操作,显示内容来源选项,响应于针对所述内容来源选项的第九操作,将所述第一运行界面配置子控件和所述流程图中的一个模块进行绑定;其中,所述运行界面上显示的运行信息包括和所述第一运行界面配置子控件绑定的模块的数据。
  38. 如权利要求36所述的装置,其中,所述装置还包括:导出模块,用于控制所述数据处理层将所述运行界面的程序代码导出为第二代码包;所述显示模块,还用于控制所述数据处理层控制所述应用界面层显示所述第二代码包对应的第二代码控件,所述第二代码控件用于指示所述用户下载所述第二代码包,所述第二代码包支持导入第三方系统,并在所述第三方系统上运行后显示所述运行界面。
  39. 如权利要求29-38任一所述的装置,其中,所述数据处理层包括数据调度层以及功能模块层;所述功能模块层中存储所述N个模块的模块数据;所述运行模块,用于控制所述数据调度层按照所述流程图中所述一个或多个模块显示控件各自对应的模块之间的执行顺序,依次从所述功能模块层中调用并运行所述一个或多个模块显示控件各自对应的模块的模块数据,得到所述数据处理结果。
  40. 如权利要求29所述的装置,其中,所述显示模块,还用于控制所述应用界面层显示模块注册控件,所述应用界面层响应于所述用户通过所述模块注册控件从M个模块中选择的所述N个模块,显示所述N个模块显示控件,其中,所述数据处理层中存储有所述M个模块的模块数据,所述M为大于或等于所述N的正整数。
  41. 如权利要求40所述的装置,其中,所述N个模块为所述数据处理层校验合法的模块,所述校验合法的模块是指所述用户有权限使用的相应模块。
  42. 如权利要求29所述的装置,其中,所述显示模块,还用于控制所述应用界面层显示针对任一模块显示控件的调用控件,所述调用控件指示允许用户在第三方系统调用所述任一模块显示控件对应的模块;所述显示模块,还用于控制所述应用界面层响应于针对所述调用控件的第十操作,显示所述任一模块显示控件所对应的模块的模块数据的接口链接;所述装置还包括获取模块,用于控制所述应用界面层在检测到所述第三方系统发送的针对所述接口链接的数据调用请求时,基于所述接口链接从所述数据处理层获取所述任一模块显示控件所对应的模块的模块数据,将获取的模块数据发送至所述第三方系统。
  43. 一种视觉软件开发装置,所述装置包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行上述权利要求15-28任一所述的方法的步骤。
  44. 一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述权利要求15-28任一所述的方法的步骤。
  45. 一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述权利要求15-28任一所述的方法的步骤。
PCT/CN2022/079753 2021-03-08 2022-03-08 视觉软件开发系统、方法、装置及计算机存储介质 Ceased WO2022188780A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020237027372A KR20230127351A (ko) 2021-03-08 2022-03-08 비전 소프트웨어 개발 시스템, 방법, 장치 및 컴퓨터저장 매체
JP2023547704A JP7644830B2 (ja) 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 (2)

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

Publications (1)

Publication Number Publication Date
WO2022188780A1 true WO2022188780A1 (zh) 2022-09-15

Family

ID=76510724

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/079753 Ceased WO2022188780A1 (zh) 2021-03-08 2022-03-08 视觉软件开发系统、方法、装置及计算机存储介质

Country Status (5)

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

Families Citing this family (5)

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

Citations (4)

* 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
CN108733368A (zh) * 2017-05-16 2018-11-02 研祥智能科技股份有限公司 机器视觉通用软件开发系统
CN112363730A (zh) * 2020-11-06 2021-02-12 上海节卡机器人科技有限公司 一种视觉项目部署方法、视觉系统、电子设备和存储介质
CN113050938A (zh) * 2021-03-08 2021-06-29 杭州海康机器人技术有限公司 视觉软件开发系统、方法、装置及计算机存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8527939B2 (en) 2006-09-14 2013-09-03 Sap Ag GUI modeling of knowledge base in a modeling environment
US8904302B2 (en) * 2010-09-30 2014-12-02 The Mathworks, Inc. Identification of semantically relevant concepts in a graphical model
KR20130111279A (ko) * 2012-03-29 2013-10-10 삼성전자주식회사 사용자 단말 장치 및 그의 제어 방법, 화상 형성 장치 및 그의 제어 방법
CN105630472B (zh) * 2014-11-03 2019-12-24 中国科学院沈阳自动化研究所 制造执行系统客户端快速开发框架及其软件开发方法
US11012533B1 (en) 2016-11-14 2021-05-18 Verified First LLC Systems and methods for integrating multiple third-party applications
CN109408996B (zh) * 2018-11-05 2023-11-07 北京旷视机器人技术有限公司 用于智能设备控制的交互方法、装置、系统及存储介质
CN109783859A (zh) * 2018-12-13 2019-05-21 重庆金融资产交易所有限责任公司 模型构建方法、装置及计算机可读存储介质
CN111258581B (zh) 2020-02-03 2021-05-18 腾讯科技(深圳)有限公司 基于云服务的应用开发方法、装置、设备及计算机介质
CN112433702B (zh) * 2020-12-19 2021-06-29 合肥汉腾信息技术有限公司 一种轻量级流程设计系统及方法

Patent Citations (4)

* 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
CN108733368A (zh) * 2017-05-16 2018-11-02 研祥智能科技股份有限公司 机器视觉通用软件开发系统
CN112363730A (zh) * 2020-11-06 2021-02-12 上海节卡机器人科技有限公司 一种视觉项目部署方法、视觉系统、电子设备和存储介质
CN113050938A (zh) * 2021-03-08 2021-06-29 杭州海康机器人技术有限公司 视觉软件开发系统、方法、装置及计算机存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4307106A4

Also Published As

Publication number Publication date
JP7644830B2 (ja) 2025-03-12
EP4307106A4 (en) 2024-08-07
JP2024506044A (ja) 2024-02-08
CN113050938B (zh) 2024-06-14
CN113050938A (zh) 2021-06-29
EP4307106A1 (en) 2024-01-17
KR20230127351A (ko) 2023-08-31

Similar Documents

Publication Publication Date Title
WO2022188780A1 (zh) 视觉软件开发系统、方法、装置及计算机存储介质
US10176440B2 (en) Workflow sharing
CN113886362A (zh) 基于工作流引擎及低代码平台的数据存储系统及存储方法
US20170316114A1 (en) System architecture with visual modeling tool for designing and deploying complex models to distributed computing clusters
CN114115841A (zh) 数据流接口动态编排方法、装置、设备、介质及程序产品
JP2006107478A (ja) ワークフローを設計するための拡張可能フレームワーク
CN104732306A (zh) 一种业务应用系统的快速开发系统及方法
CN119621034A (zh) 一种结合工作流引擎和动态表单的业务流程构建方法
EP1934724A1 (en) Extensible xml format and object model for localization data
US20120030612A1 (en) Dynamic property attributes
US8327274B2 (en) Method and apparatus for customizing a model entity presentation based on a presentation policy
CN105930344A (zh) 一种基于产品研制流程的数据库应用系统快速开发平台
CN120469682B (zh) 基于原生js的低代码开发平台事件编排方法及设备
CN114153442A (zh) 基于可视化组件的大屏可视化页面配置方法和系统
CN113919158A (zh) 一种用于飞行控制面板的仿真方法、装置及存储介质
JPH10254689A (ja) クライアント・サーバシステムのアプリケーション構成設計支援方式
CN118860357A (zh) 一种低代码属性编辑器注册方法
JP2011515755A (ja) 予約されたコンポーネントコンテナ基盤ソフトウェアの開発方法及び装置
JP3713466B2 (ja) プログラム作成支援方法、プログラム作成支援プログラム及びプログラム作成支援装置
JP2006276953A (ja) 画面定義データ差分抽出方法、装置及びプログラム
CN118838822A (zh) Web应用系统的测试方法及装置
CN115544988A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
US10915599B2 (en) System and method for producing transferable, modular web pages
JPH11102293A (ja) プログラム自動生成方法
CN118355415A (zh) 图像处理方法、三维测量方法和电子设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22766303

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023547704

Country of ref document: JP

ENP Entry into the national phase

Ref document number: 20237027372

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 1020237027372

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 11202306377T

Country of ref document: SG

WWE Wipo information: entry into national phase

Ref document number: 2022766303

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2022766303

Country of ref document: EP

Effective date: 20231009