Обзор API Stateflow

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

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

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

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

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

Примечание

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

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

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

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

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

Иерархия состоит из четырех уровней сдерживания:

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

  • Машина - С точки зрения Stateflow, Stateflow.Machine объекты эквивалентны моделям Simulink. A 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 объект, который является родительским элементом всех объектов в Stateflow API. Вы используете 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 и Создание графиков при помощи Stateflow API.

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

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

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

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

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

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

См. также

Функции

Объекты

Похожие темы