Stateflow | ![]() ![]() |
Event Broadcast State Action Example
This example shows the behavior of event broadcast actions in parallel states.
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. State A
.A1
executes and completes the on
E_one
action and broadcasts event E_two
. during
and on
event_name
actions are processed based on their order of appearance in the state label:
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
).
E_one
continues once the on
event broadcast of E_two
has been processed. State 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
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.
This sequence completes the execution of this Stateflow diagram associated with event E_one
and the on
event broadcast to a parallel state of event E_two
. The final Stateflow diagram activity looks like this.
![]() | Parallel (AND) State Examples | Event Broadcast Transition Action with a Nested Event Broadcast Example | ![]() |