-
Notifications
You must be signed in to change notification settings - Fork 35
Open
Description
While src and dest fields are unambiguous in the directionality of connections, that via shared message is bidirectional. If MOOSE is automatically ordering the subfields (dest and src) in a shared messaged, the outcomes should be identical irrespective of the order of the arguments to moose.connect. But in the example below, where I create two HHChannels, x and y and connect them a to a compartment comp, this is not the case:
In [1]: comp = moose.Compartment('comp')
In [2]: ch = moose.HHChannel('x')
In [3]: moose.connect(ch, 'channel', comp, 'channel')
Out[3]: <moose.SingleMsg id=5 dataIndex=6 path=/Msgs[0]/singleMsg[6]>
In [4]: moose.showmsg(ch)
INCOMING:
/x, [parentMsg] <-- /, [childOut]
/x, [process,reinit] <-- /clock, [process4,reinit4]
OUTGOING:
/x, [childOut] --> /x[0]/gateX, [parentMsg]
/x, [childOut] --> /x[0]/gateY, [parentMsg]
/x, [childOut] --> /x[0]/gateZ, [parentMsg]
/x, [channelOut] --> /comp, [handleChannel]
In [5]: moose.showmsg(comp)
INCOMING:
/comp, [parentMsg] <-- /, [childOut]
/comp, [initProc,initReinit] <-- /clock, [process2,reinit2]
/comp, [process,reinit] <-- /clock, [process3,reinit3]
/comp, [handleChannel] <-- /x, [channelOut]
OUTGOING:
/x, [channelOut] --> /comp, [handleChannel]
In [6]: ch2 = moose.HHChannel('y')
In [7]: moose.connect(comp, 'channel', ch2, 'channel')
Out[7]: <moose.SingleMsg id=5 dataIndex=7 path=/Msgs[0]/singleMsg[7]>
In [8]: moose.showmsg(ch2)
INCOMING:
/y, [parentMsg] <-- /, [childOut]
/y, [process,reinit] <-- /clock, [process4,reinit4]
/y, [Vm] <-- /comp, [VmOut]
OUTGOING:
/y, [childOut] --> /y[0]/gateX, [parentMsg]
/y, [childOut] --> /y[0]/gateY, [parentMsg]
/y, [childOut] --> /y[0]/gateZ, [parentMsg]
/comp, [VmOut] --> /y, [Vm]
In [9]: moose.showmsg(comp)
INCOMING:
/comp, [parentMsg] <-- /, [childOut]
/comp, [initProc,initReinit] <-- /clock, [process2,reinit2]
/comp, [process,reinit] <-- /clock, [process3,reinit3]
/comp, [handleChannel] <-- /x, [channelOut]
OUTGOING:
/x, [channelOut] --> /comp, [handleChannel]
/comp, [VmOut] --> /y, [Vm]
Also, the incoming and outgoing message listings seem confusing.
Metadata
Metadata
Assignees
Labels
No labels