Using deferred triggers

Only states can defer triggers.

A state may specify a set of triggers that may be deferred in that state. A trigger that does not fire any transitions in the current state will remain active if it is declared in the deferred trigger set of that state. That is, 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 will be remembered.

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

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.    Point to the Header portion of the state and right-click.

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 the Deferred Triggers window.

5.    Click OK, or press ENTER.