Stateflow® API состоит из объектов, которые представляют графические и неграфические объекты диаграммы Stateflow. Например, объекты API типа Stateflow.State
и Stateflow.Transition
представляйте состояния и переходы в диаграмме Stateflow.
Объекты API Stateflow организованы в иерархии включения, описанной в Иерархии Объектов API Stateflow. Чтобы создать объект Stateflow как дочерний элемент родительского объекта, вы начинаете путем доступа к родительскому объекту. Затем используйте родительский объект в качестве входного параметра к функции, которая создает th дочерний объект. Например, чтобы добавить новый Stateflow.State
объект в Stateflow.Chart
возразите, выполните эти шаги:
Доступ к родительскому объекту ch
как описано в доступе к Объектам в Вашей диаграмме Stateflow.
Вызовите Stateflow.State
функция с помощью родительского объекта ch
в качестве аргумента.
st = Stateflow.State(ch);
Отобразите новое состояние в редакторе Stateflow путем вызова view
функция. Используйте Stateflow.State
возразите в качестве аргумента против функции.
view(st)
Внесите изменения в состояние путем изменения свойств Stateflow.State
объект. Например, можно определить имя и положение состояния путем изменения Name
и Position
свойства. Установить Position
свойство, задайте новую позицию четырехэлементного вектора, в котором первые два значения (x, y), координаты верхнего левого угла состояния и последних двух значений являются шириной и высотой состояния.
st.Name = 'A';
st.Position = [30 30 90 60];
Можно также соединить новое состояние с другими состояниями или соединениями в графике путем создания Stateflow.Transition
объект и установка его Source
или Destination
свойства к st
.
Для примера того, как добавить состояния, видят переходы и объекты данных к графику, Создают Графики при помощи API Stateflow.
Когда вы создаете графический объект, такой как состояние, функция, поле, соединение или аннотация, это появляется в верхнем левом углу ее родительского объекта. Можно переместить графический объект в другое место путем изменения его Position
свойство, как объяснено в предыдущем примере.
Когда вы создаете переход, появляется в верхнем левом углу графика или субдиаграммы, где можно просмотреть родительский объект. Можно переместить переход к другому месту путем установки его источника и места назначения или путем изменения его SourceEndPoint
, MidPoint
, и DestinationEndPoint
свойства.
Графический объект должен быть расположен в контуре его родительского элемента. Менять местоположение графического объекта может изменить свой родительский элемент или привести к неопределенной родительской ошибке. Можно проверять на это условие путем исследования значения BadIntersection
свойство объекта. Этим свойством является true
если ребра графического объекта перекрываются с другим графическим объектом. Установите положение и размер объектов так, чтобы они были отдельными от других объектов.
Вы не можете переместить объект в состояние подотмеченное на диаграмме, поле или графическую функцию к другому уровню иерархии графика, меняя ее положение. Вместо этого копия и вставка объект от одного родительского объекта до другого. Затем удалите исходный объект. Для получения дополнительной информации см. Копию и Вставку путем Группировки и Массив Копии и Вставки Объектов.
Когда вы создаете неграфические объекты, такие как данные, события или сообщения, они появляются в Model Explorer и в Панели Символов на иерархическом уровне их родительского объекта. Можно также видеть местоположение родительского объекта путем осмотра Path
свойство объекта.
Вы не можете изменить родительский элемент неграфического объекта программно. Вместо этого используйте Model Explorer. Для получения дополнительной информации смотрите Использование Model Explorer с Объектами Stateflow.
Можно удалить большинство объектов в диаграмме Stateflow путем вызывания функции delete
. Например, чтобы удалить Stateflow.State
объект st
, Введите:
delete(st);
После того, как вы удаляете состояние, переменную st
все еще существует в рабочей области MATLAB®, но она больше не сопоставляется с состоянием.
Примечание
Вы не можете использовать delete
функция, чтобы удалить объекты этих типов:
Simulink.Root
Stateflow.Machine
Stateflow.Chart
Stateflow.EMChart
Stateflow.StateTransitionTableChart
Stateflow.TruthTableChart
Stateflow.Clipboard
Stateflow.Editor