Condition Action Examples

Condition Action Example

This example shows the behavior of a simple condition action in a multiple segment transition.

Initially, the Stateflow chart is asleep. State A is active. Event E_one occurs and awakens the chart. Conditions C_one and C_two are false. Event E_one is processed from the root of the chart down through the hierarchy of the chart:

  1. The Stateflow chart root checks to see if there is a valid transition as a result of E_one. A valid transition segment from state A to a connective junction is detected. The condition action A_one is detected on the valid transition segment and is immediately executed and completed. State A is still active.

  2. Because the conditions on the transition segments to possible destinations are false, none of the complete transitions is valid.

  3. State A during actions (durA()) execute and complete.

    State A remains active.

  4. 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.

Condition and Transition Actions Example

This example shows the behavior of a simple condition and transition action specified on a transition from one exclusive (OR) state to another.

Initially, the Stateflow chart is asleep. State A is active. Event E_one occurs and awakens the chart. Condition C_one is true. Event E_one is processed from the root of the chart down through the hierarchy of the chart:

  1. The Stateflow chart root checks to see if there is a valid transition as a result of E_one. A valid transition from state A to state B is detected. The condition C_one is true. The condition action A_one is detected on the valid transition and is immediately executed and completed. State A is still active.

  2. State A exit actions (ExitA()) execute and complete.

  3. State A is marked inactive.

  4. The transition action A_two is executed and completed.

  5. State B is marked active.

  6. State B entry actions (entB()) execute and complete.

  7. 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.

Condition Actions in For-Loop Construct Example

Condition actions and connective junctions are used to design a for loop construct. This example shows the use of a condition action and connective junction to create a for loop construct.

See For-Loop Construct Example to see the behavior of this example.

Condition Actions to Broadcast Events to Parallel (AND) States Example

This example shows how to use condition actions to broadcast events immediately to parallel (AND) states.

See Event Broadcast Condition Action Example to see the behavior of this example.

Cyclic Behavior to Avoid with Condition Actions Example

This example shows a notation to avoid when using event broadcasts as condition actions because the semantics results in cyclic behavior.

Initially, the Stateflow chart is asleep. State On is active. Event E_one occurs and awakens the chart. Event E_one is processed from the root of the chart down through the hierarchy of the chart:

  1. The Stateflow chart root checks to see if there is a valid transition as a result of E_one.

    A valid transition from state On to state Off is detected.

  2. The condition action on the transition broadcasts event E_one.

  3. Event E_one is detected on the valid transition, which is immediately executed. State On is still active.

  4. The broadcast of event E_one awakens the chart a second time.

  5. Go to step 1.

Steps 1 - 5 continue to execute in a cyclical manner. The transition label indicating a trigger on the same event as the condition action broadcast event results in unrecoverable cyclic behavior. This sequence never completes when event E_one is broadcast and state On is active.

  


 © 1984-2008- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS