Package ptolemy.actor.lib
Class Ramp
- java.lang.Object
-
- All Implemented Interfaces:
java.lang.Cloneable
,Actor
,Executable
,FiringsRecordable
,Initializable
,SequenceActor
,TypedActor
,Changeable
,Debuggable
,DebugListener
,Derivable
,Instantiable
,ModelErrorHandler
,MoMLExportable
,Moveable
,Nameable
- Direct Known Subclasses:
PreinitializeMustBeInvoked
,RampNecessaryFiles
,TestRamp
public class Ramp extends SequenceSource
Produce an output token on each firing with a value that is incremented by the specified step each iteration. The first output is given by the init parameter, and the increment may be given either by the step parameter or by the associated step port. Note that the increment will show up in the output only on the next iteration. If you need it to show up on the current iteration, use theAccumulator
actor. The type of the output is determined by the constraint that it must be greater than or equal to the types of the parameter (and/or the step port, if it is connected). Thus, this actor is polymorphic in the sense that its output data type can be that of any token type that supports addition.- Since:
- Ptolemy II 0.2
- Version:
- $Id$
- Author:
- Yuhong Xiong, Edward A. Lee
- See Also:
Accumulator
- Pt.AcceptedRating:
- Green (bilung)
- Pt.ProposedRating:
- Green (eal)
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class ptolemy.kernel.Entity
Entity.ContainedObjectsIterator
-
-
Field Summary
Fields Modifier and Type Field Description PortParameter
init
The value produced by the ramp on its first iteration.PortParameter
step
The amount by which the ramp output is incremented on each iteration.-
Fields inherited from class ptolemy.actor.lib.LimitedFiringSource
_firingCountLimit, _iterationCount, firingCountLimit
-
Fields inherited from class ptolemy.actor.lib.Source
_triggered, output, trigger
-
Fields inherited from class ptolemy.actor.TypedAtomicActor
_typesValid
-
Fields inherited from class ptolemy.actor.AtomicActor
_actorFiringListeners, _initializables, _notifyingActorFiring, _stopRequested
-
Fields inherited from class ptolemy.kernel.util.NamedObj
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _deferChangeRequests, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
-
Fields inherited from interface ptolemy.actor.Executable
COMPLETED, NOT_READY, STOP_ITERATING
-
-
Constructor Summary
Constructors Constructor Description Ramp(CompositeEntity container, java.lang.String name)
Construct an actor with the given container and name.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
attributeChanged(Attribute attribute)
If the argument is the init parameter, then reset the state to the specified value.java.lang.Object
clone(Workspace workspace)
Clone the actor into the specified workspace.void
fire()
Send the current value of the state of this actor to the output.void
initialize()
Set the state to equal the value of the init parameter.int
iterate(int count)
Invoke a specified number of iterations of this actor.boolean
postfire()
Update the state of the actor by adding the value of the step parameter to the state.-
Methods inherited from class ptolemy.actor.lib.Source
_customTypeConstraints, prefire
-
Methods inherited from class ptolemy.actor.TypedAtomicActor
_containedTypeConstraints, _defaultTypeConstraints, _fireAt, _fireAt, attributeTypeChanged, clone, isBackwardTypeInferenceEnabled, newPort, typeConstraintList, typeConstraints
-
Methods inherited from class ptolemy.actor.AtomicActor
_actorFiring, _actorFiring, _declareDelayDependency, addActorFiringListener, addInitializable, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, isStrict, newReceiver, outputPortList, preinitialize, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, setContainer, stop, stopFire, terminate, wrapup
-
Methods inherited from class ptolemy.kernel.ComponentEntity
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName
-
Methods inherited from class ptolemy.kernel.Entity
_addPort, _description, _exportMoMLContents, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName
-
Methods inherited from class ptolemy.kernel.InstantiableNamedObj
_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition
-
Methods inherited from class ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _containedDecorators, _copyChangeRequestList, _debug, _debug, _debug, _debug, _debug, _executeChangeRequests, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _notifyHierarchyListenersAfterChange, _notifyHierarchyListenersBeforeChange, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, addHierarchyListener, attributeDeleted, attributeList, attributeList, decorators, 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, notifyOfNameChange, propagateValue, propagateValues, removeAttribute, removeChangeListener, removeDebugListener, removeHierarchyListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, validateSettables, workspace
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface ptolemy.actor.Actor
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList
-
Methods inherited from interface ptolemy.kernel.util.Derivable
getDerivedLevel, getDerivedList, propagateValue
-
Methods inherited from interface ptolemy.actor.Executable
isFireFunctional, isStrict, stop, stopFire, terminate
-
Methods inherited from interface ptolemy.actor.Initializable
addInitializable, preinitialize, removeInitializable, wrapup
-
Methods inherited from interface ptolemy.kernel.util.Nameable
description, getContainer, getDisplayName, getFullName, getName, getName, setName
-
-
-
-
Field Detail
-
init
public PortParameter init
The value produced by the ramp on its first iteration. If this value is changed during execution, then the new value will be the output on the next iteration. The default value of this parameter is the integer 0.
-
step
public PortParameter step
The amount by which the ramp output is incremented on each iteration. The default value of this parameter is the integer 1.
-
-
Constructor Detail
-
Ramp
public Ramp(CompositeEntity container, java.lang.String name) throws NameDuplicationException, IllegalActionException
Construct an actor with the given container and name. In addition to invoking the base class constructors, construct the init and step parameter and the step port. Initialize init to IntToken with value 0, and step to IntToken with value 1.- 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.
-
-
Method Detail
-
attributeChanged
public void attributeChanged(Attribute attribute) throws IllegalActionException
If the argument is the init parameter, then reset the state to the specified value.- Overrides:
attributeChanged
in classLimitedFiringSource
- Parameters:
attribute
- The attribute that changed.- Throws:
IllegalActionException
- If init cannot be evaluated or cannot be converted to the output type, or if the superclass throws it.
-
clone
public java.lang.Object clone(Workspace workspace) throws java.lang.CloneNotSupportedException
Clone the actor into the specified workspace. This calls the base class and then sets theinit
andstep
public members to the parameters of the new actor.- Overrides:
clone
in classTypedAtomicActor
- Parameters:
workspace
- The workspace for the new object.- Returns:
- A new actor.
- Throws:
java.lang.CloneNotSupportedException
- If a derived class contains an attribute that cannot be cloned.- See Also:
NamedObj.exportMoML(Writer, int, String)
,NamedObj.setDeferringChangeRequests(boolean)
-
fire
public void fire() throws IllegalActionException
Send the current value of the state of this actor to the output.- Specified by:
fire
in interfaceExecutable
- Overrides:
fire
in classSource
- Throws:
IllegalActionException
- If calling send() or super.fire() throws it.
-
initialize
public void initialize() throws IllegalActionException
Set the state to equal the value of the init parameter. The state is incremented by the value of the step parameter on each iteration (in the postfire() method).- Specified by:
initialize
in interfaceInitializable
- Overrides:
initialize
in classLimitedFiringSource
- Throws:
IllegalActionException
- If the parent class throws it.
-
iterate
public int iterate(int count) throws IllegalActionException
Invoke a specified number of iterations of this actor. Each iteration updates the state of the actor by adding the value of the step parameter to the state and sending the value of the state to the output. The iteration count is also incremented by the value of count, and if the result is greater than or equal to firingCountLimit then return STOP_ITERATING.This method should be called instead of the usual prefire(), fire(), postfire() methods when this actor is used in a domain that supports vectorized actors. This leads to more efficient execution.
- Specified by:
iterate
in interfaceExecutable
- Overrides:
iterate
in classAtomicActor<TypedIOPort>
- Parameters:
count
- The number of iterations to perform.- Returns:
- COMPLETED if the actor was successfully iterated the specified number of times. Otherwise, if the maximum iteration count has been reached, return STOP_ITERATING.
- Throws:
IllegalActionException
- If iterating cannot be performed.
-
postfire
public boolean postfire() throws IllegalActionException
Update the state of the actor by adding the value of the step parameter to the state. Also, increment the iteration count, and if the result is equal to firingCountLimit, then return false.- Specified by:
postfire
in interfaceExecutable
- Overrides:
postfire
in classLimitedFiringSource
- Returns:
- False if the number of iterations matches the number requested.
- Throws:
IllegalActionException
- If the firingCountLimit parameter has an invalid expression.
-
-