exponenta event banner

Обзор API Stateflow

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

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

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

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

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

Примечание

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

Иерархия объектов API потока состояний

Объекты API потока состояний организованы в иерархию содержимого. Например, если состояние A содержит состояние B в диаграмме Stateflow, затем объект API для состояния A содержит объект API для состояния B. Иерархия API 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, блока таблицы перехода состояния, блока таблицы истинности или блока функции MATLAB в модель Simulink или при загрузке модели, содержащей один из этих блоков.

  • Машина - с точки зрения потока состояния, Stateflow.Machine объекты эквивалентны моделям Simulink. A Stateflow.Machine объект содержит объекты, представляющие в модели диаграммы Stateflow, блоки таблицы перехода состояния, блоки таблицы истинности и блоки функции MATLAB.

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

  • Состояния, функции и поля - этот уровень иерархии включает 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 Editor. Например, чтобы изменить положение состояния, обычно следует щелкнуть и перетащить состояние. С помощью API Stateflow можно изменить положение состояния, изменив Position свойство соответствующего Stateflow.State объект:

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

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

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

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

См. также

Функции

Объекты

Связанные темы