Control Chart Execution by Using Default Transitions
Default Transition in Exclusive (OR) Decomposition
This example shows a transition from an OR state to a superstate with exclusive (OR) decomposition, where a default transition to a substate is defined.
Initially, the chart is asleep. State A
is active. Event
E_one
occurs and awakens the chart, which processes the event
from the root down through the hierarchy:
The chart root checks to see if there is a valid transition as a result of
E_one
. There is a valid transition from stateA
to superstateB
.State
A
exit actions (exitA()
) execute and complete.State
A
is marked inactive.The transition action,
A
, is executed and completed.State
B
is marked active.State
B
entry actions (entB()
) execute and complete.State
B
detects a valid default transition to stateB
.B1
.State
B
.B1
is marked active.State
B
.B1
entry actions (entB1()
) execute and complete.The chart goes back to sleep.
This sequence completes the execution of this Stateflow® chart associated with event E_one
when state
A
is initially active.
Default Transition to a Junction
The following example shows the behavior of a default transition to a connective junction. The default transition to the junction is valid only when state B is first entered, not every time the chart wakes up.
For this example, initially, the chart is asleep. State B.B1
is
active. Condition [C_two]
is true. An event occurs and awakens
the chart, which processes the event from the root down through the
hierarchy:
State
B
checks to see if there is a valid transition as a result of any event. There is none.State
B
during
actions (durB()
) execute and complete.State
B1
checks to see if there is a valid transition as a result of any event. There is none.State
B1
during
actions (durB1()
) execute and complete.
This sequence completes the execution of this Stateflow chart associated with the occurrence of any event.
Default Transition and a History Junction
This example shows the behavior of a superstate with a default transition and a history junction.
Initially, the chart is asleep. State A
is active. A history
junction records the fact that state B4
is the previously active
substate of superstate B
. Event E_one
occurs
and awakens the chart, which processes the event from the root down through the
hierarchy:
The chart root checks to see if there is a valid transition as a result of
E_one
.There is a valid transition from state
A
to superstateB
.State
A
exit actions (exitA()
) execute and complete.State
A
is marked inactive.State
B
is marked active.State
B
entry actions (entB()
) execute and complete.State
B
uses the history junction to determine the substate destination of the transition into the superstate.The history junction indicates that substate
B
.B4
was the last active substate, which becomes the destination of the transition.State
B
.B4
is marked active.State
B
.B4
entry actions (entB4()
) execute and complete.The chart goes back to sleep.
This sequence completes the execution of this Stateflow chart associated with event E_one
.
Labeled Default Transitions
This example shows the use of a default transition with a label.
Initially, the chart is asleep. State A
is active. Event
E_one
occurs and awakens the chart, which processes the event
from the root down through the hierarchy:
The chart root checks to see if there is a valid transition as a result of
E_one
.There is a valid transition from state
A
to superstateB
. The transition is valid if eventE_one
orE_two
occurs.State
A
exit actions execute and complete (exitA()
).State
A
is marked inactive.State
B
is marked active.State
B
entry actions execute and complete (entB()
).State
B
detects a valid default transition to stateB
.B1
. The default transition is valid as a result ofE_one
.State
B
.B1
is marked active.State
B
.B1
entry actions execute and complete (entB1()
).The chart goes back to sleep.
This sequence completes the execution of this Stateflow chart associated with event E_one
when state
A
is initially active.