IP Library Granted Patent US 8,713,540
Granted Patent B2
US 8,713,540 · App. 12/846,284 · Granted Apr 29, 2014

Generating and modifying textual code interfaces from graphical programs

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,713,540
App. No.
12/846,284
Granted
Apr 29, 2014
Kind
B2
Abstract

A graphical program is analyzed, where the graphical program includes an I/O interface including one or more ordered parameters for providing input to or receiving output from the graphical program. A function is generated in a textual programming language based on the analyzing, where the function implements the functionality of the graphical program, and includes a textual function I/O interface with the one or more ordered parameters of the I/O interface of the graphical program. User input is received specifying a modified textual function I/O interface that differs from the textual function I/O interface. A wrapper for the function is generated with the modified textual function I/O interface, where the wrapper includes the function, and where during execution the wrapper receives or outputs values in accordance with the modified textual function I/O interface, and provides values to or receives values from the function via the textual function I/O interface.

Claims (72)

1. A non-transitory computer-accessible memory medium that stores program instructions executable by a computer system to perform:

analyzing a graphical program, wherein the graphical program comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program, and wherein the graphical program comprises an I/O interface comprising one or more ordered parameters for providing input to or receiving output from the graphical program;

generating a function in a textual programming language based on said analyzing the graphical program, wherein the function implements the functionality of the graphical program, and wherein the function comprises a textual function I/O interface with the one or more ordered parameters of the I/O interface of the graphical program;

displaying the textual function I/O interface;

receiving user input specifying one or more changes to the textual function I/O interface to produce a modified textual function I/O interface; and

in response to the user input, automatically generating a wrapper for the function in the textual programming language with the modified textual function I/O interface, wherein the wrapper is configured to invoke the function, and wherein during execution the wrapper receives one or more input values in accordance with the modified textual function I/O interface and provides the one or more input values to the function via the textual function I/O interface.

2. The non-transitory computer-accessible memory medium of claim 1 , wherein the wrapper is configured to:

receive the one or more input values in a first order in accordance with the modified textual function I/O interface; and

invoke the function by passing the one or more input values to the function in a second order in accordance with the textual function I/O interface, wherein the second order is different than the first order.

3. The non-transitory computer-accessible memory medium of claim 1 , wherein said receiving user input specifying one or more changes to the textual function I/O interface comprises one or more of:

receiving user input changing a number of parameters in the textual function I/O interface;

receiving user input changing data types of one or more parameters in the textual function I/O interface;

receiving user input changing names of one or more parameters in the textual function I/O interface;

receiving user input changing an order of parameters in the textual function I/O interface; or

receiving user input changing a parameter passing mechanism of the textual function I/O interface.

4. The non-transitory computer-accessible memory medium of claim 1 , wherein the program instructions implement a software tool, wherein said analyzing, said generating a function, said displaying, said receiving user input, and said modifying are performed by the software tool, and wherein said displaying and said receiving user input are performed via a graphical user interface (GUI) of the software tool.

5. The non-transitory computer-accessible memory medium of claim 1 , wherein the graphical program comprises a block diagram portion and a user interface portion, and wherein the I/O interface of the graphical program is implemented via the user interface portion.

6. The non-transitory computer-accessible memory medium of claim 5 , wherein the user interface portion comprises a GUI with one or more controls or indicators corresponding to the one or more parameters of the I/O interface of the graphical program.

7. The non-transitory computer-accessible memory medium of claim 1 , wherein the program instructions are further executable by the computer system to perform:

compiling the wrapper, including the function, to generate a binary file.

8. The non-transitory computer-accessible memory medium of claim 1 ,

wherein said generating the function in a textual programming language comprises generating a first function prototype in accordance with the I/O interface of the graphical program; and

wherein said generating the wrapper for the function in the textual programming language with the modified textual function I/O interface comprises generating a second function prototype in accordance with the modified textual function I/O interface.

9. The non-transitory computer-accessible memory medium of claim 1 ,

wherein the graphical program is written in a graphical programming language, wherein the graphical programming language comprises a first set of specified data types;

wherein the textual programming language comprises a second set of specified data types that differs from the first set of specified data types; and

wherein the wrapper is configured to convert between corresponding, but different, data types, included in the textual function I/O interface and the modified textual function I/O interface, respectively.

10. The non-transitory computer-accessible memory medium of claim 1 , wherein the graphical program is a first graphical program comprised within a hierarchy of graphical programs, wherein the program instructions are further executable to perform:

receiving user input selecting one or more graphical programs, including the first graphical program, from the hierarchy of graphical programs;

wherein said analyzing, said generating a function, said receiving user input, and said generating a wrapper are performed in response to said receiving user input selecting one or more graphical programs, wherein the program instructions are further executing to perform:

performing said analyzing, said generating a function, said receiving user input, and said generating a wrapper for any graphical programs selected by the user input in addition to the first graphical program.

11. A computer-implemented method, comprising:

utilizing a computer to perform:

analyzing a graphical program, wherein the graphical program comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program, and wherein the graphical program comprises an I/O interface comprising one or more ordered parameters for providing input to or receiving output from the graphical program;

automatically generating a function in a textual programming language based on said analyzing the graphical program, wherein the function implements the functionality of the graphical program, and wherein the function comprises a textual function I/O interface with the one or more ordered parameters of the I/O interface of the graphical program;

displaying the textual function I/O interface;

receiving user input specifying one or more changes to the textual function I/O interface to produce a modified textual function I/O interface; and

in response to the user input, automatically generating a wrapper for the function in the textual programming language with the modified textual function I/O interface, wherein the wrapper is configured to invoke the function, and wherein during execution the wrapper receives one or more input values in accordance with the modified textual function I/O interface and provides the one or more input values to the function via the textual function I/O interface.

12. The computer-implemented method of claim 11 , further comprising:

including the wrapper in a program; and

executing the program, including:

receiving, to the wrapper, the one or more input values in a first order in accordance with the modified textual function I/O interface; and

the wrapper invoking the function by passing the one or more input values to the function in a second order in accordance with the textual function I/O interface, wherein the second order is different than the first order.

13. The computer-implemented method of claim 11 , wherein said receiving user input specifying one or more changes to the textual function I/O interface comprises one or more of:

receiving user input changing a number of parameters in the textual function I/O interface;

receiving user input changing data types of one or more parameters in the textual function I/O interface;

receiving user input changing names of one or more parameters in the textual function I/O interface;

receiving user input changing an order of parameters in the textual function I/O interface; or

receiving user input changing a parameter passing mechanism of the textual function I/O interface.

14. The computer-implemented method of claim 11 , wherein said analyzing, said automatically generating a function, said displaying, said receiving user input, and said automatically generating a wrapper are performed by a software tool, and wherein said displaying and said receiving user input are performed via a graphical user interface (GUI) of the software tool.

15. The computer-implemented method of claim 11 , wherein the graphical program comprises a block diagram portion and a user interface portion, and wherein the I/O interface of the graphical program is implemented via the user interface portion.

16. The computer-implemented method of claim 11 , further comprising:

compiling the wrapper, including the function, to generate a binary file.

17. The computer-implemented method of claim 11 ,

wherein said generating the function in a textual programming language comprises generating a first function prototype in accordance with the I/O interface of the graphical program; and

wherein said generating the wrapper for the function in the textual programming language with the modified textual function I/O interface comprises generating a second function prototype in accordance with the modified textual function I/O interface.

18. The computer-implemented method of claim 11 ,

wherein the graphical program is written in a graphical programming language, wherein the graphical programming language comprises a first set of specified data types;

wherein the textual programming language comprises a second set of specified data types that differs from the first set of specified data types; and

wherein the wrapper is configured to convert between corresponding, but different, data types, included in the textual function I/O interface and the modified textual function I/O interface, respectively.

19. The computer-implemented method of claim 11 , wherein the graphical program is a first graphical program comprised within a hierarchy of graphical programs, wherein the method further comprises:

receiving user input selecting one or more graphical programs, including the first graphical program, from the hierarchy of graphical programs;

wherein said analyzing, said generating a function, said receiving user input, and said generating a wrapper are performed in response to said receiving user input selecting one or more graphical programs, wherein the method further comprises:

performing said analyzing, said generating a function, said receiving user input, and said generating a wrapper for any graphical programs selected by the user input in addition to the first graphical program.

20. A system comprising:

one or more processors; and

memory storing program instructions, wherein the program instructions are executable by the one or more processors to implement operations including:

analyzing a graphical program, wherein the graphical program comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program, and wherein the graphical program comprises an I/O interface comprising one or more ordered parameters for providing input to or receiving output from the graphical program;

generating a function in a textual programming language based on said analyzing the graphical program, wherein the function implements the functionality of the graphical program, and wherein the function comprises a textual function I/O interface with the one or more ordered parameters of the I/O interface of the graphical program;

displaying the textual function I/O interface;

receiving user input specifying one or more changes to the textual function I/O interface to produce a modified textual function I/O interface; and

in response to the user input, generating a wrapper for the function in the textual programming language with the modified textual function I/O interface, wherein the wrapper is configured to invoke the function, and wherein during execution the wrapper receives one or more input values in accordance with the modified textual function I/O interface and provides the one or more input values to the function via the textual function I/O interface.

Assignments (5)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 057280/0028) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 065231/0466 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 052935/0001) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
Reel/Frame 065653/0463 →
SECURITY INTEREST Recorded Jun 18, 2021
From: NATIONAL INSTRUMENTS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 057280/0028 →
SECURITY INTEREST Recorded Jun 14, 2020
From: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 052935/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2010
From: DE CASTILLO, ALEJANDRO
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 024762/0061 →