Yes, it looks as if the code is designed so that process domains (PN, CSP)
can only be used within process domains. I'm not sure to what extent this
is a limitation of the process domains vs. a semantic problem. What would
PN mean within DE? Since PN has no well-defined notion of a "firing",
how would you assign time stamps to the outputs of a PN actor? By default
in DE, the time stamps of the outputs of an actor match those of the inputs
that triggered the firing. There is no such notion in PN.
I think that until there are clear answers to the semantics questions,
there is not much point in trying to make the software support the combination.
On the other hand, trying to make the software support these combinations
is likely to yield deeper insights into the semantics questions.
I would encourage you (or anyone else) to do this... It would be an
excellent research topic.
Edward
At 09:33 AM 12/15/2004 +0000, Ivan Jeukens wrote:
Hi all,
I think there is a problem with the process domains, in particular, csp
and pn. I'm working
on a specification that mix CT, DE, CSP and SR. When CSP is used inside a
DE topology,
exceptions are thrown (something related to the addBranches method of the
BranchController class).
I have attached a simple specification that reproduces the bug.
Ivan
<?xml version="1.0" standalone="no"?>
<!DOCTYPE entity PUBLIC "-//UC Berkeley//DTD MoML 1//EN"
"http://ptolemy.eecs.berkeley.edu/xml/dtd/MoML_1.dtd">
<entity name="decspbug" class="ptolemy.actor.TypedCompositeActor">
<property name="_createdBy"
class="ptolemy.kernel.attributes.VersionAttribute" value="4.0.1">
</property>
<property name="DE Director"
class="ptolemy.domains.de.kernel.DEDirector">
<property name="_location" class="ptolemy.kernel.util.Location"
value="[100.0, 60.0]">
</property>
</property>
<property name="_windowProperties"
class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={76,
83, 983, 603}, maximized=false}">
</property>
<property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute"
value="[763, 497]">
</property>
<property name="_vergilZoomFactor"
class="ptolemy.data.expr.ExpertParameter" value="1.0">
</property>
<property name="_vergilCenter"
class="ptolemy.data.expr.ExpertParameter" value="{381.5, 248.5}">
</property>
<entity name="Ramp" class="ptolemy.actor.lib.Ramp">
<doc>Create a sequence of tokens with increasing value</doc>
<property name="_location" class="ptolemy.kernel.util.Location"
value="[115.0, 295.0]">
</property>
</entity>
<entity name="CompositeActor" class="ptolemy.actor.TypedCompositeActor">
<property name="_location" class="ptolemy.kernel.util.Location"
value="[280.0, 295.0]">
</property>
<property name="PN Director"
class="ptolemy.domains.pn.kernel.PNDirector">
<property name="_location"
class="ptolemy.kernel.util.Location" value="{45, 70}">
</property>
</property>
<port name="port" class="ptolemy.actor.TypedIOPort">
<property name="input"/>
<property name="_location"
class="ptolemy.kernel.util.Location" value="{20.0, 200.0}">
</property>
</port>
<port name="port2" class="ptolemy.actor.TypedIOPort">
<property name="output"/>
<property name="_location"
class="ptolemy.kernel.util.Location" value="{580.0, 200.0}">
</property>
</port>
<entity name="Scale" class="ptolemy.actor.lib.Scale">
<property name="factor" class="ptolemy.data.expr.Parameter"
value="2">
</property>
<property name="_icon"
class="ptolemy.vergil.icon.AttributeValueIcon">
<property name="attributeName"
class="ptolemy.kernel.util.StringAttribute" value="factor">
</property>
</property>
<property name="_location"
class="ptolemy.kernel.util.Location" value="[265.0, 200.0]">
</property>
</entity>
<relation name="relation" class="ptolemy.actor.TypedIORelation">
</relation>
<relation name="relation2" class="ptolemy.actor.TypedIORelation">
</relation>
<link port="port" relation="relation"/>
<link port="port2" relation="relation2"/>
<link port="Scale.input" relation="relation"/>
<link port="Scale.output" relation="relation2"/>
</entity>
<entity name="SequencePlotter"
class="ptolemy.actor.lib.gui.SequencePlotter">
<property name="_location" class="ptolemy.kernel.util.Location"
value="{470, 290}">
</property>
<configure>
<?plotml <!DOCTYPE plot PUBLIC "-//UC Berkeley//DTD PlotML 1//EN"
"http://ptolemy.eecs.berkeley.edu/xml/dtd/PlotML_1.dtd">
<plot>
<title>SequencePlotter</title>
<xRange min="1.7976931348623157E308" max="-1.7976931348623157E308"/>
<yRange min="1.7976931348623157E308" max="-1.7976931348623157E308"/>
</plot>?>
</configure>
</entity>
<relation name="relation" class="ptolemy.actor.TypedIORelation">
</relation>
<relation name="relation2" class="ptolemy.actor.TypedIORelation">
</relation>
<link port="Ramp.output" relation="relation2"/>
<link port="CompositeActor.port" relation="relation2"/>
<link port="CompositeActor.port2" relation="relation"/>
<link port="SequencePlotter.input" relation="relation"/>
</entity>
------------
Edward A. Lee, Professor
518 Cory Hall, UC Berkeley, Berkeley, CA 94720
phone: 510-642-0455, fax: 510-642-2718
[EMAIL PROTECTED], http://ptolemy.eecs.berkeley.edu/~eal
----------------------------------------------------------------------------
Posted to the ptolemy-hackers mailing list. Please send administrative
mail for this list to: [EMAIL PROTECTED]