|
|
|
| United States Patent | 5479643 |
| Link to this page | http://www.wikipatents.com/5479643.html |
| Inventor(s) | Bhaskar; Kasi S. (Seattle, WA);
Peckol; James K. (Edmonds, WA) |
| Abstract | A system for programming a computer provides a set of software-based
virtual machines each for instructing a computer to carry out a selected
operation. Each virtual machine is represented by a virtual front panel
displayed on a screen and each virtual front panel graphically displays
operator controllable values of input and output parameters utilized by
the virtual machine it represents. The system is adapted to synthesize a
new virtual machine for instructing the computer to perform a sequence of
operations wherein each operation is carried out by the computer according
to the instructions of an operator selected one of the existing virtual
machines. The system also creates a new virtual front panel for displaying
input and output parameters associated with the new virtual machine. The
system permits the operator to program the computer by directing synthesis
of a hierarchy of virtual machines. |
|
|
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 5479643 |
|
|
Virtual machine programming system |
|
|
|
|
|
| Publication Date |
December 26, 1995 |
|
|
|
|
|
| Filing Date |
August 22, 1991 |
|
|
|
|
|
|
|
|
|
|
|
| Parent Case |
This is a continuation of application Ser. No. 07/238,145 filed Aug. 30,
1988, and now abandoned, which is a divisional application of Ser. No.
06/798,931 filed Nov. 18, 1985, now U.S. Pat. No. 4,849,880 issued Jul.
18, 1989. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
| Add a new US reference: |
| | Reference | Relevancy | Comments | Reference | Relevancy | Comments | 4967381 Lane 702/81 Oct,1990 |      Your vote accepted [0 after 0 votes] | | 4914568 Kodosky 715/763 Apr,1990 |      Your vote accepted [0 after 0 votes] | | 4868785 Jordan 345/440 Sep,1989 |      Your vote accepted [0 after 0 votes] | | 4816988 Yamanaka 700/83 Mar,1989 |      Your vote accepted [0 after 0 votes] | | 4811205 Normington 345/502 Mar,1989 |      Your vote accepted [0 after 0 votes] | | 4745543 Michener
May,1988 |      Your vote accepted [0 after 0 votes] | | 4736340 Desserrieres 715/762 Apr,1988 |      Your vote accepted [0 after 0 votes] | | 4695968 Sullivan, II 703/13 Sep,1987 |      Your vote accepted [0 after 0 votes] | | 4688167 Agarwal 715/803 Aug,1987 |      Your vote accepted [0 after 0 votes] | | 4677587 Zemany, Jr. 716/20 Jun,1987 |      Your vote accepted [0 after 0 votes] | | 4674053 Bannai 700/197 Jun,1987 |      Your vote accepted [0 after 0 votes] | | 4663704 Jones 700/83 May,1987 |      Your vote accepted [0 after 0 votes] | | 4656603 Dunn 715/835 Apr,1987 |      Your vote accepted [0 after 0 votes] | | 4642790 Minshull 715/784 Feb,1987 |      Your vote accepted [0 after 0 votes] | | 4636934 Schwendemann 700/3 Jan,1987 |      Your vote accepted [0 after 0 votes] | | 4635183 Isobe 700/12 Jan,1987 |      Your vote accepted [0 after 0 votes] | | 4628444 Nozawa 700/83 Dec,1986 |      Your vote accepted [0 after 0 votes] | | 4586035 Baker 345/157 Apr,1986 |      Your vote accepted [0 after 0 votes] | | 4546435 Herbert 717/109 Oct,1985 |      Your vote accepted [0 after 0 votes] | | 4499549 Bartlett 708/2 Feb,1985 |      Your vote accepted [0 after 0 votes] | | 4497033 Hernandez 702/55 Jan,1985 |      Your vote accepted [0 after 0 votes] | | 4455619 Masui 345/530 Jun,1984 |      Your vote accepted [0 after 0 votes] | | 4315315 Kossiakoff 717/109 Feb,1982 |      Your vote accepted [0 after 0 votes] | | 4298955 Munday 700/266 Nov,1981 |      Your vote accepted [0 after 0 votes] | | 4245318 Eckart 702/67 Jan,1981 |      Your vote accepted [0 after 0 votes] | | 4152760 Freitas 700/9 May,1979 |      Your vote accepted [0 after 0 votes] | | 4064394 Allen 700/84 Dec,1977 |      Your vote accepted [0 after 0 votes] | | 4813013 Dunn 715/763 Dec,1969 |      Your vote accepted [0 after 0 votes] | | |
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
|
|
|
| Market Size |
|
Estimate the gross annual revenues of the relevant market
sector:
|
| | |
| |
|
|
| Market Share |
|
Estimate the percentage of the relevant market sector this invention will capture:
|
| | |
| |
|
|
| Reasonable Royalty |
|
What percentage of gross sales should the inventor or assignee be paid?
|
| | |
| |
|
|
|
Public's "Guesstimation" of Royalty Value
|
| Market Size | N/A | [No votes] | | x | Market Share | N/A | [No votes] | | x | Reasonable Royalty | N/A | [No votes] |
| | N/A | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
Market Review  |
|
|
Technical Review  |
|
|
Claims  |
|
|
We claim:
1. An instrumentation system comprising:
a computer;
a plurality of instruments selectively controlled by input data and
producing output data;
bus means connecting said instruments to said computer for conveying input
data and output data to and from selected instruments;
a screen controlled by said computer; and
software controlling operation of said computer implementing a plurality of
virtual machines each comprising a set of computer instructions, said
virtual machines being associated with respective ones of said instruments
for providing input thereto or receiving output therefrom, a virtual
machine controlling display on said screen of a virtual front panel
depicting an instrument and able to display a representation of data
associated with an instrument represented by a virtual front panel;
said software further comprising:
software responsive to operator input for enabling a selection of ones of
said virtual front panels,
said computer being responsive to said selection for generating a new
virtual machine comprising a combined set of the computer instructions
which comprises the virtual machines associated with the selection of ones
of said virtual front panels, said new virtual machine controlling display
of a new virtual front panel on said screen including representation of
values conveyed on said bus with respect to instruments represented by
said selection of ones of said virtual front panels,
said new virtual machine initiating transmission of input data to one of
said instruments in response to changes in values of input data
represented by said new virtual front panel and for portraying an output
data value as represented by the new virtual front panel in response to
output data received from another one of said instruments.
2. An instrumentation system for carrying out a procedure with respect to
equipment being tested by the instrumentation system, comprising:
a computer;
bus means coupled to said computer wherein said bus means carries data to
and from said computer;
instrumentation also coupled to said bus means, at least a portion of said
instrumentation receiving data from said computer via said bus means and
at least a portion of said instrumentation supplying data to said computer
via said bus means;
means for coupling at least a portion of said instrumentation to equipment
under test; and
a screen controlled by said computer;
wherein said computer is controlled by software for displaying on said
screen at least one virtual front panel representing at least a said
portion of said instrumentation, wherein said software implements a first
virtual machine comprising a first set of computer instructions
corresponding to a said at least one virtual front panel for controlling
coupling of data with a said portion of said instrumentation;
wherein said software provides at least one second virtual machine
comprising a second set of computer instructions for bringing about
performance of a computer operation as well as display on said screen of
another virtual front panel representing a said computer operation; and
wherein said software is operable in response to operator designation of
virtual machines by selection of front panels to generate a combined
instruction set from said first and second instruction sets which provides
a further front panel, said combined instruction set conjointly
controlling said instrumentation for carrying out said procedure.
3. An instrumentation system comprising:
a computer;
an instrument;
bus means connecting the instrument to the computer to provide data
interchange therebetween;
a screen controlled by said computer;
means conveying user input including input commands to said computer; and
memory means storing software in execution by said computer implementing a
collection of virtual machines, each virtual machine of said collection of
virtual machines comprising a set of instructions, said collection of
virtual machines including:
a first virtual machine responsive to data on said bus means and displaying
on said screen a first virtual front panel representing said instrument;
and
a plurality of second virtual machines, each producing designated operation
output data in response to operation input data, and displaying a separate
second virtual front panel on said screen, wherein said first and second
virtual machines respond to input commands by generating output computer
instructions corresponding to the sets of instructions of said first and
second virtual machine;
said software further implementing software generation responding to user
input selecting ones of said virtual machines by combining the output
computer instructions generated by said first and second virtual machines
in response to input commands to form new software implementing a third
virtual machine performing operations corresponding to the operations of
selected first and second virtual machines.
4. The system in accordance with claim 3 wherein at least one of said
first, second and third virtual front panels displays an input data value
and wherein a virtual machine controlling said at least one virtual front
panel comprises means for providing input to said software for adjusting
said input data value in response to user input.
5. For an instrumentation system comprising a computer, an instrument, bus
means connecting the instrument to the computer, a screen controlled by
said computer, and means conveying user input including input commands to
said computer, a method for controlling said instrument and displaying
values relating thereto, the method comprising the steps of:
executing software implementing a first virtual machine comprising a first
set of computer instructions corresponding to said instrument and
displaying on said screen a first virtual front panel representing said
instrument, and implementing a plurality of second virtual machines
comprising second sets of computer instructions, each for producing
operation output data in response to operation input data and displaying a
second virtual front panel on said screen representing an operation
controlled by the second virtual machine, wherein said first and second
virtual machines respond to input commands for selecting said first and
second virtual machines by generating output computer instructions
representative of the respective instruction sets of the selected first
and second virtual machines;
transmitting said input commands to said software pertaining to ones of
said first and second virtual machines selected in response to user input;
combining output computer instructions generated by said ones of said first
and second virtual machines in response to said input commands to form new
software implementing a third virtual machine executing a sequence of
operations synthesizing the operations of said first and second virtual
machines selected in response to user input and displaying on said screen
a third virtual front panel representing said third virtual machine,
wherein said user input further defines the sources and destinations of
input and output data for said first and second virtual machines as
synthesized by said third virtual machine; and
executing said new software implementing said third virtual machine.
6. The method in accordance with claim 5 wherein said third virtual front
panel displays at least one value of instrument output data and wherein
the step of executing said new software comprises the step of adjustment
of said instrument in response to user input.
7. An instrumentation system for conducting a procedure with respect to a
device under test, comprising:
a computer;
a plurality of instruments adapted for coupling to said device under test;
and
bus means connecting said instruments to said computer for providing data
communication between said instruments and said computer;
said computer being controlled by software implementing a plurality of
selectable virtual machines, said virtual machines being associated with
said plurality of instruments, a said virtual machine comprising a set of
instructions controlling a corresponding instrument and display on said
screen of a corresponding virtual front panel;
said software further comprising:
software responsive to operator input for enabling selection of ones of
said virtual front panels;
said computer being responsive to said selection for generating a new
virtual machine, said new virtual machine controlling display of a new
virtual front panel on said screen;
said new virtual machine initiating data transmission with ones of said
instruments in response to operator interaction with said new virtual
front panel.
8. An instrumentation system comprising:
computer means;
instrumentation which operates according to input data for producing output
data;
bus means connecting the instrumentation to the computer means for carrying
said input data from said computer means to said instrumentation and for
carrying said output data from said instrumentation to said computer
means; and
a screen controlled by said computer means;
wherein said computer means is controlled by software for displaying on
said screen at least a first virtual front panel graphically depicting
said instrumentation;
wherein said computer software implements a first virtual machine
comprising a first set of computer instructions for controlling the
receipt by said computer means via said bus means of said output data from
said instrumentation and a second virtual machine comprising a second set
of computer instructions for bringing about a computer operation;
said computer software controlling display on said screen of a second
virtual front panel associated with said second virtual machine;
wherein said computer software implements operator controlled selection of
ones of said first and second virtual machines to carry out a programmed
process involving said instrumentation; and
wherein said computer software further implements synthesizing a new
virtual machine wherein said new virtual machine is defined by the
selected virtual machine and operator selected interrelationship between
said selected virtual machines. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
BACKGROUND OF THE INVENTION
The present invention relates in general to programming of computer systems
and more particularly to a method and apparatus for developing
applications software.
The number of applications for computers has grown remarkably in the last
few years and so too has the number of persons skilled in the art of
computer programming. Nonetheless computer literacy is not universal and
in any case the programming of any new system is usually time consuming.
One category of a programmable system involves computer controlled
combinations of test instruments adapted to provide a common result.
Microcomputers have been incorporated into the design of many electronic
test instruments such as multimeters, signal generators, logic analyzers,
digitizers and the like wherein the microcomputers typically control
instrument settings, data storage and display, and often provide
communication with a host computer through interconnecting buses. The host
computer may be programmed to supply instructions to the microprocessor in
each instrument for controlling the operation of the individual
instruments in performing selected tests, while also acquiring data from
the instruments, performing calculations based on the acquired data, and
displaying the results. Once computer software is developed for various
tests to be performed the computer-based instrument system greatly reduces
the labor required inasmuch as an operator does not then have to manually
adjust the settings of the instruments before or during such test and does
not have to manually assemble or process the data acquired. However, the
major drawback to such computer-based instrument systems relates to the
need for development of separate host computer software for each
combination of tests. Testing is described by way of example and it is
understood the problems associated with assembling of other combination
systems may be similarly addressed. What is needed is a method and
apparatus for permitting persons not skilled in the art of computer
programming to easily develop easily used computer applications software.
SUMMARY OF THE INVENTION
According to one aspect of the present invention, a computer programming
system provides a set of software-based "virtual machines" each for
receiving input parameters and for producing output parameters related to
the input data in a selected manner. Each virtual machine is suitably
represented by a corresponding "virtual front panel" comprising a
graphical display or other means for representing its input and output
data. The system permits an operator to adjust the values of input
parameters displayed by the virtual front panel, by manipulating a cursor
or the like, and allows the operator to command the machine to "run"
(i.e., to produce and display its output parameters based on the current
input parameters) by selecting a command from a displayed menu or other
input. The virtual machine front panel provides a graphical representation
of underlying virtual machine software in a manner easily understood by an
operator and facilitates communication between software and operator.
According to another aspect of the present invention, the operator can
define a "synthesized virtual machine" for performing a selected sequence
of operations, the operator defining each operation of the sequence by
selecting a pre-existing virtual machine capable of performing such
operation. The operator also names the input and output parameters of the
virtual machine and specifies where the input parameters required by each
operation of the sequence are to be obtained. The programming system of
the present invention then generates and stores computer code necessary to
implement the synthesized virtual machine, including an associated virtual
front panel according to the operator's specification, thereby permitting
an operator to create applications software without actually writing it.
Once the software for a virtual machine has been synthesized, the operator
may create instances and for each may adjust the input parameters of the
synthesized virtual machine and command it to run in the same manner as
any other virtual machine.
According to a further aspect of the invention, the operator may synthesize
additional "higher order" virtual machines wherein one or more of a
sequence of operations is carried out by previously synthesized virtual
machines. In such fashion the operator may create a hierarchy of
synthesized virtual machines, each higher order virtual machine employing
lower order machines in performing its function. This aspect of the
invention permits an operator to create highly complex applications
software in a structured manner wherein each separate element of the
software comprises a virtual machine which can be independently tested and
modified, thereby simplifying the process of developing and debugging
applications software.
According to still another aspect of the invention in a preferred
embodiment thereof, a host computer is connected through a bus to a set of
microcomputer-based instruments such as voltmeters, signal generators and
the like, each adapted for performing a selected test or other function.
Each instrument is represented by the host computer as a corresponding
virtual "instrument" or machine including means to transmit input
parameters to the corresponding instrument and to receive output
parameters therefrom, the input and output parameters being displayed on a
corresponding virtual front panel. Selected host computer operations such
as addition, multiplication, and the like, are also carried out by
representative virtual machines. Each virtual machine is available for
selection by an operator when synthesizing a higher level virtual machine
so that operation of any real instrument may form a step in a sequence of
operations performed by the higher level virtual machine.
Accordingly, an operator may synthesize a virtual machine to control and
coordinate the operations of one or more instruments accessed by the host
computer, perform computations based on the data produced by such
instruments, and display the results of the computations as outputs on a
virtual front panel.
It is therefore an object of the invention to provide a new and improved
method and apparatus for organizing computer operation.
It is another object of the invention to provide a new and improved method
and apparatus for developing and structuring computer applications
software.
It is a further object of the invention to provide a new and improved
method and apparatus for programming a computer-based instrument system.
The subject matter of the present invention is particularly pointed out and
distinctly claimed in the concluding portion of this specification.
However, both the organization and method of operation of the present
invention, together with further advantages and objects thereof, may best
be understood by reference to the following description taken in
connection with accompanying drawings wherein like reference characters
refer to like elements.
DRAWINGS
FIG. 1 is a block diagram of a computer-based instrument system for
implementing the present invention;
FIGS. 2A-2F are views of virtual front panels for selected virtual
instruments;
FIGS. 3A-3P comprise menus, lists and dialog box displays produced by the
present invention;
FIG. 4 illustrates an example of a synthesizing window display according to
the present invention; and
FIGS. 5-8 are charts of code listings for implementing the present
invention.
DETAILED DESCRIPTION
Referring to FIG. 1, there is depicted in block diagram form a
computer-based instrument system 10 adapted to control and coordinate the
operations of a plurality of computer-based instruments 12 according to
the present invention. Instruments 12 include, by way of example, a signal
generator 14, a voltmeter 16, and such other instruments 18 as may be
useful for testing a device under test 20. Each instrument 12 includes
means for receiving signals and input data for controlling its operation
from a host computer 22 transmitted over a means for communication such as
a bus 24 and/or means to transmit acquired data back to the host computer
22 over means 24. The system 10 also includes a terminal 26 having a
display screen and input devices including a keyboard and a mouse
controller or similar device for controlling the position of a cursor on
the screen. The mouse is provided with three buttons: a red button for
selecting objects indicated by the cursor, a blue button for opening a
menu for controlling the display of a selected display window on the
screen, and a yellow button for opening menus for controlling the behavior
of software associated with a selected window.
According to the present invention, the host computer 22 is adapted to
communicate with each instrument 12 by means of a corresponding
software-based virtual instrument (i.e., virtual machine) comprising a set
of computer instructions for performing a selected function and which may
be graphically represented in the form of a corresponding "virtual front
panel" displayed on terminal 26. The virtual front panel associated with a
virtual machine suitably displays the values of any input parameters used
by the machine and any output parameters produced by the virtual machine.
A virtual instrument or machine may be adapted to transmit its input
parameters to the corresponding real instrument and to acquire its output
parameters from the real instrument through bus 24.
Signal generator 14 suitably produces a sinewave signal having two
variables, frequency and amplitude, as controlled by data provided by the
host computer 12 via bus 24. Referring to FIG. 2A, there is depicted a
virtual front panel 28 of a virtual instrument associated with signal
generator 14. The values of the frequency and amplitude control variables,
comprising input parameters of the virtual instrument, are graphically
displayed on the screen of terminal 26 in the form of two simulated,
dial-type, logarithmic scale meters 30 and 32. As indicated the signal
generator 14 has a frequency range of 1 to 10 (e.g. Hertz) and an
amplitude range of 1 to 10 (e.g. volts). The meter representations in the
FIG. 2A display are illustrative of settings of 1.0 Hertz and 1.0 volts.
The value indicated by each analog meter is also digitally displayed in
the center of the meter.
Referring to FIG. 2B, there is depicted a virtual front panel 34 of a
virtual instrument associated with the voltmeter 16 of FIG. 1, including a
simulated linear bar graph meter display 36 representing the output value
of the voltmeter. When the virtual instrument associated with the
voltmeter is actuated, it acquires data from the voltmeter indicating the
value of the presently measured voltage and adjusts the bar graph meter 36
to display that value. The voltmeter output value is also digitally
displayed at the center of the bar graph meter.
The host computer is further adapted to perform a variety of comput | | |