I modified BranchController so that if it gets a ClassCastException,
the exception it throws mentions that process domains may not work
inside non-process domains.

I also added a test in pn/test/PNDirector.tcl that runs PNInsideDE.xml
and expects the ClassCastException.

What we really need is a set of simple tests that tries the different
combinations of domains inside each other.  Not all combinations work,
we need to better document what combinations do work.

_Christopher


--------

    
             Hi Prof. Lee, all,
    
    > 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.
    
    
          Yes, I agree with you, not all combinations are meaningful. As a 
    matter of fact,
    I was combining CSP inside a SR topology. That does not seem right 
    because of the synchronous
    hypothesis. But, I was testing a tool for checking the validity of 
    specifications against certain MoCs,
    and in principle, that combination (SR + CSP) was ok (the specification 
    isn't timed, is monotonic, etc).
    
           As for DE + CSP I think it might be useful, since DE is primary a 
    simulation model, as is
    CT. Therefore, these two models are pretty good for capturing the 
    environment of a system. In my
    particular case, I'm also interested in embedded software, so CSP an PN 
    should be put in the mix.
    
           Indeed, trying to view a "process composite actor" as a 
    "activation based atomic actor" is tricky.
    The "fire until deadlock" policy for the process composite seems the way 
    to go. If no actor inside
    the composite manipulates the time value, i.e the composite is zero 
    delay, then the timestamps of produced
    events could be of current time of firing.  Now for generating embedded 
    software, I think it does not make
    much sense the notion of timestamp of an event, since the real time is 
    not a controllable feature. Maybe the only
    acceptable method of a process that manipulates time is a timed delay ( 
    fireAt() ) . In a
    DE + process this can be interpreted as the generation of a pure event 
    that will trigger a
    future activation of the process based composite. Anyway, issues of 
    deadlocks, livelocks and
    determinacy should be studied carefully.
    
    
        Regards,
        Ivan
       
       
    P.S.:  By April/May of 2005 I should get my PhD, and be a free man. So, 
    if anyone out there
    is interested in a 6 year experienced Ptolemy II guy to develop MoC 
    science, just let me know ... :-)
    
    
    ---------------------------------------------------------------------------
   -
    Posted to the ptolemy-hackers mailing list.  Please send administrative
    mail for this list to: [EMAIL PROTECTED]
--------

----------------------------------------------------------------------------
Posted to the ptolemy-hackers mailing list.  Please send administrative
mail for this list to: [EMAIL PROTECTED]

Reply via email to