[Pipet Devel] NetInputs and NetOutputs

Brad Chapman chapmanb at arches.uga.edu
Mon Jun 19 18:18:33 EDT 2000

Jeff wrote:
> I'm not sure if you're asking how this can be done conceptually or
> graphically
> (in which case, I can answer the question), or how this can be 
> (in
> which case, Jarl should answer the question).

Well, I was kind of asking both, but since you both answered, all of 
my dreams have come true :-)

** The conceptual part **

Jeff wrote:
> Conceptually and graphically, it's very simple: Unconnected pipes in 
a subnet
> mean the I/O is redirected from/to the parent network.  In 
Pied/Piper, all
> "dangling" pipes are reproduced at (mapped onto) the parent node's 
icon (this
> is not implemented yet).  To "close" a pipe or create a "dead end", 
the user
> must "hide" it (also not implemented).  In Peep, the user will need 
to issue
> a
> "close" or "cap" command to do the equivalent.

Okay, this makes complete sense. Thanks! I'll work on adding support 
for this in the dl so that the xml files model this kind of behavior.

Jean-Marc wrote:
> If I understand correctly, that's exactly where NetInputs and 
NetOutputs are
> used. If you compare subnets to C functions, then NetInputs are the 
> and NetOutputs are the return value(s).

Jeff wrote:
> Brad, these are exactly the same as the inputs and outputs of a Loci
> "composite locus".  I see no difference.

Okay, it seems like we're all on the same page (for once :-), so that 
is really exciting. I think I've got what's going on and understand 
how to integrate it with what Overflow already has, so I'll move 
forward on that...

** The implementation part **

To preface this, I haven't been worry about the implementation details 
about this a whole lot, since what I'm working on doing is making the 
dl produce xml that is compliant with what Overflow current has (I 
judge this by the ability to open up the produced xml in Overflow). 
I'm presuming that this document is going to be what I'll submit to 
the bl, and then the bl/pl will be able to deal with it from there. 
Hopefully these are the same thoughts Jarl and Jean-Marc are having 

Jarl wrote:
[...snip...explanation of how GMS works...]
> The relation of 1. and 2. with your problem is this:
> 1. All output-from-the DL\UI is going into a BL-node which is 
> as a input node, cq a sensor.
> 2. All nodes the UI wants to have the output from are marked too, 
> time as visuals. 
> So the datastreams up and down into the UI\DL\BL\PL hiarchy will be
> without much overhead. This is why we have a BL anyway :-)
> I'm I making any sense? [I've the feeling my dutch thoughts arn't 
> well translated :)]

I think so... If I'm with you, it seems like you're saying that the 
flow of data in the bl and pl should occur independently of how weird 
the nodes are structured in the user interface and definition layer. 
So, as long as I can let you know what the connections are, you can 
run through them okay... Am I thinking along the right lines?
    If I am, then this seems to be an example of the separation 
between build time and run time that Jeff has been talking about. This 
way we can have a user interface that is easier to understand, and 
still have a rapid flow during execution. Sounds cool to me :-).

** Iterator and NetParameter part **

> Iterators must have ONE NetCondition. These Net* can be added
> by shift-clicking (or ctrl-clicking) in the node terminals. When you 
include a
> subnet in another network, it will appear as a regular node. The 
inputs of
> this node will be the NetInputs tags, the same applies to NetOutputs 
> don't see
> NetConditions however, since it is used "internally" by the Iterator)

Right, I still need to add stuff for handling Iterators and haven't 
even gotten into this yet. I guess we should stick with the simple 
connection and subnet stuff for now, since that already gives us 
enough to do in the GUI. Then once we've got that settled, we should 
attack having iterators and thinking of a way to set the NetConditions 
for them.

    Thanks much for everyone's insight on this!


More information about the Pipet-Devel mailing list