Обзор API Stateflow

Прикладной программный интерфейс (API) Stateflow® является инструментом, чтобы создать или изменить диаграммы Stateflow при помощи команд MATLAB®. Путем размещения команд API Stateflow в функцию MATLAB или скрипт, вы можете:

  • Автоматизируйте свои операции модификации графика путем выполнения нескольких шагов редактирования в одной команде.

  • Устраните повторяющиеся шаги создания графика путем создания "основной" диаграммы Stateflow, которую можно снова использовать как шаблон для приложений.

  • Представьте специализированный отчет своей модели.

API Stateflow состоит из объектов, которые представляют графические и неграфические объекты диаграммы Stateflow. Например, объекты API типа State и Transition представляйте состояния и переходы в диаграмме Stateflow. Когда вы изменяете свойство объекта API или вызываете один из его методов, вы влияете на соответствующий объект в диаграмме Stateflow. Когда вы используете редактора Stateflow, чтобы выполнить операцию на объекте в графике, вы влияете на соответствующий объект API.

Примечание

Вы не можете отменить операцию в редакторе Stateflow, которого вы выполняете при помощи API Stateflow. Если вы выполняете операцию редактирования через API, кнопки Undo и Redo отключены в панели быстрого доступа.

Иерархия объектов API Stateflow

Объекты API Stateflow организованы в иерархии включения. Например, если A состояния содержит B состояния в диаграмме Stateflow, затем объект API для A состояния содержит объект API для B состояния. Иерархия API Stateflow следует тем же правилам включения как иерархия объектов Stateflow. Например, графики могут содержать состояния, но состояния не могут содержать графики. Для получения дополнительной информации см. Обзор Объектов Stateflow.

Эта схема показывает иерархию объектов в API Stateflow.

Diagram showing the four levels of the hierarchy of API objects.

Иерархия состоит из четырех слоев включения:

  • КореньRoot объект является родительским элементом всех объектов API Stateflow. Это - заполнитель наверху иерархии API Stateflow, которая отличает объекты Stateflow от других объектов в модели Simulink®. Вы автоматически создаете Root возразите, когда вы вызовете функцию sfnew или загрузите модель Simulink, содержащую диаграмму Stateflow.

  • Машина — машина Stateflow содержит все графики, таблицы переходов состояний и блоки таблицы истинности в модели Simulink. С точки зрения Stateflow, Machine объекты эквивалентны моделям Simulink. Весь Machine объекты содержатся в Root объект. Machine объекты могут содержать один или несколько Chart объекты.

  • ГрафикChart объекты представляют диаграммы Stateflow, таблицы переходов состояний и блоки таблицы истинности. Каждый Chart объект может содержать объекты, которые представляют состояния, функции, поля, данные, события, сообщения, переходы, соединения и аннотации. Эти объекты представляют компоненты диаграммы Stateflow.

  • Состояния, функции и поляStateфункция, и Box объекты могут содержать другие объекты, которые представляют состояния, функции, поля, данные, события, сообщения, переходы, соединения и аннотации. Уровни вложения могут продолжиться неопределенно.

Иерархическая схема показывает два типов объектов, которые существуют за пределами иерархии включения:

  • Редактор — Несмотря на то, что не часть иерархии включения, Editor объекты обеспечивают доступ к графическим аспектам Chart объекты. Для каждого Chart объект, существует Editor объект, который обеспечивает доступ к API к редактору Stateflow. Для получения дополнительной информации смотрите, Изменяют Graphical Properties Вашего Графика.

  • Буфер обменаClipboard объект имеет два метода, copy и pasteTo, то использование буфер обмена как район сосредоточения войск, чтобы реализовать функциональность копии-и-вставки в API Stateflow. Для получения дополнительной информации см. Копию и Вставку Объекты Stateflow.

Управляйте объектами API Stateflow

Вы управляете объектами API Stateflow через переменные MATLAB под названием handles. Если у вас есть указатель на объект API, можно управлять соответствующим объектом в редакторе Stateflow. Например, можно изменить свойства объекта, вызвать методы на объекте и добавить новые объекты в объекте.

Получите указатели на объекты API

Чтобы использовать API Stateflow, вы начинаете путем нахождения указателя на Root объект, который является родительским элементом всех объектов в API Stateflow. Если у вас есть Root указатель на объект, можно найти указатели на объекты API, которые соответствуют объектам Stateflow, с которыми вы хотите работать. Например:

  1. Создайте модель Simulink с пустой диаграммой Stateflow путем вызывания функции sfnew:

    sfnew

  2. Используйте функцию sfroot получить указатель на Root объект:

    rt = sfroot;

  3. Вызовите find метод, чтобы получить указатель на Chart объект, который соответствует графику в вашей модели:

    ch = rt.find('-isa','Stateflow.Chart');

  4. Вызовите метод конструктора Stateflow.State добавить состояние в график. Этот метод возвращает указатель на State объект, который соответствует новому состоянию:

    st = Stateflow.State(ch);

Для получения дополнительной информации смотрите, Создают Графики при помощи API Stateflow.

Измените свойства API

Объекты API имеют properties, которые соответствуют значениям, которые вы обычно устанавливаете для объекта через редактора Stateflow. Например, можно сменить положение состояния путем изменения Position свойство соответствующего State объект:

st.Position = [10 20 100 80];

В редакторе Stateflow вы перетаскиваете состояние, чтобы сменить его положение.

Вызовите методы API

Объекты API имеют methods, которые предоставляют услуги, которые обычно предоставляются редактором Stateflow. Например, можно удалить переход в графике путем вызова delete метод соответствующего Transition объект:

tr.delete;

В редакторе Stateflow вы обычно удаляете переход путем нажатия на него и нажатия клавиши Delete.

Для получения дополнительной информации смотрите Access Properties и Методы Объектов Stateflow.

Смотрите также

| | | |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте