Using deferred triggers

Only states, composite states, and submachines can defer triggers.

A trigger that does not fire any transition in the current state remains active if it is declared in the deferred trigger set of that state, and it remains active on consecutive simulation steps. This situation persists until a state is reached where either the trigger is no longer deferred or the trigger fires a transition.

If the deferred trigger fires while in the state in which it is deferred, its firing is remembered.

Deferred triggers in composite states: Composite states introduce potential trigger deferral conflicts. Each of the substates may defer or consume a trigger, potentially conflicting with the composite state (for example, a substate defers a trigger while the composite state consumes it, or vice versa).

Deferred triggers in substates of parallel regions: Substates of parallel regions may also introduce deferral conflicts. The conflict resolution follows the triggering priorities, where nested states override enclosing states. In case of a conflict between states in different regions, a consumer state overrides a deferring state.

To specify a deferred trigger

1.    Right-click the Header portion of the state.

2.    Click the Activity Manager tab.

3.    Under Actions, select On Trigger.

4.    Under Available Triggers, select the trigger and click >.

The trigger is moved to Deferred Triggers.

5.    Click OK, or press ENTER.