[kepler-dev] Re: SequenceToArray in PN
Christopher Brooks
cxh at eecs.berkeley.edu
Tue Dec 14 13:35:56 PST 2004
Fixed!
I also added a test to pn/test/auto.
_Christopher
--------
Ahh! You're right--good catch!
So if I made the following change to SequenceToArray, then it works:
$ cvs diff ptolemy/domains/sdf/lib/SequenceToArray.java
Index: ptolemy/domains/sdf/lib/SequenceToArray.java
===================================================================
RCS file:
/home/cvs/cvsanon/ptII/ptolemy/domains/sdf/lib/SequenceToArray.java,v
retrieving revision 1.47
diff -r1.47 SequenceToArray.java
132c132,134
< Token[] valueArray = input.get(0, length);
---
>
> Token[] valueArray = new Token[length];
> System.arraycopy(input.get(0, length), 0, valueArray,
0,length);
If this looks OK, will someone from Ptolemy please commit such a change
to CVS, so that it will make it into the next release?
Thanks!
Xiaowen
On 13.12.2004, at 22:44, Neil E. Turner wrote:
>
> I found this in the JavaDocs for IOPort.get(int channelIndex, int
> vectorLength)
>
> "Get an array of tokens from the specified channel. The parameter
> channelIndex specifies the channel and the parameter vectorLength
> specifies
> the number of valid tokens to get in the returned array. The length of
> the
> returned array can be greater than the specified vector length, in
> which
> case, only the first vectorLength elements are guaranteed to be valid."
>
> If you "look inside" the SequenceToArray actor you will see the Java
> code...
> go to the fire() method. You will see in the code
>
> Token[] valueArray = input.get(0, length);
>
> I put a print statement to see the length of 'valueArray'. It indeed
> was
> longer than the PortParameter 'arrayLength'.
>
> Neil
>
>
> ----- Original Message -----
> From: "xiaowen" <xin2 at llnl.gov>
> To: <ptolemy-hackers at eecs.berkeley.edu>
> Cc: "xiaowen Xin" <xin2 at llnl.gov>; "Kepler-Dev"
> <kepler-dev at ecoinformatics.org>
> Sent: Monday, December 13, 2004 8:13 PM
> Subject: SequenceToArray in PN
>
>
>> Hi Everyone,
>>
>>
>> Is the SequenceToArray actor meant to be used in the PN domain? I've
>> attached a workflow that demonstrates behavior that I don't
>> understand.
>>
>> A SequenceToArray actor has two ports: input and arrayLength. It
>> should package up arrayLength number of input tokens into an array and
>> send that out along its output port.
>>
>> In the attached workflow, I send 7, then 2 to the arrayLength port.
>> However, the output consists of two array tokens both with length 7.
>>
>> Can someone please explain to me why the second output isn't an array
>> of length 2?
>>
>> I'm using Ptolemy 4.0.1.
>>
>>
>> Thanks in advance!
>> Xiaowen
>>
>>
>
>
> -----------------------------------------------------------------------
> -----
> Posted to the ptolemy-hackers mailing list. Please send administrative
> mail for this list to:
> ptolemy-hackers-request at ptolemy.eecs.berkeley.edu
---------------------------------------------------------------------------
-
Posted to the ptolemy-hackers mailing list. Please send administrative
mail for this list to: ptolemy-hackers-request at ptolemy.eecs.berkeley.edu
--------
More information about the Kepler-dev
mailing list