Package ptolemy.domains.wireless.lib
Class LinkVisualizer
- java.lang.Object
-
- ptolemy.kernel.util.NamedObj
-
- ptolemy.kernel.InstantiableNamedObj
-
- ptolemy.kernel.Entity<T>
-
- ptolemy.kernel.ComponentEntity<T>
-
- ptolemy.actor.AtomicActor<TypedIOPort>
-
- ptolemy.actor.TypedAtomicActor
-
- ptolemy.domains.wireless.lib.LinkVisualizer
-
- All Implemented Interfaces:
java.lang.Cloneable
,Actor
,Executable
,FiringsRecordable
,Initializable
,TypedActor
,ChannelListener
,Changeable
,Debuggable
,DebugListener
,Derivable
,Instantiable
,ModelErrorHandler
,MoMLExportable
,Moveable
,Nameable
public class LinkVisualizer extends TypedAtomicActor implements ChannelListener
This actor implements the ChannelListener interface. It creates a line between two communicating nodes that are within range of one another. It registers itself with the wireless channel specified by the channelName parameter. This is notified whenever a transmission occurs on the channel on which it is listening. This is an actor because it registers itself with the channel in the initialize() method.- Since:
- Ptolemy II 5.2
- Version:
- $Id$
- Author:
- Heather Taylor, Elaine Cheong
- Pt.AcceptedRating:
- Yellow (celaine)
- Pt.ProposedRating:
- Yellow (celaine)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
LinkVisualizer._LinkVisualizerThread
Private class that visualizes a link in a thread.-
Nested classes/interfaces inherited from class ptolemy.kernel.Entity
Entity.ContainedObjectsIterator
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.Boolean
_isOff
Status of line that visualizes the radio link.StringParameter
channelName
The name of the channel.Parameter
sleepTime
The amount of time to sleep in milliseconds between drawing the line and then removing the line.-
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 LinkVisualizer(CompositeEntity container, java.lang.String name)
Construct an actor with the specified container and name.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
_drawLine(WirelessIOPort sender, WirelessIOPort destination, java.lang.String lineName)
Draw a line from the sender container to the destination container with name lineName.protected void
_removeLine(java.lang.String lineName)
Remove the line previously created with name lineName.void
channelNotify(RecordToken properties, Token token, WirelessIOPort sender, WirelessIOPort destination)
Visualize a line between the sender and destination containers by starting a thread that will create and remove the line after some amount of time.void
initialize()
Register ChannelListeners with the WirelessChannel specified in the channelName parameter.void
setContainer(CompositeEntity container)
Override the base class to remove this channel listener.-
Methods inherited from class ptolemy.actor.TypedAtomicActor
_containedTypeConstraints, _customTypeConstraints, _defaultTypeConstraints, _fireAt, _fireAt, attributeTypeChanged, clone, clone, isBackwardTypeInferenceEnabled, newPort, typeConstraintList, typeConstraints
-
Methods inherited from class ptolemy.actor.AtomicActor
_actorFiring, _actorFiring, _declareDelayDependency, addActorFiringListener, addInitializable, connectionsChanged, createReceivers, declareDelayDependency, fire, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, postfire, prefire, preinitialize, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, 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, attributeChanged, 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
fire, isFireFunctional, isStrict, iterate, postfire, prefire, 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
-
channelName
public StringParameter channelName
The name of the channel. The default name is "AtomicWirelessChannel".
-
sleepTime
public Parameter sleepTime
The amount of time to sleep in milliseconds between drawing the line and then removing the line. The initial default value is an IntToken with a value of 500, meaning sleep for 500 ms.
-
_isOff
protected java.lang.Boolean _isOff
Status of line that visualizes the radio link. Initialized to true.
-
-
Constructor Detail
-
LinkVisualizer
public LinkVisualizer(CompositeEntity container, java.lang.String name) throws NameDuplicationException, IllegalActionException
Construct an actor with the specified container and name.- Parameters:
container
- The container.name
- The name.- Throws:
IllegalActionException
- If the entity cannot be contained by the proposed container.NameDuplicationException
- If the container already has an actor with this name.
-
-
Method Detail
-
initialize
public void initialize() throws IllegalActionException
Register ChannelListeners with the WirelessChannel specified in the channelName parameter.- Specified by:
initialize
in interfaceInitializable
- Overrides:
initialize
in classAtomicActor<TypedIOPort>
- Throws:
IllegalActionException
- If the super class throws it.
-
channelNotify
public void channelNotify(RecordToken properties, Token token, WirelessIOPort sender, WirelessIOPort destination)
Visualize a line between the sender and destination containers by starting a thread that will create and remove the line after some amount of time.- Specified by:
channelNotify
in interfaceChannelListener
- Parameters:
properties
- The properties of this transmission.token
- The token of this transmission, which can be processed here.sender
- The sending port.destination
- The receiving port.
-
setContainer
public void setContainer(CompositeEntity container) throws IllegalActionException, NameDuplicationException
Override the base class to remove this channel listener.- Overrides:
setContainer
in classAtomicActor<TypedIOPort>
- Parameters:
container
- The proposed container.- Throws:
IllegalActionException
- If the action would result in a recursive containment structure, or if this entity and container are not in the same workspace.NameDuplicationException
- If the container already has an entity with the name of this entity.- See Also:
ComponentEntity.getContainer()
-
_drawLine
protected void _drawLine(WirelessIOPort sender, WirelessIOPort destination, java.lang.String lineName)
Draw a line from the sender container to the destination container with name lineName.- Parameters:
sender
- The sender port.destination
- The destination port.lineName
- The name of the line attribute to create.
-
_removeLine
protected void _removeLine(java.lang.String lineName)
Remove the line previously created with name lineName.- Parameters:
lineName
- Name of line previously created.
-
-