Boxes (aka functions)
To insert a box:
- Select the function you want from the menus (User, Math, Utility).
- Click where you want to position it
- For special functions you will be presented with a dialog box offerring the options/parameters for that function.
All boxes have a hot-spot - in the top left hand corner - this allows you to:
- Move the box - just left click and drag it to where you want it.
- Right click to call up a menu to:
- Delete the box (and the associated function).
- Force a recalulation of the function.
- (For the "special" functions) call up a dialog box to modify the function's parameters
Lines (aka variable links)
To insert a line:
- Select the output stub of the source function.
- Click and drag the line to the input stub of the destination function.
- A line can consist of any number of individual horizontal and vertical segments.
Left click on (or near) a line segment to drag it to a new position.
(The first and last segments of any line are fixed - they are the horizontal extensions of the input and output stubs.)
Right click on (or near) a line segment to call up a menu which allows you to:
- Delete the line (and the associated variable linkage).
- Force a recalulation of the functions dependant on the associated variable.
Note that you can only join outputs to inputs (ie not vice versa)
An output can be joined to several inputs (each with a separate line). An input can only have a single line to it.
Modules provide a way to (visually) structure your program.
A module is simply a box which can hold other boxes (including other modules).
A module does no processing itself - it is simply a container for functional boxes
You can descend into a module - to the "lower level" processing. Or ascend to the level above (if there is one). (Right click its hot spot.)
Lines at the different levels are joined through the inputs and outputs of the module
You can delete a module only if it is empty.
(Modules are only a graphical convenience - the processing functions (their inputs and outputs) are joined as if the program were one big (huge) single level drawing.
The special input/output functions
- Print - simply displays its input value on screen.
- Get - provides a (named) value entry box at the bottom of the window - this provides the function output.
- Timer - counts milliseconds (these are output) but is invoked (updated) at a definable tick rate.
- Graph - provides a x-y graph. Its x and y size is +/- 1.0 but you can scale the inputs and offeset the axes.
- Chart - provides a y-t chart. Its y size is +/- 1.0 but you can scale the inputs and offeset the axes. The second input advances the chart.
Reading and writing
You can save and retrieve the contents of a module - the top level is considered to be a parentless module
The format is a basic form of xml but it does work.
It only saves the module currently being displayed so you need to save the elements of any hieracrchy separately - and retrieibve them in the right order.
It does allow you to create utility modules and then read the same file into differnt parts of your program.