Stateflow | ![]() ![]() |
Event Broadcast Transition Action with a Nested Event Broadcast Example
This example shows the behavior of an event broadcast transition action that includes a nested event broadcast in a parallel state.
Start of Event E_one Processing
Initially the Stateflow diagram is asleep. Parallel substates A
.A1
.A1a
and A
.A2
.A2a
are active. Event E_one
occurs and awakens the Stateflow diagram. Event E_one
is processed from the root of the Stateflow diagram down through the hierarchy of the Stateflow diagram:
E_one
. There is no valid transition.
A
during
actions (durA()
) execute and complete.
A
.A1
is evaluated first. State A
.A1
during
actions (durA1()
) execute and complete.
A
.A1
checks for any valid transitions as a result of event E_one
. There is a valid transition from state A
.A1
.A1a
to state A
.A1
.A1b
.
A.A1.A1a
executes and completes exit
actions (exitA1a
).
A.A1.A1a
is marked inactive.
Event E_two Preempts E_one
E_two
is executed and completed:
A1a
to state A1b
(as a result of event E_one
) is
now preempted by the broadcast of event E_two
.
E_two
awakens the Stateflow diagram a second
time. The Stateflow diagram root checks to see if there is a valid
transition as a result of E_two
. There is no valid transition.
during
actions (durA()
) execute and complete.
A
.A1
. State A
.A1
during
actions (durA1()
) execute and complete. State A
.A1
is evaluated
for valid transitions. There are no valid transitions as a result of E_two
within state A1
.
A
.A2
is evaluated. State A
.A2
during
actions (durA2()
) execute and
complete. State A
.A2
checks for valid transitions. State A
.A2
has a valid
transition as a result of E_two
from state A
.A2
.A2a
to state A
.A2
.A2b
.
A
.A2
.A2a
exit
actions (exitA2a()
) execute and complete.
A
.A2
.A2a
is marked inactive.
A
.A2
.A2b
is marked active.
A
.A2
.A2b
entry
actions (entA2b()
) execute and complete.
Event E_two Processing Ends
Event E_one Processing Resumes
A
.A1
.A1b
is marked active.
A
.A1
.A1b
entry actions (entA1b()
) execute and complete.
A
.A2
is evaluated next. State A
.A2
during actions (durA2()
) execute and complete. There are no valid transitions as a result of E_one
.
A
.A2
.A2b
during actions (durA2b()
) execute and complete.
A
.A2
.A2b
is now active as a result of the processing of the transition action event broadcast of E_two
.
This sequence completes the execution of this Stateflow diagram associated with event E_one
and the transition action event broadcast to a parallel state of event E_two
. The final Stateflow diagram activity now looks like this.
![]() | Event Broadcast State Action Example | Event Broadcast Condition Action Example | ![]() |