ptolemy.actor.lib.gui
Class ArrayPlotterXY
java.lang.Object
ptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.actor.AtomicActor
ptolemy.actor.TypedAtomicActor
ptolemy.actor.lib.gui.PlotterBase
ptolemy.actor.lib.gui.Plotter
ptolemy.actor.lib.gui.ArrayPlotterXY
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Placeable, Initializable, SequenceActor, TypedActor, Changeable, Configurable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
public class ArrayPlotterXY
- extends Plotter
- implements SequenceActor
A plotter that plots a sequence of pairs of arrays of doubles
as an XY plot. This plotter contains an instance of the Plot
class from the Ptolemy plot package as a public member. Data at
the inputs, which can have any number of channels, are plotted
on this instance. Each pair of input channels is plotted as a separate data set.
Each input token is an array of doubles.
The iterationsPerUpdate parameter can be used to fine tune
the display. It can be quite expensive to generate the display, and
by default, this actor generates it on every firing. If
iterationsPerUpdate is set to some integer greater than
one, then it specifies how many iterations should be executed
between updates. Thus, if iterationsPerUpdate = 2, then every
second time this actor fires, it will update the display. That is,
it will update its display on the first firing, the third, the
fifth, etc. It will, however, consume its inputs on every firing.
The plot is always updated in the wrapup() method.
Note that this can be used to generate live plots, like XYScope,
but it has fewer drawing artifacts than XYScope since it does
not use XOR drawing mode.
- Since:
- Ptolemy II 6.1
- Version:
- $Id: ArrayPlotterXY.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Edward A. Lee
- See Also:
XYScope
,
Serialized Form
- Accepted Rating:
- Proposed Rating:
Fields inherited from class ptolemy.actor.lib.gui.PlotterBase |
_base, _container, _frame, _plotSize, _source, _tableau, _text, _windowProperties, automaticRescale, fillOnWrapup, legend, plot |
Fields inherited from class ptolemy.kernel.util.NamedObj |
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS |
Method Summary |
void |
initialize()
If the plot has not already been created, create it. |
boolean |
postfire()
Read at most one token from each input channel on x and
y inputs, and if there is a token on both, plot the data
as an XY plot. |
void |
wrapup()
Update the plot with the most recently read data. |
Methods inherited from class ptolemy.actor.lib.gui.PlotterBase |
_exportMoMLContents, _implementDeferredConfigurations, _newPlot, _propagateValue, clone, configure, getConfigureSource, getConfigureText, place, preinitialize, setContainer, setDisplayName, setName |
Methods inherited from class ptolemy.actor.AtomicActor |
_actorFiring, _actorFiring, addActorFiringListener, addInitializable, connectionsChanged, createReceivers, declareDelayDependency, fire, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, prefire, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, stop, stopFire, terminate |
Methods inherited from class ptolemy.kernel.ComponentEntity |
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence |
Methods inherited from class ptolemy.kernel.Entity |
_description, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName |
Methods inherited from class ptolemy.kernel.util.NamedObj |
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _recordDecoratedAttributes, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, attributeList, attributeList, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getFullName, getModelErrorHandler, getName, getName, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, propagateValue, propagateValues, removeChangeListener, removeDebugListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, validateSettables, workspace |
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
iterationsPerUpdate
public Parameter iterationsPerUpdate
- The number of iterations between updates of the display
on the screen.
This parameter has type IntToken, with default value 1.
Its value must be non-negative.
x
public TypedIOPort x
- Input port for the horizontal axis, which receives an array of doubles.
y
public TypedIOPort y
- Input port for the vertical axis, which receives an array of doubles.
_iteration
private int _iteration
_offset
private int _offset
_xtokens
private ArrayToken[] _xtokens
_ytokens
private ArrayToken[] _ytokens
ArrayPlotterXY
public ArrayPlotterXY(CompositeEntity container,
java.lang.String name)
throws IllegalActionException,
NameDuplicationException
- Construct an actor with the given container and name.
- Parameters:
container
- The container.name
- The name of this actor.
- Throws:
IllegalActionException
- If the actor cannot be contained
by the proposed container.
NameDuplicationException
- If the container already has an
actor with this name.
initialize
public void initialize()
throws IllegalActionException
- If the plot has not already been created, create it.
If configurations specified by a call to configure() have not yet
been processed, process them. This overrides the base class to
also start counting iterations, so that the
iterationsPerUpdate parameter works.
- Specified by:
initialize
in interface Initializable
- Overrides:
initialize
in class Plotter
- Throws:
IllegalActionException
- If the parent class throws it.
postfire
public boolean postfire()
throws IllegalActionException
- Read at most one token from each input channel on x and
y inputs, and if there is a token on both, plot the data
as an XY plot. The input data are plotted in postfire() to
ensure that the data have settled.
- Specified by:
postfire
in interface Executable
- Overrides:
postfire
in class AtomicActor
- Returns:
- True if it is OK to continue.
- Throws:
IllegalActionException
- If there is no director,
or if the base class throws it.
wrapup
public void wrapup()
throws IllegalActionException
- Update the plot with the most recently read data.
If the fillOnWrapup parameter is true, rescale the
plot so that all the data is visible.
- Specified by:
wrapup
in interface Initializable
- Overrides:
wrapup
in class PlotterBase
- Throws:
IllegalActionException
- If the superclass throws it.