|
|||||||||
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.domains.modal.kernel.FSMActor
public class FSMActor
An FSMActor contains a set of states and transitions. A transition has a guard expression, any number of output actions, and any number of set actions. It has an initial state, which is the unique state whose isInitialState parameter is true. In outline, a firing of this actor is a sequence of steps as follows. In the fire() method:
After reading the inputs, this actor examines the outgoing transitions of the current state, evaluating their guard expressions. A transition is enabled if its guard expression evaluates to true. A blank guard expression is interpreted to be always true. The guard expression may refer to any input port and any variable in scope.
If an input port name portName is used in a guard expression, it refers to the current input on that port on channel zero. If the input port status is not known, or if the input is absent, then a guard expression referring to portName will not be evaluated. The guard expression may alternatively refer to portName_isPresent, which is a boolean that is true if an input is present on the specified port. Again, if the input port status is not known, such a guard would not be evaluated. The status of an input port may not be known during firings under a director with fixed-point semantics, such as SR or Continuous.
To refer to a channel specificatlly, a guard expression may use portName_channelIndex, which has value equal to the token received on the port on the given channel. Similarly, it may refer to portName_channelIndex_isPresent.
FIXME: Document multirate behavior.
The identifier portNameArray or portName_channelIndexArray refers the array of all tokens consumed from the port in the last firing. This identifier has an array type whose element type is the type of the corresponding input port.
Nondeterministic transitions are allowed if all enabled transitions are marked nondeterministic. If more than one transition is enabled and they are all marked nondeterministic, then one is chosen at random in the fire() method. If the fire() method is invoked more than once in an iteration, then subsequent invocations in the same iteration will always choose the same transition. However, if more transitions become enabled in subsequent firings and they are not all marked nondeterminate, then an exception will thrown. Note that this means that if some input is unknown on the first invocation of fire(), and a guard refers to that input, then that transition will not be chosen. As a consequence, for nondeterministic state machines, the behavior may depend on the order of firings in a fixed-point iteration. This is in fact unavoidable (it is related to the celebrated Brock-Ackerman anomaly, which demonstrates that the input/output relations of a nondeterministic system do not completely determine its behavior; the context in which it is used can also affect the behavior; specifically, the context may make it impossible to know the value of input on the first invocation of fire() because of a feedback loop).
If no transition is enabled and all their guard expressions have been evaluated (all relevant inputs are known), then if there is a transition marked as a default transition, then that transition is chosen. If there is more than one default transition and they are all marked nondeterministic, then one is chosen at random.
Once a transition is chosen, its output actions are executed. Typically, these will write values to output ports. The form of an output action is typically y = expression, where expression may refer to any variable defined as above or any parameter in scope (and also to outputs of state refinements, see below). This gives the behavior of a Mealy machine, where outputs are produced by transitions rather than by states. Moore machine behavior is also achievable using state refinements that produce outputs (see FSMDirector documentation). Multiple output actions may be given by separating them with semicolons. Also, output actions may take the form of d.p = expression, where d is the name of the destination state and p is a parameter of the destination refinement.
After a transition is taken, this actor calls fireAtCurrentTime() on its enclosing director. This ensures that if the destination state has an enabled transition, that transition will be taken at the same time (in the next superdense time index). It also supports continuous-time models, where the destination state refinement, if any, should produce an output at the next superdense time index.
A final state is a state that has its isFinalState parameter set to true. When the actor reaches a final state, then the postfire method will return false, indicating that the actor does not wish to be fired again.
An FSMActor can be used in a modal model to represent the mode control logic. In this case, the states and transitions have refinements, and this actor works in concert with the FSMDirector to execute those refinements. See the documentation for FSMDirector for details on how that works.
By default, this actor has a conservative causality interface,
implemented by the DefaultCausalityInterface
, which declares
that all outputs depend on all inputs. If, however, the enclosing
director and all state refinement directors implement the
strict actor semantics (as indicated by their
implementsStrictActorSemantics() method), then the returned
causality interface is
implemented by the FSMCausalityInterface
class. If
the stateDependentCausality is false (the default),
then this causality interface in conservative and valid in all
states. If it is true, then the causality interface will show
different input/output dependencies depending on the state.
See FSMCausalityInterface
for details.
State
,
Transition
,
Action
,
FSMDirector
,
Serialized Form
Yellow (kienhuis) |
Yellow (liuxj) |
Nested Class Summary | |
---|---|
class |
FSMActor.PortScope
This class implements a scope, which is used to evaluate the parsed expressions. |
Nested classes/interfaces inherited from class ptolemy.kernel.CompositeEntity |
---|
CompositeEntity.ContainedObjectsIterator |
Field Summary | |
---|---|
private java.util.LinkedList |
_cachedInputPorts
|
private java.util.LinkedList |
_cachedOutputPorts
|
private CausalityInterface |
_causalityInterface
The causality interface, if it has been created, for the case where the causality interface is not state dependent. |
private Director |
_causalityInterfaceDirector
The director for which the causality interface was created. |
private java.util.Map<State,FSMCausalityInterface> |
_causalityInterfaces
The causality interfaces by state, for the case where the causality interface is state dependent. |
private java.util.Map<State,java.lang.Long> |
_causalityInterfacesVersions
The workspace version for causality interfaces by state, for the case where the causality interface is state dependent. |
private java.util.Map |
_connectionMaps
|
private long |
_connectionMapsVersion
|
private java.util.Map |
_currentConnectionMap
|
protected State |
_currentState
Current state. |
private boolean |
_foundUnknown
A flag indicating that unknown inputs were referenced in guards and/or output value expressions (when guards evaluate to true) in the most recently called enabledTransition() or chooseTransition(). |
private java.util.HashMap<java.lang.String,Port> |
_identifierToPort
A map that associates each identifier with the unique port that that identifier describes. |
private long |
_identifierToPortVersion
Version number for _identifierToPort. |
protected java.util.List<Initializable> |
_initializables
List of objects whose (pre)initialize() and wrapup() methods should be slaved to these. |
(package private) State |
_initialState
The initial state. |
private long |
_inputPortsVersion
|
protected java.util.Map |
_inputTokenMap
A map from ports to corresponding input variables. |
protected Transition |
_lastChosenTransition
The last chosen transition. |
private boolean |
_newIteration
|
private long |
_outputPortsVersion
|
private boolean |
_reachedFinalState
|
private long |
_receiversVersion
|
protected boolean |
_stopRequested
Indicator that a stop has been requested by a call to stop(). |
private boolean |
_supportMultirate
|
private java.util.Hashtable |
_tokenListArrays
|
StringAttribute |
finalStateNames
Attribute specifying the names of the final states of this actor. |
StringAttribute |
initialStateName
Attribute specifying the name of the initial state of this actor. |
Parameter |
stateDependentCausality
Indicate whether input/output dependencies can depend on the state. |
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 | |
---|---|
FSMActor()
Construct an FSMActor in the default workspace with an empty string as its name. |
|
FSMActor(CompositeEntity container,
java.lang.String name)
Create an FSMActor in the specified container with the specified name. |
|
FSMActor(Workspace workspace)
Construct an FSMActor in the specified workspace with an empty string as its name. |
Method Summary | |
---|---|
protected void |
_addEntity(ComponentEntity entity)
Add a state to this FSMActor. |
protected void |
_addRelation(ComponentRelation relation)
Add a transition to this FSMActor. |
private void |
_buildConnectionMaps()
|
protected void |
_commitLastChosenTransition()
Execute all set actions contained by the transition chosen during the last call to chooseTransition(). |
private void |
_createReceivers()
Create receivers for each input port. |
protected int |
_getChannelForIdentifier(java.lang.String identifier)
Given an identifier, return a channel number i if the identifier is of the form portName_i, portName_i_isPresent, portName_iArray. |
protected Port |
_getPortForIdentifier(java.lang.String identifier)
Get the port for the specified identifier, which may be of form portName, portName_isPresent, portName_i, portName_i_isPresent, etc. |
private void |
_init()
|
protected boolean |
_isRefinementOutput(IOPort port,
int channel)
Return true if the channel of the port is connected to an output port of the refinement of current state. |
protected void |
_readInputs(IOPort port,
int channel)
Read tokens from the given channel of the given input port and make them accessible to the expressions of guards and transitions through the port scope. |
private boolean |
_referencedInputPortsByGuardKnown(Transition transition)
Given a transition, find any input ports referenced in the guard expressions of the transition, and if any of those input ports has status unknown, return false. |
private boolean |
_referencedInputPortsByOutputKnown(Transition transition)
Given a transition, find any input ports referenced in the output actions of the transitions, and if any of those input ports has status unknown, return false. |
private boolean |
_referencedInputPortValuesByGuardPresent(Transition transition)
Given a transition, return false if the guard includes any reference to an input port value and that input port is known to be absent, or any reference to an input port whose status is unknown. |
private void |
_removePortVariables(java.lang.String portName,
int channel)
Remove all variable definitions associated with the specified port name and channel number. |
private void |
_resetReceivers()
Reset receivers for each input port. |
protected void |
_setCurrentConnectionMap()
Set the map from input ports to boolean flags indicating whether a channel is connected to an output port of the refinement of the current state. |
private void |
_setIdentifierToPort()
For each input port of this actor, associate all identifiers with that port. |
private void |
_setInputTokenMap(Port port,
int channel,
Token token,
Token[] tokenArray)
Set the port variables for the specified port as follows: The portName_isPresent variable is set to true if the token argument is non-null, and false otherwise. |
void |
addInitializable(Initializable initializable)
Add the specified object to the list of objects whose preinitialize(), intialize(), and wrapup() methods should be invoked upon invocation of the corresponding methods of this object. |
Transition |
chooseTransition(java.util.List transitionList)
Return an enabled transition among the given list of transitions for which both the guard expression and the output actions can be evaluated (the inputs referred by these are known). |
java.lang.Object |
clone(Workspace workspace)
Clone the actor into the specified workspace. |
void |
createReceivers()
Create receivers for each input port. |
State |
currentState()
Return the current state of this actor. |
java.util.List |
enabledTransitions(java.util.List transitionList)
Return a list of enabled transitions among the given list of transitions. |
void |
exportSubmodel(java.io.Writer output,
int depth,
java.lang.String name)
Write this FSMActor into the output writer as a submodel. |
void |
fire()
Set the values of input variables. |
boolean |
foundUnknown()
Return true if the most recent call to enabledTransition() or chooseTransition() found guard expressions or output value expressions that could not be evaluated due to unknown inputs. |
CausalityInterface |
getCausalityInterface()
Return a causality interface for this actor. |
Entity |
getContext()
Return the change context being made explicit. |
Director |
getDirector()
Return the director responsible for the execution of this actor. |
Director |
getExecutiveDirector()
Return the executive director (same as getDirector()). |
State |
getInitialState()
Return the initial state of this actor. |
Transition |
getLastChosenTransition()
Get the last chosen transition. |
Manager |
getManager()
Return the Manager responsible for execution of this actor, if there is one. |
java.util.List |
getModifiedVariables()
Return a list of variables that this entity modifies. |
ParserScope |
getPortScope()
Return a scope object that has current values from input ports of this FSMActor in scope. |
boolean |
hasInput()
Test whether new input tokens have been received at the input ports. |
boolean |
hasInput(Port port)
Test whether new input tokens have been received at the given input port. |
void |
initialize()
Initialize this actor by setting the current state to the initial state. |
java.util.List |
inputPortList()
Return a list of the input ports. |
boolean |
isFireFunctional()
Return false. |
boolean |
isOpaque()
Return true. |
boolean |
isStrict()
Return false. |
int |
iterate(int count)
Invoke a specified number of iterations of the actor. |
Port |
newPort(java.lang.String name)
Create a new TypedIOPort with the specified name. |
Receiver |
newReceiver()
Return a new receiver obtained from the director. |
ComponentRelation |
newRelation(java.lang.String name)
Create a new instance of Transition with the specified name in this actor, and return it. |
java.util.List |
outputPortList()
Return a list of the output ports. |
boolean |
postfire()
Execute actions on the last chosen transition. |
boolean |
prefire()
Return true. |
void |
preinitialize()
Create receivers and input variables for the input ports of this actor, and validate attributes of this actor, and attributes of the ports of this actor. |
void |
readInputs()
Set the value of the shadow variables for input ports of this actor. |
void |
readOutputsFromRefinement()
Set the input variables for channels that are connected to an output port of the refinement of current state. |
void |
removeInitializable(Initializable initializable)
Remove the specified object from the list of objects whose preinitialize(), intialize(), and wrapup() methods should be invoked upon invocation of the corresponding methods of this object. |
void |
reset()
Reset current state to the initial state. |
void |
setLastChosenTransition(Transition transition)
Set the last chosen transition. |
void |
setNewIteration(boolean newIteration)
Set the flag indicating whether we are at the start of a new iteration (firing). |
void |
setSupportMultirate(boolean supportMultirate)
Set true indicating that this actor supports multirate firing. |
void |
stop()
Request that execution of the current iteration stop as soon as possible. |
void |
stopFire()
Do nothing. |
void |
terminate()
Call stop(). |
java.util.Set<Inequality> |
typeConstraints()
Return the type constraints of this actor. |
void |
wrapup()
Do nothing except invoke the wrapup method of any objects that have been added using addInitializable(). |
Methods inherited from class ptolemy.kernel.ComponentEntity |
---|
_addPort, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName |
Methods inherited from class ptolemy.kernel.Entity |
---|
_removePort, connectedPortList, connectedPorts, connectionsChanged, 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.kernel.util.Nameable |
---|
description, getContainer, getDisplayName, getFullName, getName, getName, setName |
Methods inherited from interface ptolemy.kernel.util.Derivable |
---|
getDerivedLevel, getDerivedList, propagateValue |
Field Detail |
---|
public StringAttribute finalStateNames
public StringAttribute initialStateName
public Parameter stateDependentCausality
protected State _currentState
protected transient java.util.List<Initializable> _initializables
protected java.util.Map _inputTokenMap
protected Transition _lastChosenTransition
protected boolean _stopRequested
State _initialState
private transient java.util.LinkedList _cachedInputPorts
private transient java.util.LinkedList _cachedOutputPorts
private CausalityInterface _causalityInterface
private Director _causalityInterfaceDirector
private java.util.Map<State,FSMCausalityInterface> _causalityInterfaces
private java.util.Map<State,java.lang.Long> _causalityInterfacesVersions
private java.util.Map _connectionMaps
private long _connectionMapsVersion
private java.util.Map _currentConnectionMap
private boolean _foundUnknown
private java.util.HashMap<java.lang.String,Port> _identifierToPort
private long _identifierToPortVersion
private transient long _inputPortsVersion
private boolean _newIteration
private transient long _outputPortsVersion
private boolean _reachedFinalState
private long _receiversVersion
private boolean _supportMultirate
private java.util.Hashtable _tokenListArrays
Constructor Detail |
---|
public FSMActor()
public FSMActor(CompositeEntity container, java.lang.String name) throws IllegalActionException, NameDuplicationException
container
- The container.name
- The name of this actor within the container.
IllegalActionException
- If the entity cannot be contained
by the proposed container.
NameDuplicationException
- If the name coincides with
an entity already in the container.public FSMActor(Workspace workspace)
workspace
- The workspace that will list the actor.Method Detail |
---|
public void addInitializable(Initializable initializable)
addInitializable
in interface Initializable
initializable
- The object whose methods should be invoked.removeInitializable(Initializable)
,
CompositeActor.addPiggyback(Executable)
public Transition chooseTransition(java.util.List transitionList) throws IllegalActionException
Transition
for the explanation of "nondeterministic". Otherwise, randomly choose
one from the enabled transitions and return it if the output actions
can be evaluated.
Execute the output actions contained by the returned
transition before returning.
After calling this method, you can call foundUnknown() to determine whether any guard expressions or output value expressions on a transition whose guard evaluates to true were found in the specified transition list that referred to input ports that are not currently known.
transitionList
- A list of transitions.
IllegalActionException
- If there is more than one
transition enabled and not all of them are nondeterministic.public java.lang.Object clone(Workspace workspace) throws java.lang.CloneNotSupportedException
clone
in class CompositeEntity
workspace
- The workspace for the new actor.
java.lang.CloneNotSupportedException
- If a derived class contains
an attribute that cannot be cloned.NamedObj.exportMoML(Writer, int, String)
,
NamedObj.setDeferringChangeRequests(boolean)
public void createReceivers() throws IllegalActionException
createReceivers
in interface Actor
IllegalActionException
- If any port throws it.AtomicActor.createReceivers()
,
CompositeActor.createReceivers()
public State currentState()
public java.util.List enabledTransitions(java.util.List transitionList) throws IllegalActionException
After calling this method, you can call foundUnknown() to determine whether any guard expressions were found in the specified transition list that referred to input ports that are not currently known.
transitionList
- A list of transitions.
IllegalActionException
- If the guard expression of any
transition can not be evaluated.public void exportSubmodel(java.io.Writer output, int depth, java.lang.String name) throws java.io.IOException
output
- The output stream to write to.depth
- The depth in the hierarchy, to determine indenting.name
- The name to use in the exported MoML.
java.io.IOException
- If an I/O error occurs.public void fire() throws IllegalActionException
fire
in interface Executable
IllegalActionException
- If there is more than one
transition enabled.public boolean foundUnknown()
enabledTransitions(List)
,
call this method to see whether there were guard expressions
in the specified list that could not be evaluated. After
calling chooseTransition(List)
, call this to
determine whether any guard expressions or output value
expressions on a transition whose guard evaluates to true
were found in the specified transition list that
referred to input ports that are not currently known.
public CausalityInterface getCausalityInterface()
FSMCausalityInterface
if the enclosing director
returns true in its implementsStrictActorSemantics() method.
Otherwise, it returns an interface of class
DefaultCausalityInterface
.
getCausalityInterface
in interface Actor
public Entity getContext()
getContext
in interface ExplicitChangeContext
public Director getDirector()
getDirector
in interface Actor
public Director getExecutiveDirector()
getExecutiveDirector
in interface Actor
public State getInitialState() throws IllegalActionException
IllegalActionException
- If this actor does not contain
a state with the specified name.public Transition getLastChosenTransition()
setLastChosenTransition(Transition)
public Manager getManager()
getManager
in interface Actor
public java.util.List getModifiedVariables() throws IllegalActionException
getModifiedVariables
in interface ExplicitChangeContext
IllegalActionException
- If a valid destination object can not
be found.FSMDirector.getModifiedVariables()
public ParserScope getPortScope()
public boolean hasInput()
public boolean hasInput(Port port)
port
- The input port.
public void initialize() throws IllegalActionException
initialize
in interface Initializable
IllegalActionException
- If a derived class throws it.public java.util.List inputPortList()
inputPortList
in interface Actor
public boolean isFireFunctional()
isFireFunctional
in interface Executable
public boolean isOpaque()
isOpaque
in class CompositeEntity
CompositeEntity
public boolean isStrict() throws IllegalActionException
isStrict
in interface Executable
IllegalActionException
- Not thrown in this base class.public int iterate(int count) throws IllegalActionException
iterate
in interface Executable
count
- The number of iterations to perform.
IllegalActionException
- If iterating is not
permitted, or if prefire(), fire(), or postfire() throw it.public Port newPort(java.lang.String name) throws NameDuplicationException
newPort
in class ComponentEntity
name
- The name for the new port.
NameDuplicationException
- If the actor already has a port
with the specified name.public Receiver newReceiver() throws IllegalActionException
newReceiver
in interface Actor
IllegalActionException
- If there is no director.public ComponentRelation newRelation(java.lang.String name) throws IllegalActionException, NameDuplicationException
newRelation
in class CompositeEntity
name
- The name of the new transition.
IllegalActionException
- If the name argument is null.
NameDuplicationException
- If name collides with that
of a transition already in this actor.public java.util.List outputPortList()
outputPortList
in interface Actor
public boolean postfire() throws IllegalActionException
postfire
in interface Executable
IllegalActionException
- If any action throws it.public boolean prefire() throws IllegalActionException
prefire
in interface Executable
IllegalActionException
- Not thrown in this base class.public void preinitialize() throws IllegalActionException
preinitialize
in interface Initializable
IllegalActionException
- If this actor does not contain an
initial state.public void readInputs() throws IllegalActionException
IllegalActionException
- If a shadow variable cannot take
the token read from its corresponding channel (should not occur).public void readOutputsFromRefinement() throws IllegalActionException
IllegalActionException
- If a value variable cannot take
the token read from its corresponding channel.public void removeInitializable(Initializable initializable)
removeInitializable
in interface Initializable
initializable
- The object whose methods should no longer be invoked.addInitializable(Initializable)
,
CompositeActor.removePiggyback(Executable)
public void reset() throws IllegalActionException
IllegalActionException
- If thrown while
getting the initial state or setting the current connection map.public void setLastChosenTransition(Transition transition)
transition
- The last chosen transition.getLastChosenTransition()
public void setNewIteration(boolean newIteration)
newIteration
- A boolean variable indicating whether this is
a new iteration.public void setSupportMultirate(boolean supportMultirate)
supportMultirate
- A boolean variable indicating whether this
actor supports multirate firing.public void stop()
stop
in interface Executable
public void stopFire()
stopFire
in interface Executable
public void terminate()
terminate
in interface Executable
public java.util.Set<Inequality> typeConstraints()
typeConstraints
in interface TypedActor
Inequality
public void wrapup() throws IllegalActionException
wrapup
in interface Initializable
IllegalActionException
- Not thrown in this base class.protected void _addEntity(ComponentEntity entity) throws IllegalActionException, NameDuplicationException
_addEntity
in class CompositeEntity
entity
- State to contain.
IllegalActionException
- If the state has no name, or the
action would result in a recursive containment structure, or the
argument is not an instance of State.
NameDuplicationException
- If the name collides with a name
already on the state list.protected void _addRelation(ComponentRelation relation) throws IllegalActionException, NameDuplicationException
_addRelation
in class CompositeEntity
relation
- Transition to contain.
IllegalActionException
- If the transition has no name, or
is not an instance of Transition.
NameDuplicationException
- If the name collides with a name
already on the contained transitions list.protected void _commitLastChosenTransition() throws IllegalActionException
IllegalActionException
- If any commit action throws it,
or the last chosen transition does not have a destination state.protected int _getChannelForIdentifier(java.lang.String identifier) throws IllegalActionException
identifier
- An identifier.
IllegalActionException
- If getting the width of the port fails.protected Port _getPortForIdentifier(java.lang.String identifier) throws IllegalActionException
identifier
- The specified identifier.
IllegalActionException
- If getting the width of the port fails.protected boolean _isRefinementOutput(IOPort port, int channel) throws IllegalActionException
port
- An input port of this actor.channel
- A channel of the input port.
IllegalActionException
- If the refinement specified for
one of the states is not valid.protected void _readInputs(IOPort port, int channel) throws IllegalActionException
port
- An input port of this actor.channel
- A channel of the input port.
IllegalActionException
- If the port is not contained by
this actor.protected void _setCurrentConnectionMap() throws IllegalActionException
IllegalActionException
- If the refinement specified
for one of the states is not valid.private void _buildConnectionMaps() throws IllegalActionException
IllegalActionException
private void _createReceivers() throws IllegalActionException
IllegalActionException
- If any port throws it.private void _init()
private void _removePortVariables(java.lang.String portName, int channel)
portName
- The name of the portchannel
- The channel numberprivate void _resetReceivers() throws IllegalActionException
IllegalActionException
- If any port throws it.private boolean _referencedInputPortValuesByGuardPresent(Transition transition) throws IllegalActionException
transition
- A transition
IllegalActionException
- If the guard expression cannot
be parsed.private boolean _referencedInputPortsByGuardKnown(Transition transition) throws IllegalActionException
transition
- A transition
IllegalActionException
- If the guard expression cannot
be parsed.private boolean _referencedInputPortsByOutputKnown(Transition transition) throws IllegalActionException
transition
- A transition
IllegalActionException
- If the guard expression cannot
be parsed.private void _setIdentifierToPort() throws IllegalActionException
IllegalActionException
- If getting the width of the port fails.private void _setInputTokenMap(Port port, int channel, Token token, Token[] tokenArray) throws IllegalActionException
port
- The port.channel
- The channel.token
- If not null, the data token at the port.tokenArray
- If not null, an array of tokens at the port.
IllegalActionException
- If the identifier is
already associated with another port.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |