Stateflow® API в настоящее время не поддерживает прямое создание суперпереходов. Суперпереходы являются переходами между разными уровнями в графике. Суперпереход может быть между состоянием в графике верхнего уровня и состоянием в одном из его подсостояний, или между состояниями, находящимися в различных подсостояниях. Для лучшего понимания суперпереходов смотрите Перемещение Между Уровнями Иерархии при помощи Суперпереходов.
Можно использовать обходное решение для того, чтобы косвенно создать суперпереходы. В этом примере суперпереход желаем от соединения в субдиаграмме к соединению вне субдиаграммы. Для того, чтобы использовать API Stateflow, чтобы создать суперпереход в этом примере, сначала используйте API, чтобы создать сверхсостояние как обычное состояние с переходом между его содержавшим соединением и соединением снаружи.
Теперь установите IsSubchart
свойство состояния к true
.
Этот шаг делает A
состояния субдиаграмма и переход между соединениями являются теперь суперпереходом.
Можно также соединить суперпереходы к, и от объектов в существующей субдиаграмме (утвердите A
, например) с этими шагами:
Сохраните исходное положение субдиаграммы A
к временной переменной рабочей области.
Например, если субдиаграмма A
имеет указатель API sA
, сохраните его положение этой командой:
sA_pos = sA.Position;
Преобразуйте субдиаграмму A
к состоянию путем установки IsSubchart
свойство к false
.
sA.IsSubchart = false;
Разгруппируйте A
состояния путем установки
IsGrouped
свойство к false
.
sA.IsGrouped = false;
Установите необходимые связи перехода.
Смотрите Создают Графики при помощи API Stateflow для примера создания перехода.
Установите IsSubchart
свойство A
состояния назад к true (=1). Например,
sA.IsSubchart = 1;
Присвойте субдиаграмму A
его исходное положение.
sA.Position = sA_pos;