Обзор API Stateflow

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

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

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

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

API Stateflow состоит из объектов, которые представляют графические и неграфические объекты диаграммы Stateflow. Например, API возражает Stateflow.State и Stateflow.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.

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

  • КореньSimulink.Root объект является родительским элементом всех объектов API Stateflow. Это - заполнитель наверху иерархии API Stateflow, которая отличает объекты Stateflow от других объектов в Simulink® модель. Вы автоматически создаете Simulink.Root возразите, когда вы добавляете диаграмму Stateflow, блок State Transition Table, блок Truth Table или блок MATLAB Function к модели Simulink, или когда вы загружаете модель, которая содержит один из этих блоков.

  • Машина — С точки зрения Stateflow, Stateflow.Machine объекты эквивалентны моделям Simulink. Stateflow.Machine объект содержит объекты, которые представляют диаграммы Stateflow, блоки State Transition Table, блоки Truth Table и блоки MATLAB Function в модели.

  • ГрафикStateflow.Chart, Stateflow.StateTransitionTableChart, Stateflow.TruthTableChart, и Stateflow.EMChart объекты представляют диаграммы Stateflow, блоки State Transition Table, блоки Truth Table и блоки MATLAB Function, соответственно. Объекты на этом уровне иерархии могут содержать объекты, которые представляют состояния, функции, поля, данные, события, сообщения, переходы, соединения, порты входа и выхода и аннотации.

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

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

Доступ к объектам API Stateflow

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

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

    sfnew

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

    rt = sfroot;

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

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

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

    st = Stateflow.State(ch);

  5. Отобразите новое состояние в редакторе Stateflow.

    view(st)

Для получения дополнительной информации смотрите доступ к Объектам в Вашей диаграмме Stateflow и Создайте Графики при помощи API Stateflow.

Изменение свойств объектов API

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

st.Position = [10 20 100 80];
Для получения дополнительной информации см. Изменение свойств и Вызов функций Объектов Stateflow.

Вызовите API Функции объекта

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

dialog(tr);
Для получения дополнительной информации см. Изменение свойств и Вызов функций Объектов Stateflow.

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

Функции

Объекты

Похожие темы