|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.kernel.CompositeEntity
ptolemy.actor.CompositeActor
ptolemy.actor.TypedCompositeActor
ptolemy.actor.lib.hoc.LifeCycleManager
ptolemy.domains.wireless.lib.TransmitPropertyTransformer
public class TransmitPropertyTransformer
This actor reads input tokens and sends them unmodified to the output; its role is not to operate on input tokens, but rather to modify the properties of a transmission.
This actor implements the PropertyTransformer interface, which provides a callback that can be use to modify the transmit properties of a transmission. It register itself and its connected wireless output port with the channel that the wireless output port uses. The channel will call its transformProperties() method for each transmission from the registed output port.
When transformProperties() is called, this actor sets the value of three variables and then performs a complete execution of the contained model. The three variables are senderLocation (an array of doubles), receiverLocation (also an array of doubles), and properties (a record token containing the transmit properties to be modified). After execution of the contained model, the (possibly modified) value of the record properties is taken to be the modified properties. Thus, a contained model would normally read the variable properties, change it, and use a SetVariable actor to set the new value of properties.
This actor expects its output port to be connected directly to the inside of a WirelessIOPort belonging to this actor's container. It looks for this port in the preinitialize() method, and registers with the channel specified by that port. If there is no such port, or no such channel, then preinitialize() throws an exception. Note that since this connectivity is checked only during preinitialize(), this actor does not support dynamically reconnecting its output port during execution of the model.
Red (pjb2e) |
Yellow (eal) |
Nested Class Summary |
---|
Nested classes/interfaces inherited from class ptolemy.kernel.CompositeEntity |
---|
CompositeEntity.ContainedObjectsIterator |
Field Summary | |
---|---|
private WirelessChannel |
_inputWirelessChannel
The wireless channel for the connected input port found in preinitialize(). |
private WirelessChannel |
_outputWirelessChannel
The wireless channel for the connected output port found in preinitialize(). |
private WirelessIOPort |
_wirelessInputPort
The connected wireless input port found in preinitialize(). |
private WirelessIOPort |
_wirelessOutputPort
The connected wireless output port found in preinitialize(). |
TypedIOPort |
input
Port that receives the data to be transmitted on the output port. |
private static java.lang.String |
LOCATION_ATTRIBUTE_NAME
Name of the location attribute. |
TypedIOPort |
output
Port that sends data to a wireless output. |
Parameter |
properties
The properties to be transformed. |
Parameter |
receiverLocation
The location of the receiver. |
Parameter |
senderLocation
The location of the sender. |
Fields inherited from class ptolemy.actor.CompositeActor |
---|
_actorFiringListeners, _causalityInterface, _initializables, _notifyingActorFiring, _publishedPorts, _publisherRelations, _stopRequested |
Fields inherited from class ptolemy.kernel.CompositeEntity |
---|
_levelCrossingLinks |
Fields inherited from class ptolemy.kernel.util.NamedObj |
---|
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _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 | |
---|---|
TransmitPropertyTransformer(CompositeEntity container,
java.lang.String name)
Construct an actor with the specified container and name. |
Method Summary | |
---|---|
private double[] |
_locationOf(WirelessIOPort port)
Return the location of the given WirelessIOPort. |
protected void |
_readInputs()
Override the base class to not read any inputs. |
protected void |
_writeOutputs()
Override the base class to not write any outputs. |
java.lang.Object |
clone(Workspace workspace)
Clone the actor into the specified workspace. |
void |
fire()
Read at most one token from the input port and simply transmit the data to the output port. |
boolean |
postfire()
Return true, indicating that execution can continue. |
boolean |
prefire()
Return true, indicating that this actor is always ready to fire. |
void |
preinitialize()
Register with the channel as a PropertyTransformer for its connected wireless output port. |
RecordToken |
transformProperties(RecordToken initialProperties,
WirelessIOPort sender,
WirelessIOPort destination)
Set the senderLocation, receiverLocation, and properties variables and execute the contained model. |
void |
wrapup()
Override the base class to unregister this actor with the channel. |
Methods inherited from class ptolemy.actor.lib.hoc.LifeCycleManager |
---|
_executeInsideModel, _fireInsideModel, executeChangeRequests, isOpaque, requestChange |
Methods inherited from class ptolemy.actor.TypedCompositeActor |
---|
_addEntity, _addPort, _addRelation, _checkTypesFromTo, _typeConstraintsFromTo, newPort, newRelation, resolveTypes, typeConstraintList, typeConstraints |
Methods inherited from class ptolemy.kernel.ComponentEntity |
---|
_checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName |
Methods inherited from class ptolemy.kernel.Entity |
---|
_removePort, connectedPortList, connectedPorts, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts |
Methods inherited from class ptolemy.kernel.InstantiableNamedObj |
---|
_setParent, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition |
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.actor.Executable |
---|
isFireFunctional, isStrict, iterate, stop, stopFire, terminate |
Methods inherited from interface ptolemy.actor.Initializable |
---|
addInitializable, initialize, removeInitializable |
Methods inherited from interface ptolemy.kernel.util.Nameable |
---|
description, getContainer, getDisplayName, getFullName, getName, getName, setName |
Methods inherited from interface ptolemy.kernel.util.Derivable |
---|
getDerivedLevel, getDerivedList, propagateValue |
Field Detail |
---|
public TypedIOPort input
public TypedIOPort output
public Parameter senderLocation
public Parameter receiverLocation
public Parameter properties
private WirelessChannel _inputWirelessChannel
private WirelessIOPort _wirelessInputPort
private WirelessChannel _outputWirelessChannel
private WirelessIOPort _wirelessOutputPort
private static final java.lang.String LOCATION_ATTRIBUTE_NAME
Constructor Detail |
---|
public TransmitPropertyTransformer(CompositeEntity container, java.lang.String name) throws NameDuplicationException, IllegalActionException
container
- The container.name
- The name.
IllegalActionException
- If the entity cannot be contained
by the proposed container.
NameDuplicationException
- If the container already has an
actor with this name.Method Detail |
---|
public java.lang.Object clone(Workspace workspace) throws java.lang.CloneNotSupportedException
clone
in class CompositeActor
workspace
- The workspace for the new object.
java.lang.CloneNotSupportedException
- If a derived class contains
an attribute that cannot be cloned.NamedObj.exportMoML(Writer, int, String)
,
NamedObj.setDeferringChangeRequests(boolean)
public void fire() throws IllegalActionException
fire
in interface Executable
fire
in class CompositeActor
IllegalActionException
- If there is no director, or if
the director's action methods throw it.public boolean postfire() throws IllegalActionException
postfire
in interface Executable
postfire
in class CompositeActor
IllegalActionException
- Not thrown in this class,
but declared so the subclasses can throw it.public boolean prefire() throws IllegalActionException
prefire
in interface Executable
prefire
in class CompositeActor
IllegalActionException
- Not thrown in this class,
but declared so the subclasses can throw it.public void preinitialize() throws IllegalActionException
preinitialize
in interface Initializable
preinitialize
in class CompositeActor
IllegalActionException
- If the output is not
connected directly to a WirelessIOPort, or if the port's
container does not have a container, or if no channel is
found.public RecordToken transformProperties(RecordToken initialProperties, WirelessIOPort sender, WirelessIOPort destination) throws IllegalActionException
transformProperties
in interface PropertyTransformer
initialProperties
- The initial value of the properties.sender
- The sending port.destination
- The receiving port.
IllegalActionException
- If executing the model
throws it.public void wrapup() throws IllegalActionException
wrapup
in interface Initializable
wrapup
in class CompositeActor
IllegalActionException
- If the base class throws it.protected void _readInputs()
_readInputs
in class LifeCycleManager
protected void _writeOutputs()
_writeOutputs
in class LifeCycleManager
private double[] _locationOf(WirelessIOPort port) throws IllegalActionException
port
- A port with a location.
IllegalActionException
- If a valid location attribute cannot
be found.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |