Graphical programming system with distributed block diagram execution and front panel display
First Claim
1. A method for remotely accessing a graphical program, the method comprising:
- receiving information specifying a remote computer;
receiving information specifying a graphical program on the remote computer;
connecting to the remote computer, wherein said connecting comprises passing the information specifying the graphical program to the remote computer;
receiving a description of a user interface associated with the graphical program;
displaying the user interface based on the description received;
receiving output data from the graphical program during execution of the graphical program on the remote computer;
displaying the output data in the user interface;
wherein said receiving output data from the graphical program and said displaying the output data in the user interface are performed multiple times;
wherein the description of the user interface is not received each time output data is received; and
wherein the user interface displayed is useable by a user to interact with the graphical program executing on the remote computer as if the graphical program were executing locally.
5 Assignments
0 Petitions
Accused Products
Abstract
System and method enabling client computer(s) to connect to a server computer and receive a graphical program user interface panel(s) for providing input to and/or displaying output from the graphical program, thereby comprising a distributed virtual instrumentation system, wherein a block diagram executes on a server computer to perform a measurement or automation function, and the panel(s) is/are displayed on the client computer(s), enabling users to remotely view and/or control the function. The user may specify the server, i.e., by entering a URL into a web browser and may also specify the graphical program desired. The user interface panel may be dynamically updated during execution of the program. The user may interact with the panel on the client computer to provide input to the graphical program executing on the server, and may also request and receive a block diagram for the remote graphical program, e.g., to view and/or remotely edit the program.
178 Citations
162 Claims
-
1. A method for remotely accessing a graphical program, the method comprising:
-
receiving information specifying a remote computer;
receiving information specifying a graphical program on the remote computer;
connecting to the remote computer, wherein said connecting comprises passing the information specifying the graphical program to the remote computer;
receiving a description of a user interface associated with the graphical program;
displaying the user interface based on the description received;
receiving output data from the graphical program during execution of the graphical program on the remote computer;
displaying the output data in the user interface;
wherein said receiving output data from the graphical program and said displaying the output data in the user interface are performed multiple times;
wherein the description of the user interface is not received each time output data is received; and
wherein the user interface displayed is useable by a user to interact with the graphical program executing on the remote computer as if the graphical program were executing locally. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
wherein the graphical program is executing on the remote computer during said receiving the description of the user interface associated with the graphical program. -
3. The method of claim 1, further comprising:
the remote computer launching execution of the graphical program after said connecting to the remote computer.
-
4. The method of claim 1, further comprising:
-
receiving user input to the graphical program via the displayed user interface;
sending the user input to the remote computer;
wherein the graphical program is operable to respond to the user input.
-
-
5. The method of claim 1,
wherein the graphical program produces a first output state; wherein said displaying the user interface based on the description received comprises displaying a user interface illustrating the first output state.
-
6. The method of claim 5, wherein the graphical program produces a second output state after the graphical program produces the first output state, the method further comprising:
-
receiving a data update indicating the second output state;
updating the user interface based on the data update received.
-
-
7. The method of claim 1, further comprising:
-
receiving a description of a block diagram associated with the graphical program;
displaying an image of the block diagram, using the block diagram description.
-
-
8. The method of claim 7, further comprising:
-
receiving user input specifying an edit to the block diagram;
sending the user input specifying the edit to the remote computer;
wherein the remote computer is operable to edit the graphical program according to the user input specifying the edit.
-
-
9. The method of claim 1,
wherein said receiving information specifying the remote computer and said receiving information specifying the graphical program on the remote computer comprise receiving one or more uniform resource locators (URLs). -
10. The method of claim 9,
wherein said one or more uniform resource locators are received by a web browser application or an application with web-browsing functionality. -
11. The method of claim 10,
wherein said receiving a description of the user interface associated with the graphical program and said displaying the user interface based on the description received are performed by a browser plug-in coupled with the web browser application or application with web-browsing functionality.
-
-
12. A method for displaying output of a graphical program on a remote computer, the method comprising:
-
executing the graphical program;
establishing a network connection with a first client computer;
receiving a request from the first client computer for viewing the output of a graphical program;
sending a description of a user interface portion of the graphical program to the first client computer, in response to receiving the request from the first client computer, wherein the first client computer is operable to process the description of the user interface portion in order to display a user interface;
sending output data from the graphical program to the first client computer for display in the user interface;
wherein output data is sent to the first client computer for display in the user interface multiple times, and wherein the description of the user interface portion is not sent each time output data is sent; and
wherein the user interface displayed on the first client computer is useable by a user to interact with the graphical program executing on the remote computer as if the graphical program were executing on the first client computer. - View Dependent Claims (13, 14, 15, 16)
wherein said executing the graphical program is performed in response to said establishing the network connection with the first client computer. -
14. The method of claim 12, further comprising:
-
establishing a network connection with a second client computer;
receiving a request from the second client computer for viewing the output of the graphical program;
sending a description of the user interface portion of the graphical program to the second client computer, in response to receiving the request from the second client computer, wherein the second client computer is operable to process the description of the user interface portion in order to display the user interface;
sending output data from the graphical program to the second client computer for display in the user interface;
wherein output data is sent to the second client computer for display in the user interface multiple times, and wherein the description of the user interface portion is not sent each time output data is sent;
wherein the user interface displayed on the second client computer is useable by a user of the second client computer to interact with the graphical program as if the graphical program were executing on the second client computer.
-
-
15. The method of claim 14, further comprising:
-
receiving user input sent from the first or second client computer, wherein the user input specifies input to the graphical program;
passing the user input to the graphical program.
-
-
16. The method of claim 15, further comprising:
selectively allowing one of the first or second client computer to specify input to the graphical program, wherein said selectively allowing allows only one of the first or second client computer to specify input to the graphical program at a time.
-
-
17. A method for remotely displaying the user interface for an instrumentation application, the method comprising:
-
receiving information specifying a remote computer;
receiving information specifying a graphical program on the remote computer, wherein the graphical program is operable to implement an instrumentation application;
connecting to the remote computer, wherein said connecting comprises passing the information specifying the graphical program to the remote computer;
receiving a description of a user interface associated with the graphical program, wherein the user interface illustrates virtual instrumentation controls;
displaying the user interface based on the description received;
receiving output data from the graphical program during execution of the graphical program on the remote computer;
displaying the output data in the user interface;
wherein said receiving output data from the graphical program and said displaying the output data in the user interface are performed multiple times; and
wherein the description of the user interface is not received each time output data is received; and
wherein the user interface displayed is useable by a user to interact with the graphical program executing on the remote computer as if the graphical program were executing locally.
-
-
18. A system enabling the distributed display of a user interface for a graphical program, the system comprising:
-
a client computer including a CPU, memory, and a display device;
a server computer connected to the client computer via a network, wherein the server computer includes a CPU and memory;
client software stored in the memory of the client computer;
server software stored in the memory of the server computer;
a graphical program stored in the memory of the server computer;
wherein the client software is operable to;
receive information specifying the server computer;
receive information specifying the graphical program stored on the server computer;
establish a connection with the server software;
pass the information specifying the graphical program to the server software;
receive a description of a user interface associated with the graphical program from the server software;
display a user interface on the display device, based on the description received;
receive output data from the graphical program during execution of the graphical program on the server computer; and
display the output data in the user interface;
wherein the receiving output data from the graphical program and displaying the output data in the user interface are performed multiple times; and
wherein the description of the user interface is not received each time output data is received;
wherein the server software is operable to;
establish a connection with the client software;
receive the information specifying the graphical program from the client software;
execute the specified graphical program;
pass the description of the user interface associated with the graphical program to the client software;
pass output data from the graphical program to the client software;
wherein said passing output data from the graphical program and said displaying the output data in the user interface are performed multiple times, wherein the description of the user interface is not provided to the client software each time output data is provided to the client software; and
wherein the user interface displayed is useable by a user to interact with the graphical program executing on the server computer as if the graphical program were executing on the client computer. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25)
wherein the client software is further operable to: receive user input via the displayed user interface;
send the user input to the server software;
wherein the server software is further operable to;
receive the user input from the client software;
pass the user input to the graphical program;
wherein the graphical program is operable to respond to the user input.
-
-
20. The system of claim 18,
wherein the graphical program produces a first output state; -
wherein the description of the user interface passed to the client software includes information indicative of the first output state;
wherein the user interface displayed on the display device illustrates the first output state.
-
-
21. The system of claim 20,
wherein the graphical program produces a second output state after the graphical program produces the first output state; -
wherein the server software is further operable to;
send a data update to the client software, wherein the data update indicates the second output state;
wherein the client software is further operable to;
receive the data update from the server software;
update the user interface displayed on the display device, based on the data update received, wherein the user interface illustrates the second output state.
-
-
22. The system of claim 18,
wherein the server software is further operable to: -
send a description of a block diagram associated with the graphical program to the client software;
wherein the client software is further operable to;
receive the description of the block diagram from the server software;
display an image of the block diagram on the display device, using the block diagram description.
-
-
23. The system of claim 22,
wherein the client software is further operable to: -
receive user input specifying an edit to the block diagram;
send the user input specifying the edit to the server software;
wherein the server software is further operable to;
receive the user input specifying the edit;
edit the block diagram according to the user input.
-
-
24. The system of claim 18,
wherein the client software comprises a web browser or an application with web-browsing functionality. -
25. The system of claim 24,
wherein the server software comprise a graphical programming application operable to communicate with client processes.
-
26. A memory medium comprising program instructions operable to implement a graphical program produced using a graphical programming system, the memory medium further comprising program instructions operable to:
-
execute the graphical program;
establish a network connection with client software;
receive a request from the client software for viewing output of the graphical program;
send a description of a user interface portion of the graphical program to the client software, in response to receiving the request from the client software, wherein the client software is operable to process the description of the user interface portion in order to display a user interface illustrating the graphical program output;
send output data from the graphical program to the client software for display in the user interface;
wherein the program instructions are operable to send output data for display in the user interface multiple times, and wherein the description of the user interface is not sent each time output data is sent. - View Dependent Claims (27, 28)
wherein said executing the graphical program is performed in response to said establishing the network connection with the client software. -
28. The memory medium of claim 26, further comprising program instructions operable to:
-
receive user input sent from the client software, wherein the user input specifies input to the graphical program;
pass the user input to the graphical program;
wherein the graphical program is operable to respond to the user input.
-
-
-
29. A method for executing a graphical program, the method comprising:
-
storing the graphical program in a memory of a first computer, wherein the graphical program comprises a block diagram and a user interface;
executing the block diagram of the graphical program on the first computer;
providing a description of the user interface of the graphical program to a second computer during said executing; and
displaying the user interface of the graphical program on the second computer, based on the description;
providing output data from the block diagram executing on the first computer to the second computer; and
displaying the output data in the user interface displayed on the second computer;
wherein said providing output data from the block diagram executing on the first computer to the second computer and said displaying the output data in the user interface displayed on the second computer are performed multiple times;
wherein the description of the user interface is not provided to the second computer each time output data is provided to the second computer; and
wherein the user interface displayed on the second computer is useable by a user to interact with the block diagram executing on the first computer as if the block diagram were executing on the second computer. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55)
wherein the user interface displayed on the second computer is useable by the user to interactively provide input data to the block diagram executing on the first computer and is operable to display output data from the block diagram executing on the first computer. -
31. The method of claim 29,
wherein the output data is provided to the second computer separately from the description of the user interface. -
32. The method of claim 29,
wherein the block diagram executing on the first computer is operable to continuously produce output data; -
wherein said providing the output data from the block diagram executing on the first computer comprises providing the continuously produced output data to the second computer;
wherein said displaying the output data in the user interface displayed on the second computer comprises continuously updating the user interface displayed on the second computer to display the continuously produced output data.
-
-
33. The method of claim 32,
wherein said continuously updating the user interface displayed on the second computer comprises displaying the continuously produced output data in a graph in the user interface displayed on the second computer; wherein the graph scrolls in response to the continuously produced output data received from the block diagram executing on the first computer.
-
34. The method of claim 29, further comprising:
-
receiving input data to the user interface displayed on the second computer; and
providing the input data to the block diagram executing on the first computer.
-
-
35. The method of claim 34,
wherein said receiving input data to the user interface displayed on the second computer comprises receiving keystroke input data to the user interface displayed on the second computer; wherein said providing the input data to the block diagram executing on the first computer comprises providing one or more characters specified by the keystroke input data to the block diagram executing on the first computer.
-
36. The method of claim 34, further comprising:
-
the block diagram executing on the first computer producing output data in response to the input data;
providing the output data from the block diagram executing on the first computer to the second computer; and
displaying the output data in the user interface displayed on the second computer.
-
-
37. The method of claim 29, further comprising:
-
providing the description of the user interface of the graphical program to a third computer during said executing; and
displaying the user interface of the graphical program on the third computer, based on the description;
wherein the user interface displayed on the third computer is useable by a user to interact with the block diagram executing on the first computer as if the block diagram were executing on the third computer.
-
-
38. The method of claim 37, further comprising:
-
receiving first input data to the user interface displayed on the second computer;
providing the first input data to the block diagram executing on the first computer;
receiving second input data to the user interface displayed on the third computer; and
providing the second input data to the block diagram executing on the first computer.
-
-
39. The method of claim 38,
wherein the first computer is operable to coordinate control of the graphical program between the second computer and the third computer; -
wherein said providing the first input data to the block diagram comprises providing the first input data to the block diagram when the second computer has control of the graphical program;
wherein said providing the second input data to the block diagram comprises providing the second input data to the block diagram when the third computer has control of the graphical program.
-
-
40. The method of claim 29,
wherein said providing the description of the user interface of the graphical program to the second computer comprises the first computer providing the description of the user interface to the second computer. -
41. The method of claim 40, further comprising:
-
the first computer providing the description of the user interface to one or more computers in addition to the second computer; and
each of the one or more computers in addition to the second computer displaying the user interface of the graphical program based on the description.
-
-
42. The method of claim 29, further comprising:
-
receiving user input to the second computer, wherein the user input specifies the graphical program on the first computer;
wherein said providing the description of the user interface is performed after said user input specifying the graphical program on the first computer.
-
-
43. The method of claim 29,
wherein the first computer and the second computer are connected over a network; wherein said providing the description of the user interface of the graphical program to the second computer comprises the first computer providing the description of the user interface over the network to the second computer.
-
44. The method of claim 43, further comprising:
-
receiving user input to the second computer, wherein the user input specifies the graphical program on the first computer;
the second computer connecting to the first computer over the network;
wherein said providing the description of the user interface is performed after said user input specifying the graphical program on the first computer and after said connecting.
-
-
45. The method of claim 44,
wherein the block diagram of the graphical program is already executing on the first computer when said connecting occurs. -
46. The method of claim 44, further comprising:
the first computer launching execution of the block diagram of the graphical program in response to said connecting to the first computer.
-
47. The method of claim 44,
wherein said receiving user input specifying the graphical program on the first computer comprises receiving a uniform resource locator (URL). -
48. The method of claim 47,
wherein the URL specifies one or more of: - the first computer and/or the graphical program on the first computer.
-
49. The method of claim 43,
wherein the network is the Internet. -
50. The method of claim 43,
wherein said displaying comprises displaying the user interface of the graphical program on a web browser of the second computer. -
51. The method of claim 29,
wherein the graphical program produces a first output state; wherein said displaying the user interface includes displaying the user interface to illustrate the first output state.
-
52. The method of claim 51,
wherein the graphical program produces a second output state after the graphical program produces the first output state; -
wherein the method further comprises;
providing a user interface update indicating the second output state to the second computer; and
updating the user interface displayed on the second computer in response to the user interface update.
-
-
53. The method of claim 29, further comprising:
-
providing information regarding the block diagram of the graphical program to the second computer; and
displaying the block diagram on the second computer, using the information regarding the block diagram.
-
-
54. The method of claim 53, further comprising:
-
receiving user input to the second computer, wherein the user input specifies an edit to the block diagram;
providing the user input specifying the edit to the first computer;
wherein the first computer is operable to edit the block diagram of the graphical program according to the user input.
-
-
55. The method of claim 29,
wherein the graphical program implements a virtual instrument; wherein the user interface of the graphical program comprises a front panel of the virtual instrument.
-
-
56. A system for executing a graphical program, the system comprising:
-
a first computer including a processor coupled to a memory, wherein the first computer is operable to couple to a network;
a graphical program stored in the memory of the first computer, wherein the graphical program comprises a block diagram and a user interface;
a second computer operable to couple to the network, wherein the second computer includes a display;
wherein the first computer is operable to execute the block diagram of the graphical program and is operable to provide a description of the user interface of the graphical program over the network to the second computer during said executing;
wherein the second computer is operable to receive the description of the user interface of the graphical program and display the user interface of the graphical program on the display, based on the description of the user interface;
wherein the first computer is further operable to provide output data from the block diagram executing on the first computer to the second computer; and
wherein the second computer is further operable to display the output data in the user interface displayed on the second computer;
wherein said providing output data from the block diagram executing on the first computer to the second computer and said displaying the output data in the user interface displayed on the second computer are performed multiple times;
wherein the description of the user interface is not provided to the second computer each time output data is provided to the second computer. - View Dependent Claims (57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79)
wherein the user interface displayed on the second computer is useable by a user to interact with the block diagram executing on the first computer as if the block diagram were executing on the second computer. -
58. The system of claim 56,
wherein the user interface displayed on the second computer is useable by the user to interactively provide input data to the block diagram executing on the first computer and is operable to display output data from the block diagram executing on the first computer. -
59. The system of claim 56,
wherein the output data is provided to the second computer separately from the description of the user interface. -
60. The system of claim 56,
wherein the block diagram executing on the first computer is operable to continuously produce output data; -
wherein said providing the output data from the block diagram executing on the first computer comprises providing the continuously produced output data to the second computer;
wherein said displaying the output data in the user interface displayed on the second computer comprises continuously updating the user interface displayed on the second computer to display the continuously produced output data.
-
-
61. The system of claim 60,
wherein said continuously updating the user interface displayed on the second computer comprises displaying the continuously produced output data in a graph in the user interface displayed on the second computer; wherein the graph scrolls in response to the continuously produced output data received from the block diagram executing on the first computer.
-
62. The system of claim 56,
wherein the second computer is further operable to: -
receive input data to the user interface displayed on the second computer; and
provide the input data to the block diagram executing on the first computer.
-
-
63. The system of claim 62,
wherein said receiving input data to the user interface displayed on the second computer comprises receiving keystroke input data to the user interface displayed on the second computer; wherein said providing the input data to the block diagram executing on the first computer comprises providing one or more characters specified by the keystroke input data to the block diagram executing on the first computer.
-
64. The system of claim 62,
wherein the block diagram executing on the first computer produces output data in response to the input data; -
wherein the first computer is further operable to provide the output data from the block diagram executing on the first computer to the second computer; and
wherein the second computer is further operable to display the output data in the user interface displayed on the second computer.
-
-
65. The system of claim 56, further comprising:
-
a third computer operable to couple to the network, wherein the third computer includes a display;
wherein the first computer is further operable to provide the description of the user interface of the graphical program over the network to the third computer;
wherein the third computer is operable to receive the description of the user interface of the graphical program and display the user interface of the graphical program, based on the description of the user interface.
-
-
66. The system of claim 65,
wherein the second computer is further operable to receive first input data to the user interface displayed on the second computer and provide the first input data to the block diagram executing on the first computer; wherein the third computer is further operable to receive second input data to the user interface displayed on the third computer and provide the second input data to the block diagram executing on the first computer.
-
67. The system of claim 66,
wherein the first computer is further operable to coordinate control of the graphical program between the second computer and the third computer; -
wherein said second computer providing the first input data to the block diagram comprises providing the first input data to the block diagram when the second computer has control of the graphical program;
wherein said third computer providing the second input data to the block diagram comprises providing the second input data to the block diagram when the third computer has control of the graphical program.
-
-
68. The system of claim 56,
wherein the second computer is further operable to receive user input that specifies the graphical program on the first computer; wherein the second computer is operable to connect to the first computer over the network using the user input that specifies the graphical program on the first computer.
-
69. The system of claim 68,
wherein the first computer is operable to launch execution of the block diagram of the graphical program in response to the second computer connecting to the first computer. -
70. The system of claim 68, wherein the user input comprises a uniform resource locator (URL).
-
71. The system of claim 70, wherein the URL specifies one or more of:
- the first computer and/or the graphical program on the first computer.
-
72. The system of claim 56, wherein the network is the Internet.
-
73. The system of claim 56, wherein the second computer stores a web browser, wherein the web browser is executable on the second computer to display the user interface of the graphical program on the second computer.
-
74. The system of claim 56,
wherein the block diagram of the graphical program is executable to produce a first output state; wherein the second computer is operable to display the first output state in the user interface.
-
75. The system of claim 74,
wherein the block diagram of the graphical program is executable to produce a second output state after producing the first output state; -
wherein the first computer is operable to provide a user interface update indicating the second output state;
wherein the second computer is operable to update the user interface displayed on the second computer in response to the user interface update.
-
-
76. The system of claim 56,
wherein the first computer is operable to provide information regarding the block diagram of the graphical program to the second computer, wherein the second computer is operable to display the block diagram on the display of the second computer, using the information regarding the block diagram. -
77. The system of claim 76,
wherein the second computer is operable to receive user input specifying an edit to the block diagram; -
wherein the second computer is operable to provide the user input specifying the edit to the first computer;
wherein the first computer is operable to edit the block diagram of the graphical program according to the user input specifying the edit.
-
-
78. The system of claim 56,
wherein the graphical program implements a virtual instrument; wherein the user interface of the graphical program comprises a front panel of the virtual instrument.
-
79. The system of claim 56, wherein the system includes:
-
a plurality of computers each operable to couple to the network, wherein each of the plurality of computers includes a display;
wherein the first computer is operable to execute the block diagram of the graphical program and is operable to provide the description of the user interface of the graphical program over the network to each of the plurality of computers;
wherein each of the plurality of computers is operable to receive the description of the user interface and display the user interface of the graphical program based on the description of the user interface.
-
-
-
80. A method for executing a graphical program, the method comprising:
-
storing the graphical program in a memory of a first computer, wherein the graphical program comprises a block diagram and a user interface;
executing the block diagram of the graphical program on the first computer;
providing a description of the user interface of the graphical program to a second computer during said executing; and
displaying the user interface of the graphical program on the second computer, based on the description;
providing output data from the block diagram executing on the first computer to the second computer; and
displaying the output data in the user interface displayed on the second computer;
wherein the block diagram executing on the first computer is operable to continuously produce output data;
wherein said providing the output data from the block diagram executing on the first computer comprises providing the continuously produced output data to the second computer;
wherein said displaying the output data in the user interface displayed on the second computer comprises continuously updating the user interface displayed on the second computer to display the continuously produced output data; and
wherein the user interface displayed on the second computer is useable by a user to interact with the block diagram executing on the first computer as if the block diagram were executing on the second computer. - View Dependent Claims (81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106)
wherein the user interface displayed on the second computer is useable by the user to interactively provide input data to the block diagram executing on the first computer and is operable to display output data from the block diagram executing on the first computer. -
82. The method of claim 80,
wherein the output data is provided to the second computer separately from the description of the user interface. -
83. The method of claim 80,
wherein said providing output data from the block diagram executing on the first computer to the second computer and said displaying the output data in the user interface displayed on the second computer are performed multiple times; wherein the description of the user interface is not provided to the second computer each time output data is provided to the second computer.
-
84. The method of claim 80,
wherein said continuously updating the user interface displayed on the second computer comprises displaying the continuously produced output data in a graph in the user interface displayed on the second computer; wherein the graph scrolls in response to the continuously produced output data received from the block diagram executing on the first computer.
-
85. The method of claim 80, further comprising:
-
receiving input data to the user interface displayed on the second computer; and
providing the input data to the block diagram executing on the first computer.
-
-
86. The method of claim 85,
wherein said receiving input data to the user interface displayed on the second computer comprises receiving keystroke input data to the user interface displayed on the second computer; wherein said providing the input data to the block diagram executing on the first computer comprises providing one or more characters specified by the keystroke input data to the block diagram executing on the first computer.
-
87. The method of claim 85, further comprising:
-
the block diagram executing on the first computer producing output data in response to the input data;
providing the output data from the block diagram executing on the first computer to the second computer; and
displaying the output data in the user interface displayed on the second computer.
-
-
88. The method of claim 80, further comprising:
-
providing the description of the user interface of the graphical program to a third computer during said executing; and
displaying the user interface of the graphical program on the third computer, based on the description;
wherein the user interface displayed on the third computer is useable by a user to interact with the block diagram executing on the first computer as if the block diagram were executing on the third computer.
-
-
89. The method of claim 88, further comprising:
-
receiving first input data to the user interface displayed on the second computer;
providing the first input data to the block diagram executing on the first computer;
receiving second input data to the user interface displayed on the third computer; and
providing the second input data to the block diagram executing on the first computer.
-
-
90. The method of claim 89,
wherein the first computer is operable to coordinate control of the graphical program between the second computer and the third computer; -
wherein said providing the first input data to the block diagram comprises providing the first input data to the block diagram when the second computer has control of the graphical program;
wherein said providing the second input data to the block diagram comprises providing the second input data to the block diagram when the third computer has control of the graphical program.
-
-
91. The method of claim 80,
wherein said providing the description of the user interface of the graphical program to the second computer comprises the first computer providing the description of the user interface to the second computer. -
92. The method of claim 91, further comprising:
-
the first computer providing the description of the user interface to one or more computers in addition to the second computer; and
each of the one or more computers in addition to the second computer displaying the user interface of the graphical program based on the description.
-
-
93. The method of claim 80, further comprising:
-
receiving user input to the second computer, wherein the user input specifies the graphical program on the first computer;
wherein said providing the description of the user interface is performed after said user input specifying the graphical program on the first computer.
-
-
94. The method of claim 80,
wherein the first computer and the second computer are connected over a network; wherein said providing the description of the user interface of the graphical program to the second computer comprises the first computer providing the description of the user interface over the network to the second computer.
-
95. The method of claim 94, further comprising:
-
receiving user input to the second computer, wherein the user input specifies the graphical program on the first computer;
the second computer connecting to the first computer over the network;
wherein said providing the description of the user interface is performed after said user input specifying the graphical program on the first computer and after said connecting.
-
-
96. The method of claim 95,
wherein the block diagram of the graphical program is already executing on the first computer when said connecting occurs. -
97. The method of claim 95, further comprising:
the first computer launching execution of the block diagram of the graphical program in response to said connecting to the first computer.
-
98. The method of claim 95,
wherein said receiving user input specifying the graphical program on the first computer comprises receiving a uniform resource locator (URL). -
99. The method of claim 98,
wherein the URL specifies one or more of: - the first computer and/or the graphical program on the first computer.
-
100. The method of claim 94,
wherein the network is the Internet. -
101. The method of claim 94,
wherein said displaying comprises displaying the user interface of the graphical program on a web browser of the second computer. -
102. The method of claim 80,
wherein the graphical program produces a first output state; wherein said displaying the user interface includes displaying the user interface to illustrate the first output state.
-
103. The method of claim 80,
wherein the graphical program produces a second output state after the graphical program produces the first output state; -
wherein the method further comprises;
providing a user interface update indicating the second output state to the second computer; and
updating the user interface displayed on the second computer in response to the user interface update.
-
-
104. The method of claim 80, further comprising:
-
providing information regarding the block diagram of the graphical program to the second computer; and
displaying the block diagram on the second computer, using the information regarding the block diagram.
-
-
105. The method of claim 104, further comprising:
-
receiving user input to the second computer, wherein the user input specifies an edit to the block diagram;
providing the user input specifying the edit to the first computer;
wherein the first computer is operable to edit the block diagram of the graphical program according to the user input.
-
-
106. The method of claim 80,
wherein the graphical program implements a virtual instrument; wherein the user interface of the graphical program comprises a front panel of the virtual instrument.
-
-
107. A system for executing a graphical program, the system comprising:
-
a first computer including a processor coupled to a memory, wherein the first computer is operable to couple to a network;
a graphical program stored in the memory of the first computer, wherein the graphical program comprises a block diagram and a user interface;
a second computer operable to couple to the network, wherein the second computer includes a display;
wherein the first computer is operable to execute the block diagram of the graphical program and is operable to provide a description of the user interface of the graphical program over the network to the second computer during said executing;
wherein the second computer is operable to receive the description of the user interface of the graphical program and display the user interface of the graphical program on the display, based on the description of the user interface;
wherein the first computer is further operable to provide output data from the block diagram executing on the first computer to the second computer; and
wherein the second computer is further operable to display the output data in the user interface displayed on the second computer;
wherein the block diagram executing on the first computer is operable to continuously produce output data;
wherein said providing the output data from the block diagram executing on the first computer comprises providing the continuously produced output data to the second computer; and
wherein said displaying the output data in the user interface displayed on the second computer comprises continuously updating the user interface displayed on the second computer to display the continuously produced output data. - View Dependent Claims (108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130)
wherein the user interface displayed on the second computer is useable by a user to interact with the block diagram executing on the first computer as if the block diagram were executing on the second computer. -
109. The system of claim 107,
wherein the user interface displayed on the second computer is useable by the user to interactively provide input data to the block diagram executing on the first computer and is operable to display output data from the block diagram executing on the first computer. -
110. The system of claim 107,
wherein the output data is provided to the second computer separately from the description of the user interface. -
111. The system of claim 107,
wherein said providing output data from the block diagram executing on the first computer to the second computer and said displaying the output data in the user interface displayed on the second computer are performed multiple times; wherein the description of the user interface is not provided to the second computer each time output data is provided to the second computer.
-
112. The system of claim 107,
wherein said continuously updating the user interface displayed on the second computer comprises displaying the continuously produced output data in a graph in the user interface displayed on the second computer; wherein the graph scrolls in response to the continuously produced output data received from the block diagram executing on the first computer.
-
113. The system of claim 107,
wherein the second computer is further operable to: -
receive input data to the user interface displayed on the second computer; and
provide the input data to the block diagram executing on the first computer.
-
-
114. The system of claim 113,
wherein said receiving input data to the user interface displayed on the second computer comprises receiving keystroke input data to the user interface displayed on the second computer; wherein said providing the input data to the block diagram executing on the first computer comprises providing one or more characters specified by the keystroke input data to the block diagram executing on the first computer.
-
115. The system of claim 113,
wherein the block diagram executing on the first computer produces output data in response to the input data; -
wherein the first computer is further operable to provide the output data from the block diagram executing on the first computer to the second computer; and
wherein the second computer is further operable to display the output data in the user interface displayed on the second computer.
-
-
116. The system of claim 107, further comprising:
-
a third computer operable to couple to the network, wherein the third computer includes a display;
wherein the first computer is further operable to provide the description of the user interface of the graphical program over the network to the third computer;
wherein the third computer is operable to receive the description of the user interface of the graphical program and display the user interface of the graphical program, based on the description of the user interface.
-
-
117. The system of claim 116,
wherein the second computer is further operable to receive first input data to the user interface displayed on the second computer and provide the first input data to the block diagram executing on the first computer; wherein the third computer is further operable to receive second input data to the user interface displayed on the third computer and provide the second input data to the block diagram executing on the first computer.
-
118. The system of claim 117,
wherein the first computer is further operable to coordinate control of the graphical program between the second computer and the third computer; -
wherein said second computer providing the first input data to the block diagram comprises providing the first input data to the block diagram when the second computer has control of the graphical program;
wherein said third computer providing the second input data to the block diagram comprises providing the second input data to the block diagram when the third computer has control of the graphical program.
-
-
119. The system of claim 107,
wherein the second computer is further operable to receive user input that specifies the graphical program on the first computer; wherein the second computer is operable to connect to the first computer over the network using the user input that specifies the graphical program on the first computer.
-
120. The system of claim 119,
wherein the first computer is operable to launch execution of the block diagram of the graphical program in response to the second computer connecting to the first computer. -
121. The system of claim 119, wherein the user input comprises a uniform resource locator (URL).
-
122. The system of claim 121, wherein the URL specifies one or more of:
- the first computer and/or the graphical program on the first computer.
-
123. The system of claim 107, wherein the network is the Internet.
-
124. The system of claim 107, wherein the second computer stores a web browser, wherein the web browser is executable on the second computer to display the user interface of the graphical program on the second computer.
-
125. The system of claim 107,
wherein the block diagram of the graphical program is executable to produce a first output state; wherein the second computer is operable to display the first output state in the user interface.
-
126. The system of claim 125,
wherein the block diagram of the graphical program is executable to produce a second output state after producing the first output state; -
wherein the first computer is operable to provide a user interface update indicating the second output state;
wherein the second computer is operable to update the user interface displayed on the second computer in response to the user interface update.
-
-
127. The system of claim 107,
wherein the first computer is operable to provide information regarding the block diagram of the graphical program to the second computer; wherein the second computer is operable to display the block diagram on the display of the second computer, using the information regarding the block diagram.
-
128. The system of claim 127,
wherein the second computer is operable to receive user input specifying an edit to the block diagram; -
wherein the second computer is operable to provide the user input specifying the edit to the first computer;
wherein the first computer is operable to edit the block diagram of the graphical program according to the user input specifying the edit.
-
-
129. The system of claim 107,
wherein the graphical program implements a virtual instrument; wherein the user interface of the graphical program comprises a front panel of the virtual instrument.
-
130. The system of claim 107, wherein the system includes:
-
a plurality of computers each operable to couple to the network, wherein each of the plurality of computers includes a display;
wherein the first computer is operable to execute the block diagram of the graphical program and is operable to provide the description of the user interface of the graphical program over the network to each of the plurality of computers;
wherein each of the plurality of computers is operable to receive the description of the user interface and display the user interface of the graphical program based on the description of the user interface.
-
-
-
131. A method for remotely accessing a graphical program, the method comprising:
-
receiving information specifying a remote computer;
receiving information specifying a graphical program on the remote computer;
connecting to the remote computer, wherein said connecting comprises passing the information specifying the graphical program to the remote computer;
receiving a description of a user interface associated with the graphical program;
displaying the user interface based on the description received;
receiving output data from the graphical program during execution of the graphical program on the remote computer; and
displaying the output data in the user interface;
wherein the graphical program executing on the remote computer is operable to continuously produce output data;
wherein said receiving the output data from the graphical program executing on the remote computer comprises receiving the continuously produced output data;
wherein said displaying the output data in the user interface comprises continuously updating the user interface to display the continuously produced output data; and
wherein the user interface displayed is useable by a user to interact with the graphical program executing on the remote computer as if the graphical program were executing locally. - View Dependent Claims (132, 133, 134, 135, 136, 137, 138, 139, 140, 141)
wherein the graphical program is executing on the remote computer during said receiving the description of the user interface associated with the graphical program. -
133. The method of claim 131, further comprising:
the remote computer launching execution of the graphical program after said connecting to the remote computer.
-
134. The method of claim 131, further comprising:
-
receiving user input to the graphical program via the displayed user interface;
sending the user input to the remote computer;
wherein the graphical program is operable to respond to the user input.
-
-
135. The method of claim 131,
wherein the graphical program produces a first output state; wherein said displaying a user interface based on the description received comprises displaying a user interface illustrating the first output state.
-
136. The method of claim 135, wherein the graphical program produces a second output state after the graphical program produces the first output state, the method further comprising:
-
receiving a data update indicating the second output state;
updating the user interface based on the data update received.
-
-
137. The method of claim 131, further comprising:
-
receiving a description of a block diagram associated with the graphical program;
displaying an image of the block diagram, using the block diagram description.
-
-
138. The method of claim 137, further comprising:
-
receiving user input specifying an edit to the block diagram;
sending the user input specifying the edit to the remote computer;
wherein the remote computer is operable to edit the graphical program according to the user input specifying the edit.
-
-
139. The method of claim 131,
wherein said receiving information specifying the remote computer and said receiving information specifying the graphical program on the remote computer comprise receiving one or more uniform resource locators (URLs). -
140. The method of claim 139,
wherein said one or more uniform resource locators are received by a web browser application or an application with web-browsing functionality. -
141. The method of claim 140,
wherein said receiving a description of the user interface associated with the graphical program and said displaying the user interface based on the description received are performed by a browser plug-in coupled with the web browser application or application with web-browsing functionality.
-
-
142. A method for displaying output of a graphical program on a remote computer, the method comprising:
-
executing the graphical program;
establishing a network connection with a first client computer;
receiving a request from the first client computer for viewing the output of a graphical program;
sending a description of a user interface portion of the graphical program to the first client computer, in response to receiving the request from the first client computer;
sending output data from the graphical program to the first client computer for display in the user interface;
wherein the graphical program continuously produces output data;
wherein said providing the output data from the graphical program comprises providing the continuously produced output data to the first client computer for display in the user interface;
wherein the user interface displayed on the first client computer is useable by a user to interact with the graphical program as if the graphical program were executing on the first client computer. - View Dependent Claims (143, 144, 145, 146, 147)
wherein said executing the graphical program is performed in response to said establishing the network connection with the first client computer. -
144. The method of claim 142,
wherein the first client computer is operable to process the description of the user interface portion in order to display a user interface illustrating the graphical program output. -
145. The method of claim 142, further comprising:
-
establishing a network connection with a second client computer;
receiving a request from the second client computer for viewing the output of the graphical program;
sending a description of the user interface portion of the graphical program to the second client computer, in response to receiving the request from the second client computer;
sending output data from the graphical program to the second client computer for display in the user interface;
wherein the graphical program continuously produces output data;
wherein said sending the output data from the graphical program to the second client computer comprises sending the continuously produced output data to the second client computer for display in the user interface;
wherein the user interface displayed on the second client computer is useable by a user to interact with the graphical program as if the graphical program were executing on the second client computer.
-
-
146. The method of claim 145, further comprising:
-
receiving user input sent from the first or second client computer, wherein the user input specifies input to the graphical program;
passing the user input to the graphical program.
-
-
147. The method of claim 146, further comprising:
selectively allowing one of the first or second client computer to specify input to the graphical program, wherein said selectively allowing allows only one of the first or second client computer to specify input to the graphical program at a time.
-
-
148. A method for remotely displaying the user interface for an instrumentation application, the method comprising:
-
receiving information specifying a remote computer;
receiving information specifying a graphical program on the remote computer, wherein the graphical program is operable to implement an instrumentation application;
connecting to the remote computer, wherein said connecting comprises passing the information specifying the graphical program to the remote computer;
receiving a description of a user interface associated with the graphical program, wherein the user interface illustrates virtual instrumentation controls;
displaying a user interface based on the description received;
receiving output data from the graphical program during execution of the graphical program on the remote computer;
displaying the output data in the user interface;
wherein the graphical program executing on the remote computer is operable to continuously produce output data;
wherein said receiving the output data from the block diagram executing on the remote computer comprises receiving the continuously produced output data;
wherein said displaying the output data in the user interface comprises continuously updating the user interface to display the continuously produced output data; and
wherein the user interface displayed is useable by a user to interact with the graphical program executing on the remote computer as if the graphical program were executing locally.
-
-
149. A system enabling the distributed display of a user interface for a graphical program, the system comprising:
-
a client computer including a CPU, memory, and a display device;
a server computer connected to the client computer via a network, wherein the server computer includes a CPU and memory;
client software stored in the memory of the client computer;
server software stored in the memory of the server computer;
a graphical program stored in the memory of the server computer;
wherein the client software is operable to;
receive information specifying the server computer;
receive information specifying the graphical program stored on the server computer;
establish a connection with the server software;
pass the information specifying the graphical program to the server software;
receive a description of a user interface associated with the graphical program from the server software;
display a user interface on the display device, based on the description received;
receive output data from the graphical program during execution of the graphical program on the server computer; and
display the output data in the user interface;
wherein the graphical program executing on the server computer is operable to continuously produce output data;
wherein said receiving the output data from the graphical program executing on the remote computer comprises receiving the continuously produced output data; and
wherein said displaying the output data in the user interface comprises continuously updating the user interface to display the continuously produced output data;
wherein the server software is operable to;
establish a connection with the client software;
receive the information specifying the graphical program from the client software;
execute the specified graphical program;
pass the description of the user interface associated with the graphical program to the client software;
pass output data from the graphical program to the client software;
wherein said passing the output data from the graphical program to the client software comprises passing the continuously produced output data to the client software; and
wherein the user interface displayed is useable by a user to interact with the graphical program executing on the server computer as if the graphical program were executing on the client computer. - View Dependent Claims (150, 151, 152, 153, 154, 155, 156)
wherein the client software is further operable to: receive user input via the displayed user interface;
send the user input to the server software;
wherein the server software is further operable to;
receive the user input from the client software;
pass the user input to the graphical program;
wherein the graphical program is operable to respond to the user input.
-
-
151. The system of claim 149,
wherein the graphical program produces a first output state; -
wherein the description of the user interface passed to the client software includes information indicative of the first output state;
wherein the user interface displayed on the display device illustrates the first output state.
-
-
152. The system of claim 151,
wherein the graphical program produces a second output state after the graphical program produces the first output state; -
wherein the server software is further operable to;
send a data update to the client software, wherein the data update indicates the second output state;
wherein the client software is further operable to;
receive the data update from the server software;
update the user interface displayed on the display device, based on the data update received, wherein the user interface illustrates the second output state.
-
-
153. The system of claim 149,
wherein the server software is further operable to: -
send a description of a block diagram associated with the graphical program to the client software;
wherein the client software is further operable to;
receive the description of the block diagram from the server software;
display an image of the block diagram on the display device, using the block diagram description.
-
-
154. The system of claim 153,
wherein the client software is further operable to: -
receive user input specifying an edit to the block diagram;
send the user input specifying the edit to the server software;
wherein the server software is further operable to;
receive the user input specifying the edit;
edit the block diagram according to the user input.
-
-
155. The system of claim 149,
wherein the client software comprises a web browser or an application with web-browsing functionality. -
156. The system of claim 155,
wherein the server software comprise a graphical programming application operable to communicate with client processes.
-
157. A memory medium comprising program instructions operable to implement a graphical program produced using a graphical programming system, the memory medium further comprising program instructions operable to:
-
execute the graphical program;
establish a network connection with client software;
receive a request from the client software for viewing the output of the graphical program;
send a description of a user interface portion of the graphical program to the client software, in response to receiving the request from the client software, wherein the client software is operable to process the description of the user interface portion in order to display a user interface;
send output data from the graphical program to the client software for display in the user interface;
wherein the graphical program executing on the remote computer is operable to continuously produce output data;
wherein said sending the output data from the graphical program executing on the remote computer comprises sending the continuously produced output data for display in the user interface by continuous update of the user interface to display the continuously produced output data. - View Dependent Claims (158)
receive user input sent from the client software, wherein the user input specifies input to the graphical program;
pass the user input to the graphical program;
wherein the graphical program is operable to respond to the user input.
-
-
159. A memory medium comprising program instructions operable to implement a graphical program produced using a graphical programming system, the memory medium further comprising program instructions operable to:
-
receive information specifying a remote computer;
receive information specifying a graphical program on the remote computer;
connect to the remote computer, wherein said connecting comprises passing the information specifying the graphical program to the remote computer;
receive a description of a user interface associated with the graphical program;
display the user interface based on the description received;
receive output data from the graphical program during execution of the graphical program on the remote computer;
display the output data in the user interface;
wherein said receiving output data from the graphical program and said displaying the output data in the user interface are performed multiple times;
wherein the description of the user interface is not received each time output data is received; and
wherein the user interface displayed is useable by a user to interact with the graphical program executing on the remote computer as if the graphical program were executing locally. - View Dependent Claims (160)
receive user input, wherein the user input specifies input to the graphical program;
pass the user input to the graphical program on the remote computer;
wherein the graphical program is operable to respond to the user input.
-
-
161. A memory medium comprising program instructions operable to implement a graphical program produced using a graphical programming system, the memory medium further comprising program instructions operable to:
-
receive information specifying a remote computer;
receive information specifying a graphical program on the remote computer;
connect to the remote computer, wherein said connecting comprises passing the information specifying the graphical program to the remote computer;
receive a description of a user interface associated with the graphical program;
display the user interface based on the description received;
receive output data from the graphical program during execution of the graphical program on the remote computer;
display the output data in the user interface;
wherein the graphical program executing on the remote computer is operable to continuously produce output data;
wherein said receiving the output data from the graphical program executing on the remote computer comprises receiving the continuously produced output data;
wherein said displaying the output data in the user interface comprises continuously updating the user interface to display the continuously produced output data; and
wherein the user interface displayed is useable by a user to interact with the graphical program executing on the remote computer as if the graphical program were executing locally. - View Dependent Claims (162)
receive user input, wherein the user input specifies input to the graphical program;
pass the user input to the graphical program on the remote computer;
wherein the graphical program is operable to respond to the user input.
-
Specification