Stateflow    

Making Supertransitions

The Stateflow API does not currently support the direct creation of supertransitions. Supertransitions are transitions between a state or junction in a top-level chart and a state or junction in one of its subcharts, or between states residing in different subcharts at the same or different levels in a diagram. For a better understanding of supertransitions, see Using Supertransitions in Stateflow Charts.

Stateflow does provide a workaround for indirectly creating supertransitions. In the following example, a supertransition is desired from a junction inside a subchart to a junction outside the subchart. In order to use the Stateflow API to create the supertransition in this example, first use the API to create the superstate as an ordinary state with a transition between its contained junction and a junction outside it.

Now set the IsSubchart property of the state A to true (=1).

This makes state A a subchart, and the transition between the junctions is now a supertransition.

You can also connect supertransitions to and from objects in an existing subchart (state A, for example) with the following procedure:

  1. Save the original position of subchart A to a temporary workspace variable.
  1. For example, if the subchart A has the API handle sA, store its position with the following command:

  1. Convert subchart A to a state by setting its IsSubchart property to false (=0).
  1. sA.IsSubchart = 0

  1. Ungroup state A by setting its IsGrouped property to false (=0).
  1. sA.IsGrouped = 0

    When convert a subchart a normal state, it stays grouped to hide the contents of the subchart. When you ungroup the subchart, it might resize to display its contents.

  1. Make the necessary transition connections.
  1. See Create New Objects in the Chart for an example of creating a transition.

  1. Set the IsSubchart property of state A back to true (=1).
  1. For example, sA.IsSubchart = 1

  1. Assign subchart A its original position.
  1. sA.Position = sA_pos

    When you convert a subchart to a normal state and ungroup it, it might resize to accommodate the size of its contents. The first step of this procedure stores the original position of the subchart so that this can be restored after the transition connection is made.


  Creating Default Transitions Creating a MATLAB Script of API Commands