I think I have found a problem with the Reader actor.

Attached are 3 simple files to illustrate the problem
    no_up_down_sample.xml
            contains a Reader straight into sink actors.
    up_down_sample.xml
            contains a Reader passed through a up-sample and down-sample
actor into sink actors.
    sample2.txt
            contains  data used by both Readers

Note the behavior between samples 2 and 3 on the output display.
Why the entry of two values on sample 1 when there is no up/down sample?

The up/down sample fixes the problem so I have a work around.

Thank You

Greg Rohling
<?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="Bit 2" class="ptolemy.actor.TypedCompositeActor">
    <property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[603, 
453]">
    </property>
    <property name="_vergilLocation" class="ptolemy.actor.gui.LocationAttribute" 
value="[133, 140]">
    </property>
    <property name="DT" class="ptolemy.domains.dt.kernel.DTDirector">
        <property name="iterations" class="ptolemy.data.expr.Parameter" value="15">
        </property>
        <property name="vectorizationFactor" class="ptolemy.data.expr.Parameter" 
value="1">
        </property>
        <property name="period" class="ptolemy.data.expr.Parameter" value="1.0">
        </property>
        <property name="_location" class="ptolemy.moml.Location" value="80.0, 43.0">
        </property>
    </property>
    <entity name="Output" class="ptolemy.actor.lib.FileWriter">
        <property name="filename" class="ptolemy.data.expr.Parameter" 
value="&quot;&quot;">
        </property>
        <doc>Write to a file</doc>
        <property name="_location" class="ptolemy.moml.Location" value="484.0, 76.0">
        </property>
        <port name="input" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
            <property name="multiport"/>
        </port>
    </entity>
    <entity name="Data File" class="ptolemy.actor.lib.Reader">
        <property name="sourceURL" class="ptolemy.data.expr.Parameter" 
value="&quot;file:./source2.txt&quot;">
        </property>
        <property name="refresh" class="ptolemy.data.expr.Parameter" value="false">
        </property>
        <doc>Read from a file</doc>
        <property name="_location" class="ptolemy.moml.Location" value="78.0, 157.0">
        </property>
        <port name="output" class="ptolemy.actor.TypedIOPort">
            <property name="output"/>
            <property name="multiport"/>
        </port>
        <port name="trigger" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
            <property name="multiport"/>
        </port>
    </entity>
    <entity name="Display" class="ptolemy.actor.lib.gui.Display">
        <property name="rowsDisplayed" class="ptolemy.data.expr.Parameter" value="10">
        </property>
        <property name="columnsDisplayed" class="ptolemy.data.expr.Parameter" 
value="40">
        </property>
        <property name="title" class="ptolemy.kernel.util.StringAttribute">
        </property>
        <property name="_location" class="ptolemy.moml.Location" value="483.0, 157.0">
        </property>
        <port name="input" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
            <property name="multiport"/>
        </port>
    </entity>
    <entity name="TimedPlotter" class="ptolemy.actor.lib.gui.TimedPlotter">
        <property name="fillOnWrapup" class="ptolemy.data.expr.Parameter" value="true">
        </property>
        <property name="legend" class="ptolemy.kernel.util.StringAttribute">
        </property>
        <property name="startingDataset" class="ptolemy.data.expr.Parameter" value="0">
        </property>
        <property name="_location" class="ptolemy.moml.Location" value="490.0, 231.0">
        </property>
        <port name="input" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
            <property name="multiport"/>
        </port>
        <configure><?plotml
<!DOCTYPE plot PUBLIC "-//UC Berkeley//DTD PlotML 1//EN"
"http://ptolemy.eecs.berkeley.edu/xml/dtd/PlotML_1.dtd";>
<plot>
<title></title>
<xRange min="0.0" max="13.0"/>
<yRange min="0.0" max="1.2"/>
</plot>?>
        </configure>
    </entity>
    <relation name="relation" class="ptolemy.actor.TypedIORelation">
        <vertex name="vertex1" class="ptolemy.moml.Vertex" value="345.0, 163.0">
        </vertex>
    </relation>
    <link port="Output.input" relation="relation"/>
    <link port="Data File.output" relation="relation"/>
    <link port="Display.input" relation="relation"/>
    <link port="TimedPlotter.input" relation="relation"/>
</entity>
<?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="Bit 2" class="ptolemy.actor.TypedCompositeActor">
    <property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[603, 
453]">
    </property>
    <property name="_vergilLocation" class="ptolemy.actor.gui.LocationAttribute" 
value="[135, 101]">
    </property>
    <property name="DT" class="ptolemy.domains.dt.kernel.DTDirector">
        <property name="iterations" class="ptolemy.data.expr.Parameter" value="15">
        </property>
        <property name="vectorizationFactor" class="ptolemy.data.expr.Parameter" 
value="1">
        </property>
        <property name="period" class="ptolemy.data.expr.Parameter" value="1.0">
        </property>
        <property name="_location" class="ptolemy.moml.Location" value="80.0, 43.0">
        </property>
    </property>
    <entity name="Output" class="ptolemy.actor.lib.FileWriter">
        <property name="filename" class="ptolemy.data.expr.Parameter" 
value="&quot;&quot;">
        </property>
        <doc>Write to a file</doc>
        <property name="_location" class="ptolemy.moml.Location" value="484.0, 76.0">
        </property>
        <port name="input" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
            <property name="multiport"/>
        </port>
    </entity>
    <entity name="Data File" class="ptolemy.actor.lib.Reader">
        <property name="sourceURL" class="ptolemy.data.expr.Parameter" 
value="&quot;file:./source2.txt&quot;">
        </property>
        <property name="refresh" class="ptolemy.data.expr.Parameter" value="false">
        </property>
        <doc>Read from a file</doc>
        <property name="_location" class="ptolemy.moml.Location" value="78.0, 157.0">
        </property>
        <port name="output" class="ptolemy.actor.TypedIOPort">
            <property name="output"/>
            <property name="multiport"/>
        </port>
        <port name="trigger" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
            <property name="multiport"/>
        </port>
    </entity>
    <entity name="Display" class="ptolemy.actor.lib.gui.Display">
        <property name="rowsDisplayed" class="ptolemy.data.expr.Parameter" value="10">
        </property>
        <property name="columnsDisplayed" class="ptolemy.data.expr.Parameter" 
value="40">
        </property>
        <property name="title" class="ptolemy.kernel.util.StringAttribute">
        </property>
        <property name="_location" class="ptolemy.moml.Location" value="483.0, 157.0">
        </property>
        <port name="input" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
            <property name="multiport"/>
        </port>
    </entity>
    <entity name="TimedPlotter" class="ptolemy.actor.lib.gui.TimedPlotter">
        <property name="fillOnWrapup" class="ptolemy.data.expr.Parameter" value="true">
        </property>
        <property name="legend" class="ptolemy.kernel.util.StringAttribute">
        </property>
        <property name="startingDataset" class="ptolemy.data.expr.Parameter" value="0">
        </property>
        <property name="_location" class="ptolemy.moml.Location" value="490.0, 231.0">
        </property>
        <port name="input" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
            <property name="multiport"/>
        </port>
        <configure><?plotml
<!DOCTYPE plot PUBLIC "-//UC Berkeley//DTD PlotML 1//EN"
"http://ptolemy.eecs.berkeley.edu/xml/dtd/PlotML_1.dtd";>
<plot>
<title></title>
<xRange min="0.0" max="13.0"/>
<yRange min="0.0" max="1.2"/>
</plot>?>
        </configure>
    </entity>
    <entity name="UpSample" class="ptolemy.domains.sdf.lib.UpSample">
        <property name="factor" class="ptolemy.data.expr.Parameter" value="2">
        </property>
        <property name="phase" class="ptolemy.data.expr.Parameter" value="factor-1">
        </property>
        <property name="_location" class="ptolemy.moml.Location" value="179.0, 156.0">
        </property>
        <port name="input" class="ptolemy.domains.sdf.kernel.SDFIOPort">
            <property name="input"/>
            <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" 
value="1">
            </property>
            <property name="tokenInitProduction" class="ptolemy.data.expr.Parameter" 
value="0">
            </property>
            <property name="tokenProductionRate" class="ptolemy.data.expr.Parameter" 
value="0">
            </property>
        </port>
        <port name="output" class="ptolemy.domains.sdf.kernel.SDFIOPort">
            <property name="output"/>
            <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" 
value="0">
            </property>
            <property name="tokenInitProduction" class="ptolemy.data.expr.Parameter" 
value="0">
            </property>
            <property name="tokenProductionRate" class="ptolemy.data.expr.Parameter" 
value="2">
            </property>
        </port>
    </entity>
    <entity name="DownSample" class="ptolemy.domains.sdf.lib.DownSample">
        <property name="factor" class="ptolemy.data.expr.Parameter" value="2">
        </property>
        <property name="phase" class="ptolemy.data.expr.Parameter" value="0">
        </property>
        <property name="_location" class="ptolemy.moml.Location" value="283.0, 156.0">
        </property>
        <port name="input" class="ptolemy.domains.sdf.kernel.SDFIOPort">
            <property name="input"/>
            <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" 
value="2">
            </property>
            <property name="tokenInitProduction" class="ptolemy.data.expr.Parameter" 
value="0">
            </property>
            <property name="tokenProductionRate" class="ptolemy.data.expr.Parameter" 
value="0">
            </property>
        </port>
        <port name="output" class="ptolemy.domains.sdf.kernel.SDFIOPort">
            <property name="output"/>
            <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" 
value="0">
            </property>
            <property name="tokenInitProduction" class="ptolemy.data.expr.Parameter" 
value="0">
            </property>
            <property name="tokenProductionRate" class="ptolemy.data.expr.Parameter" 
value="1">
            </property>
        </port>
    </entity>
    <relation name="relation" class="ptolemy.actor.TypedIORelation">
        <vertex name="vertex1" class="ptolemy.moml.Vertex" value="345.0, 163.0">
        </vertex>
    </relation>
    <relation name="relation5" class="ptolemy.actor.TypedIORelation">
    </relation>
    <relation name="relation6" class="ptolemy.actor.TypedIORelation">
    </relation>
    <link port="Output.input" relation="relation"/>
    <link port="Data File.output" relation="relation5"/>
    <link port="Display.input" relation="relation"/>
    <link port="TimedPlotter.input" relation="relation"/>
    <link port="UpSample.input" relation="relation5"/>
    <link port="UpSample.output" relation="relation6"/>
    <link port="DownSample.input" relation="relation6"/>
    <link port="DownSample.output" relation="relation"/>
</entity>
0.0
0.0
0.3
0.5
0.4
0.0
0.0
1.0
1.0
1.2
1.0
1.0
1.0
1.0
1.0
1.0

Reply via email to