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 организованы в иерархии включения. Например, если A
состояния содержит
B
состояния в диаграмме Stateflow, затем объект API для
A
состояния содержит объект API для
B
состояния. Иерархия API Stateflow следует тем же правилам включения как иерархия объектов Stateflow. Например, графики могут содержать состояния, но состояния не могут содержать графики. Для получения дополнительной информации см. Обзор Объектов Stateflow.
Эта схема показывает иерархию объектов в API Stateflow.
Иерархия состоит из четырех уровней включения:
Корень — 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
объекты, которые представляют состояния, функции и поля, соответственно. Эти объекты могут содержать другие объекты, которые представляют состояния, функции, поля, данные, события, сообщения, переходы, соединения, порты входа и выхода и аннотации. Уровни вложения могут продолжиться неопределенно.
Иерархическая схема показывает два типов объектов, которые существуют за пределами иерархии включения:
Редактор — Stateflow.Editor
объекты обеспечивают доступ к графическим аспектам графиков и таблиц переходов состояний. Для каждого Stateflow.Chart
или Stateflow.StateTransitionTableChart
объект, существует Stateflow.Editor
возразите, что можно использовать, чтобы управлять положением, размером и уровнем увеличения редактора Stateflow. Для получения дополнительной информации смотрите, Увеличивают масштаб диаграммы Stateflow, Уменьшения на диаграмме Stateflow и Установленного Коэффициента Изменения масштаба.
Буфер обмена — Stateflow.Clipboard
объект имеет две функции, copy
и pasteTo
, то использование буфер обмена как район сосредоточения войск, чтобы реализовать функциональность копии-и-вставки в API Stateflow. Для получения дополнительной информации см. Копию и Вставку путем Группировки и Массив Копии и Вставки Объектов.
Чтобы использовать API Stateflow, вы начинаете путем доступа к Simulink.Root
объект, который является родительским элементом всех объектов в API Stateflow. Вы используете Simulink.Root
возразите, чтобы получить доступ к другим объектам API в вашей модели. Например:
Создайте модель Simulink с пустой диаграммой Stateflow путем вызывания функции sfnew
.
sfnew
Используйте функцию sfroot
получить доступ к Simulink.Root
объект.
rt = sfroot;
Вызовите find
функционируйте, чтобы получить доступ к Stateflow.Chart
объект, который соответствует графику в вашей модели.
ch = find(rt,'-isa','Stateflow.Chart');
Вызовите Stateflow.State
функция, чтобы добавить состояние в график. Эта функция возвращает Stateflow.State
объект, который соответствует новому состоянию.
st = Stateflow.State(ch);
Отобразите новое состояние в редакторе Stateflow.
view(st)
Для получения дополнительной информации смотрите доступ к Объектам в Вашей диаграмме Stateflow и Создайте Графики при помощи API Stateflow.
Объекты API имеют свойства, которые соответствуют значениям, которые вы устанавливаете в редакторе Stateflow. Например, чтобы использовать редактор, чтобы сменить положение состояния, вы перетаскиваете состояние. С API Stateflow вы меняете положение состояния путем изменения Position
свойство соответствующего Stateflow.State
объект:
st.Position = [10 20 100 80];
Объекты API имеют функции, которые соответствуют действиям в редакторе Stateflow. Например, чтобы использовать редактор, чтобы открыть диалоговое окно Properties для перехода, вы щелкаете правой кнопкой по переходу и выбираете Properties. С API Stateflow вы открываете это диалоговое окно путем вызова dialog
функция соответствующего Stateflow.Transition
объект:
dialog(tr);
Stateflow.Box
| Stateflow.Chart
| Stateflow.Clipboard
| Stateflow.Editor
| Stateflow.EMChart
| Stateflow.Function
| Stateflow.Machine
| Stateflow.State
| Stateflow.StateTransitionTableChart
| Stateflow.Transition
| Stateflow.TruthTableChart