Using a graphical approach to defining a sequence of functions for execution isn't very impressive - any flow chart or structure diagram does this.
What marks out deltaFSD - and makes it practical for real time applications is that the graphical element is used to define a set of function sequences which can be fed to an execution engine.
The graphical tool outputs a function:variable framework which can be applied directly to the final application. The framework incorporates the dependiecies needed for each element of the control.
The overal operation, and inherent simplicity, is best understood by considering the operation of the execution "engine" - the code which is driven by the function:variable data framework.
Essentially this execution engine implement two rules:
- If a variable (or input) changes we need to execute all of the functions dependant on it.
- If a function is recalculated then it will (in general) modify all of its output variables.
Because the engine only ever works on one point (function or variable) of the function:variable framework at any time the tree of dependencies does not need to expanded. All that is required is that the individual elements are specified:
The input temperature changes
The scaled temperature must be recalculated using the Mulitply function
The scaled temperature has changed so the volume (temperature*prerssure) must be recalculated using the Mulitply function
The volume has changed so the threshold limit must be checked
If the threshold limit changes the heater output will need to be recalculated
The framework data which drives the engine to produce this only needs to specify things like:
Function 2 is Multiply, it has as inputs Variable 3 and Variable 4 and produces as output Variable 7
Function 5 is Threshold, it has as inputs Variable 6 and Variable 7 and produces as output Variable 9
F2 depends on V3 so the Mulitply must be called
V7 is changed by F2
F5 depends on V7 so the Threshold must be called