WO2000039664A1 - Displaying variable values - Google Patents

Displaying variable values Download PDF

Info

Publication number
WO2000039664A1
WO2000039664A1 PCT/US1999/030351 US9930351W WO0039664A1 WO 2000039664 A1 WO2000039664 A1 WO 2000039664A1 US 9930351 W US9930351 W US 9930351W WO 0039664 A1 WO0039664 A1 WO 0039664A1
Authority
WO
WIPO (PCT)
Prior art keywords
variables
values
different variables
variable
value
Prior art date
Application number
PCT/US1999/030351
Other languages
French (fr)
Inventor
George Spencer, Jr.
Original Assignee
Spencer George Jr
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Spencer George Jr filed Critical Spencer George Jr
Priority to AU23723/00A priority Critical patent/AU2372300A/en
Publication of WO2000039664A1 publication Critical patent/WO2000039664A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials

Definitions

  • Slide charts can be formed by sandwiching an inner piece of cardboard with two outer pieces.
  • the outer pieces have openings that display information printed on the inner piece.
  • the information displayed in the openings can be changed by sliding the inner piece.
  • Slide charts provide an easy way to access simple tables of values. For example, material suppliers often use them to provide quick estimates of how much material will be needed at a site. Some health organizations use them to estimate weight loss and count calories. Photographers can use them to make color comparisons. Those without prior experience with a slide chart quickly learn how to manipulate them to obtain desired data.
  • the invention features a computer program that causes a processor to produce a display of values of different variables having a defined (i.e., predetermined) relationship.
  • the program causes the processor to receive user input to change the value of any one of the variables and determine values for the other variables to maintain the defined relationship.
  • the program then causes the processor to produce a display of the determined values.
  • Embodiments may include one or more of the following features.
  • the program may cause the processor to produce a display of a value by displaying a portion of a graphic image.
  • the program may cause the processor to associate a graphic image with each one of the variables.
  • the program may cause the processor to determine values for the plurality of variables by identifying variables to keep constant, for example, by using a last-touched precedence.
  • the program may cause the processor to receive user input from a pointing device (e.g., mouse) and translate the user input into a new value for a variable.
  • the program may cause the processor to determine the values of the variables in a variety of ways. For example, the program may cause the processor to use equations that express the relationship between the variables.
  • the program may cause the processor to use interpolation.
  • the invention features a method that receives instructions that define a relationship between variables and associate a graphic image with each variable. Based on the received instructions, an application is produced that displays a value of each of a variables on a monitor, receives user input changing the value of any one of the variables, and determines values for the variables to maintain the defined relationship. The determined values for each of the plurality of variables is then displayed.
  • Embodiments may include one or more of the following features.
  • the received instructions may be a script file.
  • the script file may be received via network connection.
  • Advantages of the invention may include one or more of the following.
  • the user interface produced by the application is intuitive and easily mastered without learning complicated user interface interaction.
  • the interface does not assume which variables a user wishes to compute. Instead, the interface maintains a defined relationship between variables without restricting which variables a user can change. This enables a user to see the effect of setting certain variable values and see what variables values can produce a specified effect.
  • the interface can maintain complex relationships between variables.
  • the application can function as an engineering aid, tailor-made to promote specific product lines or as a teaching aid that illustrates tradeoffs between different variable values.
  • the application can further function as a front end for real-time equipment monitoring and control by showing the results caused by specified equipment values.
  • the application can also show equipment settings needed to achieve a specified result.
  • the application can be dynamically constructed at a remote site by connecting different elements, the application can be transmitted over a network by sending only a scripting text. Such transmission is much quicker and efficient than transmission of an executable file.
  • FIG. 1 is a diagram of a computer platform suitable for executing an application that displays variable values
  • FIGS. 2A-2E are screenshots of different displays of variable values
  • FIG. 3 is a diagram of a display foreground and a graphic image having different depictions of possible variable values
  • FIGS. 4A-4B are diagrams illustrating apparent motion of a graphic image beneath a display foreground
  • FIG. 5 is a diagram of a collection of graphic images used to depict different variable values
  • FIG. 6 is a diagram of a two-dimensional graph
  • FIG. 7 is a diagram of a model that maintains a defined relationship between variable values
  • FIG. 8 is a diagram of an exemplary model
  • FIG. 9 is a diagram of a model that uses a set of equations to maintain a defined relationship between variable values
  • FIG. 10 is a flowchart of a process for maintaining a defined relationship between variable values
  • FIG. 11 is a flowchart of a process for maintaining a defined relationship between variable values using an interpolation technique
  • FIG. 12 is a diagram of application components
  • FIG. 13 is a printout of a script that dynamically connects application components
  • FIG. 14 is a screenshot of a display of variable values produced by the script of FIG 13;
  • FIG. 15 is a diagram of a model formed by dynamically connecting other models
  • FIG. 16 is a diagram of an application being constructed at a remote site based on a transmitted script.
  • FIG. 17 is a diagram of an aggregate model
  • FIGS. 18-22 are screenshots of other displays.
  • a computer platform 100 includes a monitor 102, a keyboard 108, a pointing device 106, and a digital computer 1 10.
  • the digital computer 1 10 includes memory 1 12, a processor 1 14, a mass storage device 1 16, and other customary components such as a memory bus and peripheral bus (not shown).
  • the platform 1 10 may further include a network connection 125.
  • Mass storage device 116 stores instructions for an operating system 122 (e.g., Microsoft Windows 95TM) and an application 124.
  • the application 124 produces a user interface that displays 104 values of different variables having a defined relationship, receives user input to change any of one the variable values, and determines values for the other variables to maintain the defined relationship.
  • the application instructions 124 are transferred to memory 1 12 and processor 1 14 in the course of operation.
  • the application 124 can be stored on a variety of mass storage devices such as a floppy disk 1 18, CD-ROM 120, or PROM (not shown).
  • a user interface display 104a displays variable values having a defined relationship. For example, in the case of a cylindrical tank, variables that store the tank's capacity, diameter, and height have the following relationship:
  • the display 104a displays the values of the different diameter 126, height 128, and capacity 130 variables having a defined relationship.
  • a display 104a may include multiple displays of the same variable.
  • display 104 includes a two-dimensional graph 132 that uses cross-hairs to identify a capacity corresponding to a height and diameter. As shown, the crosshairs rest on [0,0].
  • the display 104a also includes other information including units (e.g., Feet) 134 associated with variable values.
  • the display 104a also include variables 136, 138 that have non-numeric values. These variables 136, 138 also have a defined relationship with other displayed variables (e.g., a value of "Y" if capacity exceeds some number).
  • the user interface permits a user to change the value of one or more variables 126-138 and determines new variable values conforming to the changed variable values and the defined relationship. For example, a user can change the diameter 126, height 128, or capacity 130 and the application 124 will determine values for unchanged variables that maintain the relationship of equation [1]. Thus, in some determinations a variable is treated as a dependent variable and in others as an independent variable. The ability to solve for any variable permits a user to see what output is produced by a set of inputs or what inputs are needed to produce a specified output.
  • a user can set the diameter 126 and height 128 variable values to see the capacity 130 they would produce, or a user can set the capacity 130 and see what diameters 126 and heights 128 are required to produce the desired capacity 130.
  • a series of screenshots 2A-2E illustrate application 124 behavior.
  • a user has changed the value of the diameter variable 126 from "00" in FIG. 2A to "20" in FIG. 2B. This change propagates to other variable displays. As shown, the increase of the diameter 126 causes the graph 142 to scroll left causing the graph crosshairs to rest upon the new diameter value.
  • a user has changed the value of the height 134 variable from “00" in FIG. 2B to "20" in FIG. 2C.
  • the application determines and displays new variable values based on the new height 134 value to maintain the defined relationship of equation [1]. Any number of variable values may comply with a changed variable value and a defined relationship.
  • the application 124 in response to changing the height 128 to "20" in FIG. 2C, the application 124 could have maintained the relationship of equation [1] by changing the diameter 126 to "00", or, as shown, the application 124 could leave the diameter 126 constant at "20" and determine new capacity 132.
  • a solution priority list orders variables to indicate the order the application 124 should permit variables to vary if the application is unable to determine a solution holding a set of variables constant. For example, if a solution priority list ordered from highest to lowest priority were "A; B; C", an application 124 would first try to find a solution keeping A, B, and C constant, then try to find a solution keeping A and B constant, and then try to find a solution keeping only A constant.
  • One implementation uses a "last touched precedence" to construct the solution priority list. That is, the application 124 tracks when a user directly changes a variable value. The application 124 constructs the solution priority list by ordering the variables from most recently changed to least recently changed. For example, after changing the height 128 in FIG. 2C, a solution priority list ordered from most recently changed to least recently changed is "height; diameter".
  • a user has selected and altered the displayed value of the capacity variable 130 from "6400" in FIG. 2C to "1600” in FIG. 2D.
  • the application 124 determines diameter 126 and height 128 variable values that conform to the new capacity 130 value and the defined relationship of equation [1].
  • the application 124 left the height 128 constant between FIGS. 2C and 2D due to the last-touched precedence used in determining variable values. Recapping the user's behavior illustrated in FIGS. 2A-2D, the user first changed the diameter, then the height, and then the capacity. Thus, a solution priority list ordered from most recently changed to least recently changed would be "capacity; height; diameter".
  • the application 124 To determine new values, the application 124 initially tries to keep all three variables constant (i.e., "locked”). However, in the case of the tank, such a solution does not conform to the defined relationship of equation [1]. Thus, the application 124 will "unlock” (e.g., permit a variable value to vary instead of remaining constant) the least recently changed variable (e.g., the diameter). By permitting the diameter 126 to vary while holding the height 128 constant, the application 124 can determine variable values that conform to the new capacity value 130 and the defined relationship.
  • the last-touched precedence reflects an intuitive notion that the information a user wants computed will be the variable the user has not directly entered data for recently.
  • an application 124 can display variable values using a foreground 140 and one or more graphic images 146 having depictions of different possible variable values.
  • the graphic image 146 may include numbers, letters, colors, and other graphics that communicate a variable value.
  • the graphic image 146 can take on the appearance of a measuring device such as a ruler, thermometer, or scale.
  • the foreground 140 can include graphics (e.g., the picture of a tank shown in FIGS. 2A-2E) and variable value viewports 142a-142d.
  • a variable value viewport 142a-142d displays a depiction of a variable value by displaying a portion 148 of a graphic image 146 associated with the variable.
  • a graphic image 146 is associated with a variable (e.g., height 128) viewport 142a. Based on the value of the variable, a different portion of the graphic image 146 is displayed in viewport 142a. As shown, a user has changed the portion of graphic image 146 displayed in viewport 142a from "25" 148a in FIG. 4A to "27" 148b in FIG. 4B.
  • the application 124 may animate the change in viewport 142a contents by displaying portions (e.g., "26") of the graphic image 146 between the old 148a and new 148b portions.
  • portions e.g., "26”
  • the application 124 can make the graphic image 146 wraparound when a variable goes beyond a maximum or minimum value depicted by a graphic image 146. For example, when a user attempts to move a variable value past a maximum value, the application 124 can display a portion 130 of a graphic image 146 at the minimum value.
  • the physical look and feel of the sliding element quickly communicates to users how to change variable values.
  • a user can alter variable values using a pointing device (e.g., a mouse, trackball, touch sensitive keypad, touch sensitive screen, or joystick).
  • a pointing device e.g., a mouse, trackball, touch sensitive keypad, touch sensitive screen, or joystick.
  • a user can manipulate the pointing device to move a graphic image of a pointer 150 on the viewport 142a pointing device and drag the pointing device (e.g., move the pointing device while depressing a pointing device button).
  • the application 124 can consider the duration, intensity, and magnitude of signals produced by the pointing device in determining a new value for the variable displayed in the viewport 142a.
  • the application 124 can also vary the physical resistance a pointing device offers when a user changes a variable value if the a pointing device can provide varying resistance.
  • the application 124 has received user input in the form of signals from the pointing device and translated these signals into a new variable value.
  • the new value is displayed by displaying a different portion of the graphic image 148b.
  • the application 124 may update the variable value and the portion of the graphic image display before user input completes, again producing the "look and feel" of sliding a continuous strip to set a variable value.
  • This intuitive manner of adjusting variable values frees users from having to learn complicated user interface instructions.
  • a wide variety of other user interaction techniques e.g., keyboard manipulation
  • a viewport 142 can also display a variable value using a collection of graphic images 152a-152d.
  • the graphic images 152a-152 shown include blurred depictions 154 of variable values. These blurred depictions can be displayed when a graphic image wraps-around, when the application 124 is determining variable values, or when a variable value is changing very rapidly.
  • a graphic image 152 can also be a multi-dimensional graph.
  • a viewport 142 can indicate variable values by displaying a portion 148 of the graph 152 and superimposing a graphic (e.g.. a crosshair). A user can drag the graphic image 152 to cause the portion of the graphic image 152 displayed to change.
  • a graphic e.g.. a crosshair
  • a model 160 maintains the relationship between variables 162a-162n.
  • the model 160 accepts variables 162a-162n as parameters.
  • the model 160 can also accept solution priority information 163 or have a preprogrammed solution priority included in the model 160 (not shown).
  • the model 160 processes the received variable values 162a-162n and the solution priority information 163 to set the variables 162a-162n to values that conform to the defined relationship.
  • a model 160a maintains the relationship 164 of equation [1] between variables 162a- 162c that describe tank capacity.
  • a model 160a can maintain a relationship by having equations 164a- 164c that can solve for any variable as a function of other variables.
  • a process 166 for determining variable values receives variable values and solution priority information (step 168). Initially each variable is locked (e.g., cannot be changed). The process 166 unlocks a locked variable (or a set of variables) having the lowest solution priority (step 170) (e.g., the variable least recently changed by a user). The process 166 then tries to solve for any unlocked variable using the locked variable values (step 172). Each variable may also have a range of possible values (i.e., a maximum and minimum value). The process 166 can try using the boundary values of unlocked variables in trying to determine new values (step 172).
  • step 174 the process 166 determines whether any more variables can be unlocked. If so, the process 166 can unlock more variables (step 170) and repeat step 172. Otherwise, the process 166 can issue the boundary values closest to the last attempt as a result (step 177).
  • another process 180 uses an interpolation technique.
  • the process 180 first receives data points describing a relationship between variable values (step 182). For example, if a graphic image associated with a variable is an embedded object (e.g., a graph produced from a Microsoft ExcelTM spreadsheet), the process 180 can extract data points that compose graph points. Thereafter, the process 180 can receive variable values and solution priority information (step 184), unlock a variable having the lowest solution priority (step 186), and find data points nearest the data point described by the locked variables (step 188). The process 180 can then interpolate (step 190) to determine a value for an unlocked variable.
  • step 182 receives data points describing a relationship between variable values. For example, if a graphic image associated with a variable is an embedded object (e.g., a graph produced from a Microsoft ExcelTM spreadsheet), the process 180 can extract data points that compose graph points. Thereafter, the process 180 can receive variable values and solution priority information (step 184), unlock a variable having the lowest solution priority (step 186),
  • the application 124 can be constructed from graphic image handlers 200a-200c and one or more computational models 160. Instructions (e.g., a scripting text) indicate how the graphic image handlers 200a-200c and models 160 are connected to produce the application 124.
  • Each graphic image handler e.g., handler 200a
  • the graphic image handler 200a also includes a registration 208 capability that permits configuration of the graphic image handler 200a for display of a particular variable.
  • a graphic image handler 200a can be configured to display a portion of the graphic image 202 in a viewport of a particular size at a particular location. Configuration can also override a graphic image handler's default mechanism for displaying a depiction of a variable value. Pixels in a graphic image 202 can be described by a set of coordinates.
  • a graphic image 202 coordinate system ranges from an origin at [0,0] to a point at [Max X, Max Y].
  • a graphic image handler 200a offers a default mechanism for mapping a portion of a graphic image 202 based on a variable value. For example, in the case of an image of a ruler, the default mechanism may display a portion centered about [0, Variable Value x (Max Y / Variable Value)]. This default mechanism can be overridden during configuration. For example, configuration may send a graphic image a set of data points specified as [variable value, image percentile].
  • data points may be [0,0], [10,99] meaning that the variable value of 0 should be displayed using a portion of the graphic image starting at the 0th percentile of a graphic image co-ordinate range and a value of 10 should be displayed using the 99th percentile of the graphic image coordinate range.
  • a number of different data points may be sent and the graphic image handler 200a may interpolate between the data points to determine which portion of a graphic image 202 corresponds to a variable value.
  • a mapping 5 between a graphic image and a variable can be linear or non-linear.
  • each graphic image handler 202a includes user input routines to translate user input into a new variable value. These user input routines can be programmed via registration 208 to be sensitive, insensitive, or varyingly sensitive to pointing device signals.
  • 10 200a can include other capabilities 209, for example, the capability to set graphic image colors, etc.
  • a graphic image handler 200a typically provides position 210a data.
  • Position 210a data is the variable value currently displayed by the graphic image 202.
  • the position 210a can be set by user input received by the user input
  • Models 160 and graphic image handlers 200a-200c can be connected by assigning tags 210a-210c, 222a-222c (e.g., text identifiers) 212a-212c, 222a- 222c. For example, as shown a position 210a of a first graphic image handler has
  • Instructions can be used assign tags to different inputs and outputs of the graphic image handlers 200a-200c and model(s) 160.
  • an application 124 can be formed by merely connecting all tags having the same name.
  • a model 222 for adding three numbers 224a-224d can be built by assigning tags 226a-226d, 232a-232b to the inputs and outputs 230a-230b connecting different instantiations of a model 228a-228b that adds two numbers.
  • libraries 250, 252 and scripts 230 enables efficient transmission of information needed to build an application 124 over a network connection 125.
  • a script processor 254 on a computer platform 100 processes a script 230 received via a network connection 125 and builds the application 124 by connecting graphic image handlers 250 and models 252.
  • one variety of model is an aggregate model.
  • An aggregate model interpolates results based on sampling (running with a series of sampled data points) a contained collection of one or more connected models 310. It can be implemented as a hierarchical container of references to or copies of other models 304. In the example shown, the aggregate model 306 contains only one model 310. This aggregate model 306 develops an interpolating curve 308 for what ever set of variables are unlocked at any given time. It develops these points by sampling the models it contains 310 using a series of data points and collecting the result. When this aggregate model 306 is asked to solve for a particular value 302a, 302b, or 302c, it uses this interpolation curve to determine the resulting variable values.
  • the aggregate model 306 can either be used as an approximation or replacement for a series of more detailed models or for user interface misdirection.
  • User interface misdirection determines what change in some other non-selected but unlocked variable(s) causes the desired change in the selected variable. This is the same process described above, except that the aggregate model translates a change in a user-selected variable into some change in some other variable. As both the selected variable and the non-selected variable change, the user assumes that the motion of the pointing device is controlling the selected variable. Building an aggregate model requires specifying the direction of computation in the tags. For most applications, the typical condition for these tags is to have data flow in both directions. However, the flow can be limited to in-only or out-only.
  • a display relates the amount of impurities removed from water by a water softening resin, also known as "Exchange Capacity". This result allows the sizing of the equipment versus the manner with which the resin is best regenerated.
  • the triangular graph on the left is mathematically related to the concentrations of three impurities in water; Total Mineral Acidity (T.M.A.), Silicates or (H2Si03), and Carbonates (H2C03) to the Exchange Capacity.
  • T.M.A. Total Mineral Acidity
  • Silicates or H2Si03 Silicates or
  • Carbonates H2C03
  • this chart can be used for specifying new systems, or developing regeneration strategies for existing systems.
  • a display relates various properties for the material typically used to wrap around rotating shafts in pumps and valves to prevent them from leaking or abrading.
  • a display relates the timing between input and output signals for Integrated Circuits (IC).
  • IC Integrated Circuits
  • the individual timing charts can move right or left in time in unison. Individually, they can move up or down among the various electrical connections labeled to the left. An entirely new IC can be examined by moving the image of the IC on the far left.
  • a simple identity relationship between the timing charts governs their right/left motion to ensure they move in unison in time.
  • a relationship using a lookup table is used to control their up down motion. This table contains the top to bottom centering of the various graphs.
  • a display relates the amount of fluid pumps per unit of time (Delivery Rate) for various pumps.
  • Delivery Rate versus difference in pressure (PSIG - Pounds per square inch measured by a common gauge) between the inlet of the pump (Usually zero) and the outlet.
  • PSIG difference in pressure
  • Three curves show the maximum, nominal, and minimum delivery rates (GPM - Gallons per minute) encompassing all the various fluids. The exact value is determined by selecting the Fluid Type and Temperature below. Mathematically, a series of interpolating curves determined by the manufacturer relate the Delivery Rate and Differential Pressure for various pumps. The pump type is selected by moving the image on the left.
  • Secondary sets of interpolating curves are used to compute corrections to this Delivery Rate based on the Fluid Type and Temperature.
  • the Fluid Type and Temperature are alterable by moving these images.
  • the units used to display these values can also be changed.
  • a new mathematical relationship relates the internal units used for calculation of Pressure, Temperature, and Delivery Rate to the one displayed.
  • the display can be used for selecting new pumps, or understanding the performance for existing pumps.
  • a display relates the maximum amount of fluid per unit of time (Delivery Rate) for various pumps.
  • the graph portrays this Delivery Rate versus difference in pressure (PSIG - Pounds per square inch measured by a common gauge) between the inlet of the pump (Usually minimal) and the outlet.
  • the techniques described here are not limited to any particular hardware or software configuration; they may find applicability in any computing or processing environment.
  • the techniques may be implemented in hardware or software, or a combination of the two.
  • the techniques are implemented in computer programs executing on programmable computers that each include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and one or more output devices.
  • Program code is applied to data entered using the input device to perform the functions described and to generate output information.
  • the output information is applied to one or more output devices.
  • Each program is preferably implemented in a high level procedural or object oriented programming language to communicate with a computer system.
  • the programs can be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language.
  • Each such computer program is preferable stored on a storage medium or device that is readable by a general or special purpose programmable computer for configuring and operating the computer when the storage medium or device is read by the computer to perform the procedures described in this document.
  • the system may also be considered to be implemented as a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner.

Abstract

A computer program (124) that causes a processor (114) to display on a monitor (102) a value (104) of different variables (126, 128, 130, 136, 138) having a defined relationship. The program (124) causes the processor (114) to receive user input changing the value (104) of any of the plurality of variables (126, 128, 130, 136, 138) and determine values (104) for the plurality of variables (126, 128, 130, 136, 138) to maintain the relationship. The program (124) then causes the processor (114) to display the determined values (104) for each variable (126, 128, 130, 136, 138).

Description

DISPLAYING VARIABLE VALUES
Background of the Invention This invention relates to displaying variable values. Despite advances in computing, some industries continue to distribute simple handheld slide charts to display product capabilities and features. Slide charts can be formed by sandwiching an inner piece of cardboard with two outer pieces. The outer pieces have openings that display information printed on the inner piece. The information displayed in the openings can be changed by sliding the inner piece.
Slide charts provide an easy way to access simple tables of values. For example, material suppliers often use them to provide quick estimates of how much material will be needed at a site. Some health organizations use them to estimate weight loss and count calories. Photographers can use them to make color comparisons. Those without prior experience with a slide chart quickly learn how to manipulate them to obtain desired data.
Summary of the Invention In general, in one aspect, the invention features a computer program that causes a processor to produce a display of values of different variables having a defined (i.e., predetermined) relationship. The program causes the processor to receive user input to change the value of any one of the variables and determine values for the other variables to maintain the defined relationship. The program then causes the processor to produce a display of the determined values. Embodiments may include one or more of the following features. The program may cause the processor to produce a display of a value by displaying a portion of a graphic image. The program may cause the processor to associate a graphic image with each one of the variables. The program may cause the processor to determine values for the plurality of variables by identifying variables to keep constant, for example, by using a last-touched precedence. The program may cause the processor to receive user input from a pointing device (e.g., mouse) and translate the user input into a new value for a variable. The program may cause the processor to determine the values of the variables in a variety of ways. For example, the program may cause the processor to use equations that express the relationship between the variables. The program may cause the processor to use interpolation.
In general, in another aspect, the invention features a method that receives instructions that define a relationship between variables and associate a graphic image with each variable. Based on the received instructions, an application is produced that displays a value of each of a variables on a monitor, receives user input changing the value of any one of the variables, and determines values for the variables to maintain the defined relationship. The determined values for each of the plurality of variables is then displayed.
Embodiments may include one or more of the following features. The received instructions may be a script file. The script file may be received via network connection.
Advantages of the invention may include one or more of the following.
The user interface produced by the application is intuitive and easily mastered without learning complicated user interface interaction. The interface does not assume which variables a user wishes to compute. Instead, the interface maintains a defined relationship between variables without restricting which variables a user can change. This enables a user to see the effect of setting certain variable values and see what variables values can produce a specified effect. The interface can maintain complex relationships between variables. The application can function as an engineering aid, tailor-made to promote specific product lines or as a teaching aid that illustrates tradeoffs between different variable values. The application can further function as a front end for real-time equipment monitoring and control by showing the results caused by specified equipment values. The application can also show equipment settings needed to achieve a specified result.
Because the application can be dynamically constructed at a remote site by connecting different elements, the application can be transmitted over a network by sending only a scripting text. Such transmission is much quicker and efficient than transmission of an executable file.
Other advantages of the invention will become apparent in view of the following description, including the figures, and the claims.
Brief Description of the Drawing FIG. 1 is a diagram of a computer platform suitable for executing an application that displays variable values;
FIGS. 2A-2E are screenshots of different displays of variable values; FIG. 3 is a diagram of a display foreground and a graphic image having different depictions of possible variable values;
FIGS. 4A-4B are diagrams illustrating apparent motion of a graphic image beneath a display foreground;
FIG. 5 is a diagram of a collection of graphic images used to depict different variable values;
FIG. 6 is a diagram of a two-dimensional graph; FIG. 7 is a diagram of a model that maintains a defined relationship between variable values;
FIG. 8 is a diagram of an exemplary model; FIG. 9 is a diagram of a model that uses a set of equations to maintain a defined relationship between variable values;
FIG. 10 is a flowchart of a process for maintaining a defined relationship between variable values;
FIG. 11 is a flowchart of a process for maintaining a defined relationship between variable values using an interpolation technique; FIG. 12 is a diagram of application components;
FIG. 13 is a printout of a script that dynamically connects application components;
FIG. 14 is a screenshot of a display of variable values produced by the script of FIG 13;
FIG. 15 is a diagram of a model formed by dynamically connecting other models;
FIG. 16 is a diagram of an application being constructed at a remote site based on a transmitted script. FIG. 17 is a diagram of an aggregate model;
FIGS. 18-22 are screenshots of other displays.
Description of the Preferred Embodiments
Referring to FIG. 1, a computer platform 100 includes a monitor 102, a keyboard 108, a pointing device 106, and a digital computer 1 10. The digital computer 1 10 includes memory 1 12, a processor 1 14, a mass storage device 1 16, and other customary components such as a memory bus and peripheral bus (not shown). The platform 1 10 may further include a network connection 125.
Mass storage device 116 stores instructions for an operating system 122 (e.g., Microsoft Windows 95™) and an application 124. The application 124 produces a user interface that displays 104 values of different variables having a defined relationship, receives user input to change any of one the variable values, and determines values for the other variables to maintain the defined relationship. The application instructions 124 are transferred to memory 1 12 and processor 1 14 in the course of operation. The application 124 can be stored on a variety of mass storage devices such as a floppy disk 1 18, CD-ROM 120, or PROM (not shown). Referring to FIG. 2A, a user interface display 104a displays variable values having a defined relationship. For example, in the case of a cylindrical tank, variables that store the tank's capacity, diameter, and height have the following relationship:
Capacity = (Diameter/2)2 x Height
[1]
As shown, the display 104a displays the values of the different diameter 126, height 128, and capacity 130 variables having a defined relationship. A display 104a may include multiple displays of the same variable. For example, display 104 includes a two-dimensional graph 132 that uses cross-hairs to identify a capacity corresponding to a height and diameter. As shown, the crosshairs rest on [0,0]. The display 104a also includes other information including units (e.g., Feet) 134 associated with variable values. The display 104a also include variables 136, 138 that have non-numeric values. These variables 136, 138 also have a defined relationship with other displayed variables (e.g., a value of "Y" if capacity exceeds some number).
The user interface permits a user to change the value of one or more variables 126-138 and determines new variable values conforming to the changed variable values and the defined relationship. For example, a user can change the diameter 126, height 128, or capacity 130 and the application 124 will determine values for unchanged variables that maintain the relationship of equation [1]. Thus, in some determinations a variable is treated as a dependent variable and in others as an independent variable. The ability to solve for any variable permits a user to see what output is produced by a set of inputs or what inputs are needed to produce a specified output. For example, a user can set the diameter 126 and height 128 variable values to see the capacity 130 they would produce, or a user can set the capacity 130 and see what diameters 126 and heights 128 are required to produce the desired capacity 130. Before discussing implementation details, a series of screenshots 2A-2E illustrate application 124 behavior. Referring also to FIG. 2B, a user has changed the value of the diameter variable 126 from "00" in FIG. 2A to "20" in FIG. 2B. This change propagates to other variable displays. As shown, the increase of the diameter 126 causes the graph 142 to scroll left causing the graph crosshairs to rest upon the new diameter value.
Referring also to FIG. 2C, a user has changed the value of the height 134 variable from "00" in FIG. 2B to "20" in FIG. 2C. The application determines and displays new variable values based on the new height 134 value to maintain the defined relationship of equation [1]. Any number of variable values may comply with a changed variable value and a defined relationship. For example, in response to changing the height 128 to "20" in FIG. 2C, the application 124 could have maintained the relationship of equation [1] by changing the diameter 126 to "00", or, as shown, the application 124 could leave the diameter 126 constant at "20" and determine new capacity 132. Because a large number of variable value combinations can conform to both the new height 20 value and the defined relationship of equation [1], the application 124 narrows the number of possible solutions by generating a solution priority list. A solution priority list orders variables to indicate the order the application 124 should permit variables to vary if the application is unable to determine a solution holding a set of variables constant. For example, if a solution priority list ordered from highest to lowest priority were "A; B; C", an application 124 would first try to find a solution keeping A, B, and C constant, then try to find a solution keeping A and B constant, and then try to find a solution keeping only A constant.
One implementation uses a "last touched precedence" to construct the solution priority list. That is, the application 124 tracks when a user directly changes a variable value. The application 124 constructs the solution priority list by ordering the variables from most recently changed to least recently changed. For example, after changing the height 128 in FIG. 2C, a solution priority list ordered from most recently changed to least recently changed is "height; diameter".
Referring also to FIG. 2D, a user has selected and altered the displayed value of the capacity variable 130 from "6400" in FIG. 2C to "1600" in FIG. 2D. As shown, the application 124 determines diameter 126 and height 128 variable values that conform to the new capacity 130 value and the defined relationship of equation [1]. As shown, the application 124 left the height 128 constant between FIGS. 2C and 2D due to the last-touched precedence used in determining variable values. Recapping the user's behavior illustrated in FIGS. 2A-2D, the user first changed the diameter, then the height, and then the capacity. Thus, a solution priority list ordered from most recently changed to least recently changed would be "capacity; height; diameter". To determine new values, the application 124 initially tries to keep all three variables constant (i.e., "locked"). However, in the case of the tank, such a solution does not conform to the defined relationship of equation [1]. Thus, the application 124 will "unlock" (e.g., permit a variable value to vary instead of remaining constant) the least recently changed variable (e.g., the diameter). By permitting the diameter 126 to vary while holding the height 128 constant, the application 124 can determine variable values that conform to the new capacity value 130 and the defined relationship. The last-touched precedence reflects an intuitive notion that the information a user wants computed will be the variable the user has not directly entered data for recently. Other implementations use other solution priority schemes (e.g., a simple prescribed order regardless of prior user selection). Referring also to FIG. 2E, a user has moved the graph 142 to position crosshairs under new height and diameter values. The application 124 propagates these new values to the displays of the height 132 and diameter 126 variables. Using a last-touched precedence to construct a solution priority list, the application 124 determines a new capacity value 130 since the capacity value was the variable least recently changed by the user. Referring to FIG. 3, an application 124 can display variable values using a foreground 140 and one or more graphic images 146 having depictions of different possible variable values. The graphic image 146 may include numbers, letters, colors, and other graphics that communicate a variable value. The graphic image 146 can take on the appearance of a measuring device such as a ruler, thermometer, or scale.
The foreground 140 can include graphics (e.g., the picture of a tank shown in FIGS. 2A-2E) and variable value viewports 142a-142d. A variable value viewport 142a-142d displays a depiction of a variable value by displaying a portion 148 of a graphic image 146 associated with the variable.
Referring to FIGS. 4A and 4B, a graphic image 146 is associated with a variable (e.g., height 128) viewport 142a. Based on the value of the variable, a different portion of the graphic image 146 is displayed in viewport 142a. As shown, a user has changed the portion of graphic image 146 displayed in viewport 142a from "25" 148a in FIG. 4A to "27" 148b in FIG. 4B. The application 124 may animate the change in viewport 142a contents by displaying portions (e.g., "26") of the graphic image 146 between the old 148a and new 148b portions. Thus, a variable value appears to a user as a continuous element 146 sliding beneath the stationary foreground 140. The application 124 can make the graphic image 146 wraparound when a variable goes beyond a maximum or minimum value depicted by a graphic image 146. For example, when a user attempts to move a variable value past a maximum value, the application 124 can display a portion 130 of a graphic image 146 at the minimum value. The physical look and feel of the sliding element quickly communicates to users how to change variable values.
A user can alter variable values using a pointing device (e.g., a mouse, trackball, touch sensitive keypad, touch sensitive screen, or joystick). For example, to change the value depicted in a viewport 142a, a user can manipulate the pointing device to move a graphic image of a pointer 150 on the viewport 142a pointing device and drag the pointing device (e.g., move the pointing device while depressing a pointing device button). The application 124 can consider the duration, intensity, and magnitude of signals produced by the pointing device in determining a new value for the variable displayed in the viewport 142a. The application 124 can also vary the physical resistance a pointing device offers when a user changes a variable value if the a pointing device can provide varying resistance.
As shown in FIGS. 4A and 4B, the application 124 has received user input in the form of signals from the pointing device and translated these signals into a new variable value. The new value is displayed by displaying a different portion of the graphic image 148b. The application 124 may update the variable value and the portion of the graphic image display before user input completes, again producing the "look and feel" of sliding a continuous strip to set a variable value. This intuitive manner of adjusting variable values frees users from having to learn complicated user interface instructions. Of course, a wide variety of other user interaction techniques (e.g., keyboard manipulation) permit a user to easily select and change the depicted value of a variable.
Referring to FIG. 5, a viewport 142 can also display a variable value using a collection of graphic images 152a-152d. The graphic images 152a-152 shown include blurred depictions 154 of variable values. These blurred depictions can be displayed when a graphic image wraps-around, when the application 124 is determining variable values, or when a variable value is changing very rapidly.
Referring to FIG. 6, a graphic image 152 can also be a multi-dimensional graph. A viewport 142 can indicate variable values by displaying a portion 148 of the graph 152 and superimposing a graphic (e.g.. a crosshair). A user can drag the graphic image 152 to cause the portion of the graphic image 152 displayed to change.
Referring to FIG. 7, a model 160 maintains the relationship between variables 162a-162n. The model 160 accepts variables 162a-162n as parameters. The model 160 can also accept solution priority information 163 or have a preprogrammed solution priority included in the model 160 (not shown). The model 160 processes the received variable values 162a-162n and the solution priority information 163 to set the variables 162a-162n to values that conform to the defined relationship. For example, referring to FIG. 8, a model 160a maintains the relationship 164 of equation [1] between variables 162a- 162c that describe tank capacity.
Referring to FIG. 9, a model 160a can maintain a relationship by having equations 164a- 164c that can solve for any variable as a function of other variables. Referring to FIG. 10, a process 166 for determining variable values receives variable values and solution priority information (step 168). Initially each variable is locked (e.g., cannot be changed). The process 166 unlocks a locked variable (or a set of variables) having the lowest solution priority (step 170) (e.g., the variable least recently changed by a user). The process 166 then tries to solve for any unlocked variable using the locked variable values (step 172). Each variable may also have a range of possible values (i.e., a maximum and minimum value). The process 166 can try using the boundary values of unlocked variables in trying to determine new values (step 172).
If the process fails to determine a solution (step 174), the process 166 determines whether any more variables can be unlocked (step 176). If so, the process 166 can unlock more variables (step 170) and repeat step 172. Otherwise, the process 166 can issue the boundary values closest to the last attempt as a result (step 177).
Other implementations use different processes for determining variable values. For example, one implementation uses an iterative trial and error technique. Referring to FIG. 11, another process 180 uses an interpolation technique. The process 180 first receives data points describing a relationship between variable values (step 182). For example, if a graphic image associated with a variable is an embedded object (e.g., a graph produced from a Microsoft Excel™ spreadsheet), the process 180 can extract data points that compose graph points. Thereafter, the process 180 can receive variable values and solution priority information (step 184), unlock a variable having the lowest solution priority (step 186), and find data points nearest the data point described by the locked variables (step 188). The process 180 can then interpolate (step 190) to determine a value for an unlocked variable.
Referring to FIG. 12, the application 124 can be constructed from graphic image handlers 200a-200c and one or more computational models 160. Instructions (e.g., a scripting text) indicate how the graphic image handlers 200a-200c and models 160 are connected to produce the application 124. Each graphic image handler (e.g., handler 200a) can include graphic image data 202 (e.g., a ruler), procedures for handling the graphic image 204 (e.g., for mapping a portion of the graphic image to a viewport), and a procedure for receiving user input and translating the user input into a variable value. The graphic image handler 200a also includes a registration 208 capability that permits configuration of the graphic image handler 200a for display of a particular variable. For example, a graphic image handler 200a can be configured to display a portion of the graphic image 202 in a viewport of a particular size at a particular location. Configuration can also override a graphic image handler's default mechanism for displaying a depiction of a variable value. Pixels in a graphic image 202 can be described by a set of coordinates.
A graphic image 202 coordinate system ranges from an origin at [0,0] to a point at [Max X, Max Y]. A graphic image handler 200a offers a default mechanism for mapping a portion of a graphic image 202 based on a variable value. For example, in the case of an image of a ruler, the default mechanism may display a portion centered about [0, Variable Value x (Max Y / Variable Value)]. This default mechanism can be overridden during configuration. For example, configuration may send a graphic image a set of data points specified as [variable value, image percentile]. For example, data points may be [0,0], [10,99] meaning that the variable value of 0 should be displayed using a portion of the graphic image starting at the 0th percentile of a graphic image co-ordinate range and a value of 10 should be displayed using the 99th percentile of the graphic image coordinate range. A number of different data points may be sent and the graphic image handler 200a may interpolate between the data points to determine which portion of a graphic image 202 corresponds to a variable value. Thus, a mapping 5 between a graphic image and a variable can be linear or non-linear.
As discussed above, user input routines are included in each graphic image handler 202a to translate user input into a new variable value. These user input routines can be programmed via registration 208 to be sensitive, insensitive, or varyingly sensitive to pointing device signals. Each graphic image handler
10 200a can include other capabilities 209, for example, the capability to set graphic image colors, etc.
A graphic image handler 200a typically provides position 210a data. Position 210a data is the variable value currently displayed by the graphic image 202. The position 210a can be set by user input received by the user input
15 routines 206 or by data sent to the graphic image handler 200a by models 160 (or other graphic image handlers).
Models 160 and graphic image handlers 200a-200c can be connected by assigning tags 210a-210c, 222a-222c (e.g., text identifiers) 212a-212c, 222a- 222c. For example, as shown a position 210a of a first graphic image handler has
20 been assigned a tag of "Fruit". Instructions (as shown in FIG. 13) can be used assign tags to different inputs and outputs of the graphic image handlers 200a-200c and model(s) 160. As shown, an application 124 can be formed by merely connecting all tags having the same name. When a value in any model 160 or graphic image handler 200a changes, a connected model 160 or handler
25 220a is notified of the change. A tag may be assigned to more than two elements. Referring to FIG. 13, the instructions that construct the application 124 can be script instructions 230. As shown, the instructions can instantiate a pre-constructed graphic image handler or model and connect the instantiated handlers or models. Referring to FIG. 14, an application 124 constructed by the script of FIG. 13 can produce the display 104 shown. Again, a user can adjust any of the variable values 224a-224c and have the application 124 maintain a defined relationship between the variables (e.g., Total Fruit = Apples + Oranges). Referring to FIG. 15, the same process for connecting graphic image handlers to models can be used to build complex models from other models. As shown, a model 222 for adding three numbers 224a-224d can be built by assigning tags 226a-226d, 232a-232b to the inputs and outputs 230a-230b connecting different instantiations of a model 228a-228b that adds two numbers. Referring to FIG. 16, the use of libraries 250, 252 and scripts 230 enables efficient transmission of information needed to build an application 124 over a network connection 125. A script processor 254 on a computer platform 100 processes a script 230 received via a network connection 125 and builds the application 124 by connecting graphic image handlers 250 and models 252. Referring to FIG. 17, one variety of model is an aggregate model. An aggregate model interpolates results based on sampling (running with a series of sampled data points) a contained collection of one or more connected models 310. It can be implemented as a hierarchical container of references to or copies of other models 304. In the example shown, the aggregate model 306 contains only one model 310. This aggregate model 306 develops an interpolating curve 308 for what ever set of variables are unlocked at any given time. It develops these points by sampling the models it contains 310 using a series of data points and collecting the result. When this aggregate model 306 is asked to solve for a particular value 302a, 302b, or 302c, it uses this interpolation curve to determine the resulting variable values.
The aggregate model 306 can either be used as an approximation or replacement for a series of more detailed models or for user interface misdirection. User interface misdirection determines what change in some other non-selected but unlocked variable(s) causes the desired change in the selected variable. This is the same process described above, except that the aggregate model translates a change in a user-selected variable into some change in some other variable. As both the selected variable and the non-selected variable change, the user assumes that the motion of the pointing device is controlling the selected variable. Building an aggregate model requires specifying the direction of computation in the tags. For most applications, the typical condition for these tags is to have data flow in both directions. However, the flow can be limited to in-only or out-only. This allows one set of models to be used in one direction, and a different set to be used in a different direction. Thus if a one way equation was used (e.g., A = B + C) 304, then an aggregate model 306 can be used in the other directions not supplied with equations. The interpolator 306 would contain a reference 310 to this model 304, generate a series of points 308, and use it to solve for B or C.
Referring to FIGS. 18 to 22, the above described techniques can be used to produce a wide variety of applications.
As shown in FIG. 18, a display relates the amount of impurities removed from water by a water softening resin, also known as "Exchange Capacity". This result allows the sizing of the equipment versus the manner with which the resin is best regenerated. The triangular graph on the left is mathematically related to the concentrations of three impurities in water; Total Mineral Acidity (T.M.A.), Silicates or (H2Si03), and Carbonates (H2C03) to the Exchange Capacity. The Exchange Capacity is presented both as contours on the graph, and by the vertical ruler. In addition, there is a relationship between this Exchange Capacity and the amount of chemical used to recharge the resin (Regeneration Dose) and the temperature at which this recharging occurs (Regeneration temperature). As any element can be moved, this chart can be used for specifying new systems, or developing regeneration strategies for existing systems.
As shown in FIG. 19, a display relates various properties for the material typically used to wrap around rotating shafts in pumps and valves to prevent them from leaking or abrading. There is a simple identity relationship between the three moving elements, ensuring that they move in unison. All images were scanned into a computer and slightly reworked to create image files. As shown in FIG. 20, a display relates the timing between input and output signals for Integrated Circuits (IC). The individual timing charts can move right or left in time in unison. Individually, they can move up or down among the various electrical connections labeled to the left. An entirely new IC can be examined by moving the image of the IC on the far left. A simple identity relationship between the timing charts governs their right/left motion to ensure they move in unison in time. A relationship using a lookup table is used to control their up down motion. This table contains the top to bottom centering of the various graphs.
As shown in FIG. 21, a display relates the amount of fluid pumps per unit of time (Delivery Rate) for various pumps. The graph portrays this Delivery Rate versus difference in pressure (PSIG - Pounds per square inch measured by a common gauge) between the inlet of the pump (Usually zero) and the outlet. Three curves show the maximum, nominal, and minimum delivery rates (GPM - Gallons per minute) encompassing all the various fluids. The exact value is determined by selecting the Fluid Type and Temperature below. Mathematically, a series of interpolating curves determined by the manufacturer relate the Delivery Rate and Differential Pressure for various pumps. The pump type is selected by moving the image on the left. Secondary sets of interpolating curves (not shown) are used to compute corrections to this Delivery Rate based on the Fluid Type and Temperature. The Fluid Type and Temperature are alterable by moving these images. The units used to display these values can also be changed. For each new set of units, a new mathematical relationship relates the internal units used for calculation of Pressure, Temperature, and Delivery Rate to the one displayed. As any element can be moved, the display can be used for selecting new pumps, or understanding the performance for existing pumps. As shown in FIG. 22, a display relates the maximum amount of fluid per unit of time (Delivery Rate) for various pumps. The graph portrays this Delivery Rate versus difference in pressure (PSIG - Pounds per square inch measured by a common gauge) between the inlet of the pump (Usually minimal) and the outlet. Different curves are shown for the maximum delivery rates (L/Hr - Liters per hour). Mathematically, a series of interpolating curves determined by the manufacturer relate the Delivery Rate and Differential Pressure for various pumps. The pump type and interpolating curve is selected by moving the image on the right. The units used to display these values can also be changed. For each new set of units, a new mathematical relationship relates the internal units used for calculation of Pressure, Temperature, and Delivery Rate to the one displayed. As any element can be moved, this chart can be used for selecting new pumps, or understanding the performance for existing pumps.
Other embodiments are within the scope of the following claims. The techniques described here are not limited to any particular hardware or software configuration; they may find applicability in any computing or processing environment. The techniques may be implemented in hardware or software, or a combination of the two. Preferably, the techniques are implemented in computer programs executing on programmable computers that each include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and one or more output devices. Program code is applied to data entered using the input device to perform the functions described and to generate output information. The output information is applied to one or more output devices. Each program is preferably implemented in a high level procedural or object oriented programming language to communicate with a computer system. However, the programs can be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language.
Each such computer program is preferable stored on a storage medium or device that is readable by a general or special purpose programmable computer for configuring and operating the computer when the storage medium or device is read by the computer to perform the procedures described in this document. The system may also be considered to be implemented as a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner.
What is claimed is:

Claims

1. A computer program, disposed on a computer readable medium, for causing a processor to: produce a display of values of different variables on a monitor, the different variables having a defined relationship therebetween; receive user input from an input device to change the value of any of the different variables; determine values for the different variables to maintain the defined relationship; and display the determined values of the different variables.
2. The computer program of claim 1, wherein the instructions cause the processor to display a value of one of the different variables by displaying a portion of a graphic image.
3. The computer program of claim 2, wherein the instructions cause the processor to associate a graphic image with each one of the different variables.
4. The computer program of claim 1 , wherein the instructions cause the processor to determine values for the different variables by identifying variables to keep constant.
5. The computer program of claim 4, wherein the instructions cause the processor to identify variables to keep constant using a last-touched precedence.
6. The computer program of claim 1, wherein the input device comprises a pointing device.
7. The computer program of claim 6, wherein the instructions cause the processor to translate signals received from the pointing device into a change in a value of one of the different variables.
8. The computer program of claim 1, wherein the instructions determine the values of the different variables by using equations that express the relationship between the variables.
9. The computer program of claim 1, wherein the instructions determine the values of the different variables by interpolating.
10. A method comprising: receiving instructions that define a relationship between different variables; and associate a graphic image with each of the different variables; and based on the received instructions, producing an application that produces a display of the values the different variables on a monitor; receives user input from an input device to change the value of any one of the different variables; determines values for the different variables to maintain the defined relationship; and displays the determined values for the different variables.
1 1. The method of claim 10, wherein the received instructions comprise instructions from a script file.
12. The method of claim 10, further comprising receiving the instructions via a network connection.
PCT/US1999/030351 1998-12-23 1999-12-20 Displaying variable values WO2000039664A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU23723/00A AU2372300A (en) 1998-12-23 1999-12-20 Displaying variable values

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US22014198A 1998-12-23 1998-12-23
US09/220,141 1998-12-23

Publications (1)

Publication Number Publication Date
WO2000039664A1 true WO2000039664A1 (en) 2000-07-06

Family

ID=22822239

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1999/030351 WO2000039664A1 (en) 1998-12-23 1999-12-20 Displaying variable values

Country Status (2)

Country Link
AU (1) AU2372300A (en)
WO (1) WO2000039664A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1457867A1 (en) * 2003-03-14 2004-09-15 Koninklijke Philips Electronics N.V. System for adjusting a combination of control parameters

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5526475A (en) * 1994-03-02 1996-06-11 Mathsoft, Inc. Method for live symbolic calculations in a mathematical document editor
US5768158A (en) * 1995-12-08 1998-06-16 Inventure America Inc. Computer-based system and method for data processing
US5790435A (en) * 1991-11-12 1998-08-04 Chronology Corporation Automated development of timing diagrams for electrical circuits
US5883623A (en) * 1992-04-08 1999-03-16 Borland International, Inc. System and methods for building spreadsheet applications
US5893123A (en) * 1995-06-22 1999-04-06 Tuinenga; Paul W. System and method of integrating a spreadsheet and external program having output data calculated automatically in response to input data from the spreadsheet

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790435A (en) * 1991-11-12 1998-08-04 Chronology Corporation Automated development of timing diagrams for electrical circuits
US5883623A (en) * 1992-04-08 1999-03-16 Borland International, Inc. System and methods for building spreadsheet applications
US5526475A (en) * 1994-03-02 1996-06-11 Mathsoft, Inc. Method for live symbolic calculations in a mathematical document editor
US5893123A (en) * 1995-06-22 1999-04-06 Tuinenga; Paul W. System and method of integrating a spreadsheet and external program having output data calculated automatically in response to input data from the spreadsheet
US5768158A (en) * 1995-12-08 1998-06-16 Inventure America Inc. Computer-based system and method for data processing

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1457867A1 (en) * 2003-03-14 2004-09-15 Koninklijke Philips Electronics N.V. System for adjusting a combination of control parameters
WO2004081782A1 (en) * 2003-03-14 2004-09-23 Koninklijke Philips Electronics N.V. System for adjusting a combination of control parameters
US8938676B2 (en) 2003-03-14 2015-01-20 Koninklijke Philips N.V. System for adjusting a combination of control parameters

Also Published As

Publication number Publication date
AU2372300A (en) 2000-07-31

Similar Documents

Publication Publication Date Title
US10444949B2 (en) Configurable user displays in a process control system
JP2022058551A (en) Method, apparatus, and computer-readable medium for displaying recipe information for process control system
JP7284305B2 (en) user interface device
JP3735684B2 (en) Apparatus and method for displaying data by interactive split pie chart
US7289120B2 (en) Graphic display control apparatus and program
JP7396674B2 (en) Method and system for providing role-based user interface and non-transitory computer-readable medium
US10628022B2 (en) Method and system for prototyping graphic user interface
JP2010218554A (en) Computer program, graphic display editor, and computer system
CN102043403A (en) Method for selecting shapes in a graphical display
CN103492966B (en) For controlling the method and system of industrial system
JPH05282002A (en) Input device
US20160349931A1 (en) Responsive user interface for an industrial environment
US10474341B2 (en) Digital paint generation mix control
US8566748B2 (en) Method and system of a human-machine interface
US9651926B2 (en) System, method, work station and computer program product for controlling an industrial process
US10761523B2 (en) Method for controlling an automation system
WO2000039664A1 (en) Displaying variable values
US11423587B2 (en) Freeform gradient style blending
EP2343642A1 (en) User interface panel
JPH04309101A (en) Input device for model prediction control
US11238833B2 (en) Methods and systems for display screens with relative coordinate systems
KR19990013904A (en) Real time information observation and control method of building automation system and its device
JP2011034455A (en) Data input apparatus and data input method
US20160085227A1 (en) Device for managing and configuring field devices in an automation installation
JP2000267783A (en) Movement controller and movement control method for display content

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase