FF - 2009-02-18 - This widget is a canvas specialized for dataflow [L1 ] software. It features high level operations, as adding, moving, editing, removing, connecting and track objects. Other relevant features include: OO-design (by using the new TclOO, completion, gui objects, (minimal) internal dataflow capability.
The class loading mechanism is defined in DataflowCanvas::enumClasses. By default it looks for subclasses of DataflowClass, so it is possible to add classes which specify how many inlet/outlets object instances will have, and manage their initialization parameters.
Example: we are going to create a + class, which performs the f(x, y) = x + y function, so it has two inlets (inbound connections), and one outlet (outgoing conn.).
oo::class create + { superclass DataflowClass method setup {args} { my variable state set state {0 0} return {inlets 2 outlets 1} } method inlet {n args} { my variable state lset state $n $args if {$n == 0} { my outlet 0 [expr [join $state +]] } } }
The resulting patch:
entry and scale classes (found in source distribution) have been used to interact with the object
Drawing Diagrams may be related to this package
AMG: Interesting. I am working on a project that has a dataflow model. Perhaps I can find some inspiration in your work, and maybe I can even use it as a graphical front-end. Will you post a link to the sources soon?
enter categories here |
---|