[kepler-dev] Ports
Ivens
ivensportugal at gmail.com
Tue Aug 3 08:20:24 PDT 2010
Hi people,
i solved my problem. One more time... thank you all.
now, i'm having a problem with external libs on my actor.
1) i checked out kepler
2) i created a suite for my actor
i followed the tutorial in both steps
3) i coded my actor
4) pasted the libs in /lib directory (not under /lib/exe)
5) i configured "build path" to add more jars (those i pasted)
6) i ran kepler (with my actor)
7) when i run the workflow i get the error
message java.lang.NoClassDefFoundError
am i adding jars correctly?
thanks
On Sun, Aug 1, 2010 at 4:16 PM, Ivens <ivensportugal at gmail.com> wrote:
> Edward,
>
> the output port of my actor is an instance of TypedIOPort
> and it is multiport.
>
> but i could not find that method...
>
> On Sun, Aug 1, 2010 at 4:07 PM, Edward A. Lee <eal at eecs.berkeley.edu>wrote:
>
>>
>> I think that if your actor does this in the constructor,
>> it should work:
>>
>> output.setWidthEquals(input, false);
>>
>> This assumes that the output is a multiport, and it constrains
>> the width inference algorithm to yield the same width on the
>> output as on the input.
>>
>> Edward
>>
>>
>>
>> On 8/1/10 11:57 AM, Ivens wrote:
>>
>>> Hi...
>>>
>>>
>>> First, thank you all for your help.
>>> Ilkay and Edward, I read part of the documents you sent and that made me
>>> understand more about the conversions... fortunatelly i could solve the
>>> problem i had.
>>>
>>> but another one appeared.
>>> please, take a look at the picture below:
>>>
>>>
>>>
>>> addsubproblem.jpg
>>> i forgot to mention that the big "square" is a CompositeActor
>>>
>>> my actor should receive both tokens 2 and 3 and deliver them to
>>> AddOrSubtract Actor.
>>> AddOrSubtract actor should *add* them and deliver the result to Display
>>> Display should show 5.
>>>
>>> my actor has two ports (an input one, and an output one)
>>> both are multiport.
>>>
>>> its fire() method is similar to this:
>>>
>>> for(i = 0; i < input.getWidth(); i++) {
>>> Token t = input.get(i);
>>> output.send(i, t);
>>> }
>>>
>>> i dont know why, but input.getWidth() returns *2,* because my actor
>>> receives 2 tokens
>>> but when i send the tokens,
>>>
>>> send(0, t) works
>>> send(1, t) does not work,
>>>
>>> because there is not a channel 1 in the ouput of my actor, and then
>>> Display shows only the first token
>>> (when i add a second line (or channel) from my actor to AddOrSubtract,
>>> everthing runs correctly)
>>>
>>> my question is:
>>> as i receive 2 tokens (from 2 different channels) through the same line,
>>> is there a way to correctly deliver those tokens to AddOrSubtract actor,
>>> so that it can add those tokens and deliver them to Display...?
>>>
>>> note that i cannot add more lines between myActor and AddOrSubtract
>>> and the line between those actors must have width = 0
>>>
>>>
>>> Thank you for your help one more time
>>>
>>> Ivens
>>>
>>>
>>> On Sat, Jul 31, 2010 at 8:23 AM, Edward A. Lee <eal at eecs.berkeley.edu
>>> <mailto:eal at eecs.berkeley.edu>> wrote:
>>>
>>>
>>> The type system is explained in Chapter 5 here:
>>>
>>> http://www.eecs.berkeley.edu/Pubs/TechRpts/2008/EECS-2008-29.html
>>>
>>> Edward
>>>
>>>
>>>
>>> On 7/30/10 8:01 AM, Ivens wrote:
>>>
>>> Hi (again),
>>>
>>> I read Kepler User Manual to discover how Port Constraints work
>>> but i
>>> could not understand.
>>> I looked some actors in Kepler and I noticed that Parameters are
>>> passed
>>> to setTypeAtLeast(...) method...
>>> so... i dont know how these Constrainst work...
>>>
>>> can you please explain me?
>>>
>>> thanks
>>>
>>> On Fri, Jul 30, 2010 at 10:32 AM, Ivens <ivensportugal at gmail.com
>>> <mailto:ivensportugal at gmail.com>
>>> <mailto:ivensportugal at gmail.com
>>>
>>> <mailto:ivensportugal at gmail.com>>> wrote:
>>>
>>> When i tried to link an UNKNOWN port to a GENERAL port, i
>>> got error
>>> messages...
>>> why?
>>>
>>>
>>> help.JPG
>>>
>>>
>>>
>>> error.JPG
>>>
>>> On Fri, Jul 30, 2010 at 10:00 AM, Ivens
>>> <ivensportugal at gmail.com <mailto:ivensportugal at gmail.com>
>>> <mailto:ivensportugal at gmail.com
>>>
>>> <mailto:ivensportugal at gmail.com>>> wrote:
>>>
>>> Hi ilkay,
>>>
>>> yes i can add the actor do Display, and it works well.
>>> But Display Actor has a port from General Type and
>>> accepts every
>>> type of Token.
>>>
>>> The problem is... my actor must send the Token he
>>> received...
>>> but i dont know the type of that Token.
>>>
>>> For instance:
>>> suppose i have (SDF Director) a String Constant ---
>>> myActor ---
>>> String to Int --- Display
>>>
>>> my actor must get a String from String Constant (which
>>> is easy
>>> using an input Port from GENERAL type) and send this
>>> String
>>> Token through a STRING type Port, because String to Int
>>> must
>>> receive a StringToken.
>>>
>>> But..
>>> Suppose (SDF Director) Const --- myActor ---
>>> AddOrSubtract ---
>>> Display
>>>
>>> my actor must get a Integer and send it through a
>>> INTEGER type
>>> Port, because AddOrSubtract expects that.
>>>
>>> In other words, the output Port may be generic...
>>> but if i declare it as GENERAL, it won't work
>>>
>>> and i cannot use output.setTypeAtLeast(input), because
>>> my input
>>> port is GENERAL.
>>>
>>> did you understand?
>>>
>>> On Wed, Jul 28, 2010 at 4:42 PM, Ilkay Altintas
>>> <altintas at sdsc.edu <mailto:altintas at sdsc.edu>
>>> <mailto:altintas at sdsc.edu <mailto:altintas at sdsc.edu>>> wrote:
>>>
>>> Hi,
>>>
>>> The general data type is the most inclusive of the
>>> types.
>>> Can you link your actor to display?
>>>
>>> There's some more information on the type system
>>> conversions
>>> in the ptolemy documentation (section 4.5.4:
>>> Conversions)
>>> at:
>>> http://www.eecs.berkeley.edu/Pubs/TechRpts/2008/EECS-2008-28.html
>>>
>>> -ilkay
>>>
>>>
>>> --
>>> Ilkay ALTINTAS
>>> Deputy Coordinator for Research, San Diego
>>> Supercomputer
>>> Center (SDSC)
>>> Lab Director, Scientific Workflow Automation
>>> Technologies
>>> (SWAT @ SDSC)
>>>
>>> University of California, San Diego
>>> 9500 Gilman Drive, MC: 0505 La Jolla, CA 92093-0505
>>> Phone: (858) 210-5877 Fax: (858)
>>> 534-8303
>>> Web: http://users.sdsc.edu/~altintas
>>> Skype: ilkay.altintas
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Jul 28, 2010, at 10:32 AM, Ivens wrote:
>>>
>>> Hi,
>>>
>>> I wrote an Actor in Java that has 2 ports: one
>>> is input
>>> and the other one is output.
>>> Both are from GENERAL type. (deal with GENERAL
>>> tokens)
>>>
>>> The output port sends the same data the input
>>> port receives.
>>> And then, i connect the output port to any other
>>> Kepler
>>> Actor (for instance, String to Int.string)
>>>
>>> When i click 'play' to start the execution, i get
>>> an
>>> error message.
>>> i think that is because my output port is from
>>> GENERAL
>>> type... and it is connected to a port from
>>> STRING type
>>>
>>> So, i changed that type to UNKNOWN... but the
>>> error
>>> persists...
>>> Can you help me?
>>>
>>> Thanks
>>> _______________________________________________
>>> Kepler-dev mailing list
>>> Kepler-dev at kepler-project.org <mailto:
>>> Kepler-dev at kepler-project.org>
>>> <mailto:Kepler-dev at kepler-project.org
>>> <mailto:Kepler-dev at kepler-project.org>>
>>>
>>> http://mercury.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-dev
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Kepler-dev mailing list
>>> Kepler-dev at kepler-project.org <mailto:
>>> Kepler-dev at kepler-project.org>
>>>
>>> http://mercury.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-dev
>>>
>>>
>>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mercury.nceas.ucsb.edu/kepler/pipermail/kepler-dev/attachments/20100803/404acce5/attachment-0001.html>
More information about the Kepler-dev
mailing list