ptolemy.domains.ptinyos.lib
Class SurgeVisualizer
java.lang.Object
ptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.actor.AtomicActor
ptolemy.actor.TypedAtomicActor
ptolemy.domains.wireless.lib.LinkVisualizer
ptolemy.domains.ptinyos.lib.SurgeVisualizer
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, ChannelListener, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
public class SurgeVisualizer
- extends LinkVisualizer
This actor is used with the Surge TinyOS application to visualize
links between nodes in a multihop network. In Surge, there are two
types of packets transmitted. The first type is a beacon message sent
from the base station. The second type is a Surge message, which originates
from a sensing node and contains sensor data. The beginning of the packet
format is as follows:
bits 1-16: address field
bits 17-24: type field
The address field is set to 0xFFFF if it is a broadcast message. Otherwise,
it contains the destination node id.
The type field is set to 0xFA if it is a beacon message (implemented in
TinyOS as MultiHopMsg). Beacon messages are sent with address field set
to 0xFFFF. The type field is set to 0x11 if it is a Surge message.
FIXME: Surge doesn't correctly set the type field for Surge messages.
The value that we see is 0x00, so we filter for this instead.
This actor extends LinkVisualizer and by inheritance, implements the
ChannelListener interface. It inspects the token transmitted,
and based on the data, may create 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.
- Since:
- Ptolemy II 4.0
- Version:
- $Id: SurgeVisualizer.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Heather Taylor, Elaine Cheong
- See Also:
- Serialized Form
- Accepted Rating:
- Proposed Rating:
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 |
channelNotify(RecordToken properties,
Token token,
WirelessIOPort sender,
WirelessIOPort destination)
Parse the token, and visualize a line between the sender and destination
container only if the type field in the packet stored in
token corresponds to a Surge packet AND
the nodeID of the destination node
(i.e., the node that contains the destination WirelessIOPort)
is the same as the address field in the Surge packet. |
Methods inherited from class ptolemy.actor.AtomicActor |
_actorFiring, _actorFiring, addActorFiringListener, addInitializable, clone, 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 |
_description, _exportMoMLContents, _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, _propagateValue, _recordDecoratedAttributes, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, attributeChanged, 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, 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 |
SurgeVisualizer
public SurgeVisualizer(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.
channelNotify
public void channelNotify(RecordToken properties,
Token token,
WirelessIOPort sender,
WirelessIOPort destination)
- Parse the token, and visualize a line between the sender and destination
container only if the type field in the packet stored in
token corresponds to a Surge packet AND
the nodeID of the destination node
(i.e., the node that contains the destination WirelessIOPort)
is the same as the address field in the Surge packet.
The line is visualized by starting a thread that will create and
remove the line after some amount of time.
- Specified by:
channelNotify
in interface ChannelListener
- Overrides:
channelNotify
in class LinkVisualizer
- 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.