IP Library Granted Patent US 8,429,548
Granted Patent B2
US 8,429,548 · App. 12/707,824 · Granted Apr 23, 2013

Automatically suggesting graphical program elements for inclusion in a graphical program

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,429,548
App. No.
12/707,824
Granted
Apr 23, 2013
Kind
B2
Abstract

System and method for editing a graphical program. One or more nodes are included in a graphical program in response to user input selecting the one or more nodes, where each node has a respective one or more terminals for receiving input to or providing output from the node. User input is received indicating a terminal on a first node of the one or more nodes to which a node is to be connected. One or more suggested graphical program elements to include in the graphical program are automatically presented based on the indicated terminal, where the one or more suggested graphical program elements are selectable by the user for inclusion in the graphical program.

Claims (89)

1. A computer-implemented method for editing a graphical program, the method comprising:

utilizing a computer to implement:

including one or more nodes in a graphical program in response to user input selecting the one or more nodes, wherein the graphical program comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program, wherein each node of the one or more nodes comprises a respective one or more terminals for receiving input to or providing output from the node;

receiving user input selecting a terminal on a first node of the one or more nodes in the graphical program to which a node is to be connected; and

automatically presenting one or more suggested nodes to include in the graphical program based on the selected terminal of the first node, wherein the one or more suggested nodes are selectable by the user for inclusion in the graphical program, wherein said automatically presenting the one or more suggested nodes comprises indicating at least one terminal on each of the one or more suggested nodes via which a connection to the selected terminal can be made.

2. The method of claim 1 , further comprising:

utilizing the computer to implement:

including a first suggested node of the one or more suggested nodes in the graphical program in response to user input selecting the first suggested node, wherein said including comprises automatically connecting a terminal of the first suggested node to the selected terminal of the first node in the graphical program.

3. The method of claim 2 , the method further comprising:

utilizing the computer to implement:

ceasing presentation of the one or more suggested nodes in response to the user input selecting the first suggested node.

4. The method of claim 1 , wherein each terminal of each node has a unique identification (ID), the method further comprising:

utilizing the computer to implement:

automatically analyzing information relating terminal IDs of the one or more nodes to respective terminal IDs of nodes most commonly connected to terminals of the one or more nodes; and

automatically determining the one or more suggested nodes based on said automatically analyzing;

wherein said automatically presenting the one or more suggested nodes is performed in response to said automatically determining.

5. The method of claim 4 ,

wherein the information relating terminal IDs of the one or more nodes to respective terminal IDs of nodes most commonly connected to terminals of the one or more nodes is static.

6. The method of claim 4 ,

wherein said analyzing and said determining comprises using a heuristic to determine the one or more suggested nodes based on the terminal IDs of the one or more nodes in the graphical program.

7. The method of claim 4 ,

wherein the information relating terminal IDs of the one or more nodes to respective terminal IDs of nodes most commonly connected to terminals of the one or more nodes comprises previously stored data regarding connections between terminals of nodes in one or more other graphical programs.

8. The method of claim 7 , further comprising:

wherein the previously stored data regarding connections between terminals of nodes in one or more other graphical programs are specific to graphical programs created by the user.

9. The method of claim 4 , the method further comprising:

utilizing the computer to implement:

storing information regarding connections between terminals of nodes previously included in the graphical program;

wherein the information relating terminal IDs of the one or more nodes to respective terminal IDs of nodes most commonly connected to terminals of the one or more nodes comprises the information regarding connections between terminals of nodes previously included in the graphical program.

10. The method of claim 4 ,

wherein the graphical program comprises an object oriented graphical program, wherein the nodes and terminals have respective class inheritance hierarchies; and

wherein the information relating terminal IDs of the one or more nodes to respective terminal IDs of nodes most commonly connected to terminals of the one or more nodes comprises relationships between the class inheritance hierarchy of the selected terminal and the class inheritance hierarchy of the one or more suggested nodes.

11. The method of claim 10 ,

wherein some nodes implement private member nodes of a class to which the graphical program does not have access; and

wherein said automatically analyzing conditionally excludes suggesting nodes to which the graphical program does not have access.

12. The method of claim 4 ,

wherein some nodes are polymorphic nodes, each polymorphic node comprising two or more respective sub-nodes that are executable in lieu of the polymorphic node based on a type of terminal wired to the polymorphic node; and

wherein the information relating terminal IDs of the one or more nodes to respective terminal IDs of nodes most commonly connected to terminals of the one or more nodes further includes information regarding sub-nodes of polymorphic nodes and terminals of sub-nodes of polymorphic nodes.

13. The method of claim 1 ,

wherein said automatically presenting the one or more suggested nodes comprises displaying the one or more suggested nodes as shadow nodes that follow a mouse cursor.

14. The method of claim 1 ,

wherein said automatically presenting the one or more suggested nodes comprises displaying the one or more suggested nodes in a palette, wherein the one or more suggested nodes are selectable from the palette by the user for inclusion in the graphical program.

15. The method of claim 1 ,

wherein said automatically presenting the one or more suggested nodes comprises providing audio suggestions indicating the one or more suggested nodes.

16. The method of claim 1 ,

wherein said automatically presenting the one or more suggested nodes, and indicating at least one terminal on each of the one or more suggested nodes via which a connection to the selected terminal can be made comprises:

for each of the one or more suggested nodes, displaying a respective copy of the node for each indicated terminal of the node, including indicating the indicated terminal in the displayed copy.

17. The method of claim 1 , further comprising:

utilizing the computer to implement:

receiving user input specifying suggestion criteria;

wherein said automatically determining the one or more suggested nodes is further based on the suggestion criteria.

18. The method of claim 1 ,

wherein said automatically presenting the one or more suggested nodes comprises indicating at least one terminal on each of the one or more suggested nodes via which a connection to the selected terminal of the first node can be made;

the method further comprising:

utilizing the computer to implement:

receiving user input selecting a first suggested node from the one or more suggested nodes;

displaying the first suggested node as a shadow node that follows a mouse cursor; and

including the first suggested node in the graphical program in response to user input indicating inclusion of the first suggested node in the graphical program.

19. The method of claim 18 , wherein said displaying the first suggested node as a shadow node that follows a mouse cursor comprises:

automatically connecting a terminal of the first suggested node to the selected terminal of the first node; and

displaying the connection between the terminal of the first suggested node and the one or more terminals of the at least one node of the one or more nodes in the graphical program.

20. The method of claim 1 ,

wherein the graphical program comprises a graphical data flow program.

21. The method of claim 1 ,

wherein the graphical program is operable to perform one or more of:

an industrial automation function;

a process control function;

a test and measurement function.

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

including one or more nodes in a graphical program in response to user input selecting the one or more nodes, wherein the graphical program comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program, wherein each node of the one or more nodes comprises a respective one or more terminals for receiving input to or providing output from the node;

receiving user input selecting a terminal on a first node of the one or more nodes in the graphical program to which a node is to be connected; and

automatically presenting one or more suggested nodes to include in the graphical program based on the selected terminal of the first node, wherein the one or more suggested nodes are selectable by the user for inclusion in the graphical program, wherein said automatically presenting the one or more suggested nodes comprises indicating at least one terminal on each of the one or more suggested nodes via which a connection to the selected terminal can be made.

23. A computer-implemented method for editing a graphical program, the method comprising:

utilizing a computer to implement:

including one or more nodes in a graphical program in response to user input selecting the one or more nodes, wherein the graphical program comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program, wherein each node of the one or more nodes comprises a respective one or more terminals for receiving input to or providing output from the node;

receiving user input selecting a terminal on a first node of the one or more nodes in the graphical program to which a node is to be connected, wherein each terminal of each node has a unique identification (ID);

automatically analyzing information relating terminal IDs of the one or more nodes to respective terminal IDs of nodes most commonly connected to terminals of the one or more nodes;

automatically determining the one or more suggested nodes based on said automatically analyzing; and

automatically presenting the one or more suggested nodes to include in the graphical program based on the selected terminal of the first node, wherein the one or more suggested nodes are selectable by the user for inclusion in the graphical program, wherein said automatically presenting the one or more suggested nodes is performed in response to said automatically determining.

24. The computer-implemented method of claim 23 , further comprising:

utilizing the computer to implement:

including a first suggested node of the one or more suggested nodes in the graphical program in response to user input selecting the first suggested node, wherein said including comprises automatically connecting a terminal of the first suggested node to the selected terminal of the first node in the graphical program.

25. A non-transitory computer-accessible memory medium that stores program instructions executable by a processor to:

include one or more nodes in a graphical program in response to user input selecting the one or more nodes, wherein the graphical program comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program, wherein each node of the one or more nodes comprises a respective one or more terminals for receiving input to or providing output from the node;

receive user input selecting a terminal on a first node of the one or more nodes in the graphical program to which a node is to be connected, wherein each terminal of each node has a unique identification (ID);

automatically analyze information relating terminal IDs of the one or more nodes to respective terminal IDs of nodes most commonly connected to terminals of the one or more nodes;

automatically determine the one or more suggested nodes based on said automatically analyzing; and

automatically present the one or more suggested nodes to include in the graphical program based on the selected terminal of the first node, wherein the one or more suggested nodes are selectable by the user for inclusion in the graphical program, wherein said automatically presenting the one or more suggested nodes is performed in response to said automatically determining.

26. The non-transitory computer-accessible memory medium of claim 25 , wherein the program instructions are executable by a processor to:

include a first suggested node of the one or more suggested nodes in the graphical program in response to user input selecting the first suggested node, wherein to include the first suggested node, the program instructions are executable to automatically connect a terminal of the first suggested node to the selected terminal of the first node in the graphical program.

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 Feb 18, 2010
From: MENDEZ, JONATHAN; PHILLIPS, BRETT F.
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 023953/0891 →