Stateflow | ![]() ![]() |
Event Broadcast Condition Action Example
This example shows the behavior of a condition action event broadcast in a parallel (AND) state.
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
. There is also a valid condition action. The condition action event broadcast of E_two
is executed and completed. State A
.A1
.A1a
is still active:
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.
The Stateflow diagram activity now looks like this.
A
.A1
.A1a
executes and completes exit
actions (exitA1a
).
A
.A1
.A1a
is marked inactive.
A
.A1
.A1b
entry
actions (entA1b()
) execute and complete.
A
.A1
.A1b
is marked active.
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 condition action event broadcast of E_two
.
This sequence completes the execution of this Stateflow diagram associated with event E_one
and the condition action event broadcast to a parallel state of event E_two
. The final Stateflow diagram activity now looks like this.
![]() | Event Broadcast Transition Action with a Nested Event Broadcast Example | Directed Event Broadcasting Examples | ![]() |