Вы создаете (создают), родительский элемент (содержат) и удаляют (уничтожают) объекты в графиках Stateflow® через методы конструктора в API Stateflow. Для всех кроме объектов Редактора и Буфера обмена создание объектов устанавливает указатель на них, что можно использовать в доступе к их свойствам и методам, чтобы сделать модификации к диаграммам Stateflow.
Объекты Stateflow содержатся (порожденные) другими объектами, как задано в иерархии Stateflow объектов (см. Иерархию объектов API Stateflow). Вы управляете включением неграфических объектов в Model Explorer.
Вы создаете объект Stateflow как дочерний элемент родительского объекта через методы конструктора API. Каждый тип объекта Stateflow имеет свой собственный метод конструктора. Смотрите Методы конструктора для списка допустимых методов конструктора.
Используйте этот процесс, чтобы создать объекты Stateflow с API Stateflow:
Доступ к родительскому объекту получить указатель на него.
Когда вы сначала начинаете заполнять модель или график, это означает, что необходимо получить указатель на Объект модели Stateflow или конкретный Объект диаграммы. Смотрите доступ к Объекту Машины и доступу к Объекту диаграммы.
См. также доступ к Существующим Объектам Stateflow для более общие средние значения доступа (получение указателя на объект к) существующий объект Stateflow.
Вызовите соответствующий метод конструктора для создания объекта с помощью родительского (содержащего) объект в качестве аргумента.
Например, эта команда создает и возвращает указатель s
к новому объекту состояния в объекте диаграммы с указателем ch
:
s = Stateflow.State(ch);
По умолчанию недавно созданное состояние от предыдущей команды появляется в левом верхнем углу графика:
Конструктор возвращает указатель на объект API для недавно созданного объекта Stateflow. Используйте этот указатель на отображение или измените объект через его свойства и методы.
Используйте указатель на объект, возвращенный конструктором, чтобы внести изменения в объект в графике.
Например, можно теперь использовать указатель s
определять его имя (Name
свойство) и положение (Position
свойство. Можно также соединить его с другими состояниями или соединениями путем создания Объекта перехода и установки его Source
или Destination
свойство к s
. Смотрите Создают Новые Объекты в Графике для примеров.
Используйте предыдущий процесс, чтобы создать все объекты Stateflow в вашем графике. Создайте Новые Объекты в Графике, дает примеры для создания состояний и переходов. Можно также создать объекты других типов. Например, эта команда создает и возвращает указатель (d1
) для нового Объекта данных, принадлежащего состоянию (обрабатывают sA
):
d1 = Stateflow.Data(sA)
В настоящее время нет никакого конструктора для диаграммы Stateflow. Чтобы создать график с API Stateflow, необходимо использовать sfnew
функция.
Как обсуждено в предыдущем разделе, Создайте Объекты Stateflow, конструктор API Stateflow устанавливает родительский элемент для недавно созданного объекта путем взятия указателя для родительского объекта в качестве аргумента конструктору.
Когда вы создаете графические объекты (состояния, поля, примечания, функции, переходы, соединения), они появляются полностью в их содержании родительского объекта. В графике графическое включение является необходимым и достаточным условием для установления содержания родительского элемента.
Меняя местоположение графического объекта через его Position
свойство может изменить родительский элемент объекта или вызвать неопределенное родительское состояние ошибки. Парсинг графика, в котором ребра одного объектного перекрытия с другим производит неопределенное родительское состояние ошибки, которое не может разрешить синтаксический анализатор Stateflow. Можно проверять на это условие путем исследования значения BadIntersection
свойство Объекта диаграммы, который равняется 1, если ребра графического объекта накладываются с другими объектами. Необходимо установить размер и положение объектов так, чтобы они были отдельными от других объектов.
Когда вы создаете неграфические объекты (данные, события, сообщения), они появляются в Model Explorer на иерархическом уровне их объекта владения. Включение для неграфических объектов устанавливается через Model Explorer только. Смотрите Использование Model Explorer с Объектами Stateflow.
Большинство объектов Stateflow имеет метод деструктора под названием delete
. В этом примере, объекте State, s
, удален:
s.delete;
Предыдущая команда эквивалентна выполнению выбора мыши, и клавиатура удаляют операцию в графике. После удаления графические объекты Stateflow отправляются в буфер обмена; неграфические объекты, такие как данные, события и сообщение полностью удалены. Переменная s
рабочей области все еще существует, но больше не указатель на удаленное состояние.