A modeling, simulation, specification and source code generation system for at least one graphical data driven, interactive operator interface capable of executing similarly on a model system and on a modeled system, comprising:
- a graphic input device responsive to user inputs for deriving a positional signal;
- a processor unit including:
- (1) an input module;
- (2) an object editor module responsive to said operator control signals for deriving virtual objects by relating a graphical appearance of said virtual objects to a behavior of said objects during execution by the system, the object editor module being arranged so a user can import graphics, the object editor module assigning execution time behaviors (i) to said imported graphics or (ii) to a user designed graphics, the object editor module having:
- I. at least one of:
- (A) a first arrangement for creating and modifying custom graphics including facilities for:
- (i) precisely drawing graphic primitives, such as lines, circles, polygons and texts;
- (ii) manipulating of at least one of the color, texture, line style, font and texture graphic attributes of said primitives;
- (iii) combining such primitives to form hierarchical constructions;
- and (iv) selectively applying graphic transformations, such as scaling, translating, rotating and combinations thereof, to the primitives or hierarchical constructions thereof;
- and (B) a second arrangement for building custom design graphics with another tool and importing custom design graphics into the object editor;
- and
- (II) a third arrangement for mapping user defined graphics derived by one of (i)-(iv) into objects with execution time behaviors being mapped to the user defined graphics by selecting these graphics through pointing and clicking with the graphics input device, and by filling in class specific information by pointing and clicking with the graphics input device on the displayed graphics and using an alphanumeric data entry device, resulting in an association of the execution time behaviors to the imported graphics, the execution time behaviors including at least one of:
- a. displaying dynamic data of the application as a user designed bar chart,
- b. displaying a finite, but dynamically varying, number of any of the user designed visual objects with execution behaviors specified herein in a clipped viewing area,
- c. displaying and controlling a user defined cursor having an arbitrary graphical look inside a clipped viewing area,
- d. displaying dynamic real-time application data in a rotational manner, by rotating user defined or the imported graphics around a user defined center of rotation,
- e. displaying as a graphics overlay user defined animated graphics over the graphics produced by a user program,
- f. forming a correspondence between a set of user defined graphical representations and a finite set of natural numbers (1, 2, 3, . . . n), the natural numbers dynamically varying under application control and having only one representation of the set displayed at any given time based on the value of an index of the set,
- g. displaying dynamic real-time application data in a textual fashion as an ASCII string, using a font,
- h. displaying dynamic real-time application data as a user designed graph that is redrawn dynamically to illustrate the most recent data values,
- i. displaying dynamic real time application data as a set of user designed graphics translating along a straight line segment,
- j. forming mapping between a finite set of consecutive natural numbers and a rectangular collection of graphics and displaying the portion of the rectangular collection of graphics that corresponds to a dynamically computed, current value in the set of numbers inside a rectangular region,
- k. sending to the application a value selected dynamically from a finite set of values, while concurrently providing visual feedback by displaying one of a set of user designed graphics mapped to that value, where such value set is traversed in a fixed order,
- l. sending a user defined ASCII string to the application, the user defined ASCII string being statically associated with a user defined graphic appearing on the display, the user defined ASCII string being sent to the application in real-time whenever the user dynamically interfaces with the displayed graphics,
- m. defining and referencing a collection of graphics to be displayed or removed together under application control,
- n. sending to the application a character string generated by typing on a real hardware keyboard or by inputting through a virtual keyboard comprised of user defined graphics appearing on the display, after validation and display of the generated character string using a font, said character string being sent in real-time as the user manipulates the real or virtual keyboard,
- o. sending to the application ASCII data associated with user defined graphics appearing in a set of non-overlapping rectangular regions on the display, such that for every region, a distinct character or character string is sent, the ASCII data associated with user defined graphics being sent in real-time as the user manipulates the user defined graphics,
- p. sending to the application a continuous input value varying in a finite, continuous real-number range, and concurrently providing real-time visual feed-back by rotating a set of user defined graphics around a user defined center of rotation,
- q. sending to the application an input signal including x,y coordinates derived by associating a user defined coordinate set with a user defined graphics region and selecting at execution time a point in the graphics region to thus map to the x,y coordinate set,
- r. sending to the application lists of ASCII strings contained in pop-up or pull-down menus, said menus including user designed graphics and a user designed look and feel while being manipulated, the strings in the menus being sent to the application in real-time by manipulating the graphics through the graphic input device,
- s. sending to the application a continuously varying input value from a finite continuous range while concurrently providing visual feedback by translating user designed graphics along a straight line segment mapped to a value range,
- t. causing the application to display graphics primitives and alter graphical attributes thereof such as color, font, texture and transform them, such as by rotating, translating, scaling, making visible and invisible, based on real-time values of an application variable,
- u. sending to the application a value from a finite set of discrete values, and providing concurrent visual feedback by rotating an image on the display around a point at predefined angles,
- v. forming correspondence between a graphics object including simultaneously displayed user designed and first and second graphic objects, and sending to the application the identity of the second object when the user interfaces with graphics of the first object, such correspondence being of a temporal nature and existing only when the first and second objects are simultaneously displayed,
- w. sending to the application a value from a finite set of discrete values and providing concurrent visual feedback by displaying mutually exclusive user designed graphics on the display, the traversal order of the set being determined at execution time by the user,
- x. visually displaying and interacting with application data structured as a collection of nodes and connecting arcs (or links), each node and link being capable of being individually addressed and queried, and each node and link being visually displayed on the display as a network employing user designed graphics;
- the data sent to the application being generated in response to a human interaction with at least one of the objects or being supplied to at least one of the objects through a simulated event generation mechanism, the application data being sent from the application to objects built with the subject object editor for display,
- the application data being the contents of a finite set of named application variables of various types contained in computer memory accessed by the application program, the application data reflecting the latest results of computations and other data manipulations performed by the application program;
- (3) a state table editor responsive to operator control signals for defining a logic specification by specifying:
- (a) system states;
- (b) events to be recognized in respective ones of said states;
- (c) actions to be taken in response to respective ones of said events and states;
- and
- (d) next states to be entered in response to respective ones of said events and states;
- and
- (4) a code generation module for generating (a) portable graphics code from an object description including behavioral parameters, interface information and graphics information;
- the behavioral information being class dependent and capturing salient real-time behavior of the object class, the interface information identifying a variable through which the application interfaces with the operator interface, the graphics information including graphics primitives and coordinates thereof, graphics transformations such as scaling, rotating, translating and graphics attributes applicable to any primitive, such as color, line style, texture and fonts, and (b) logic control code from a logic specification including states and transition statements, each transition statement including:
- an event, an action list and a next state;
- each event including an event type and an event descriptor, a condition being any expression involving memory addresses, an action list being a list of names of programs that are to be executed, and the next state being a name;
- which code, after suitable post-processing causes images with similar appearances, animation behaviors, and interactive behaviors to appear on the model(ed) system.