Прикладной программный интерфейс (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 организованы в иерархии включения. Например, если A
состояния содержит
B
состояния в диаграмме Stateflow, затем объект API для
A
состояния содержит объект API для
B
состояния. Иерархия API Stateflow следует тем же правилам включения как иерархия объектов Stateflow. Например, графики могут содержать состояния, но состояния не могут содержать графики. Для получения дополнительной информации см. Обзор Объектов Stateflow.
Эта схема показывает иерархию объектов в API Stateflow.
Иерархия состоит из четырех слоев включения:
Корень — 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 через переменные MATLAB под названием handles. Если у вас есть указатель на объект API, можно управлять соответствующим объектом в редакторе Stateflow. Например, можно изменить свойства объекта, вызвать методы на объекте и добавить новые объекты в объекте.
Чтобы использовать API Stateflow, вы начинаете путем нахождения указателя на Root
объект, который является родительским элементом всех объектов в API Stateflow. Если у вас есть Root
указатель на объект, можно найти указатели на объекты API, которые соответствуют объектам Stateflow, с которыми вы хотите работать. Например:
Создайте модель Simulink с пустой диаграммой Stateflow путем вызывания функции sfnew
:
sfnew
Используйте функцию sfroot
получить указатель на Root
объект:
rt = sfroot;
Вызовите find
метод, чтобы получить указатель на Chart
объект, который соответствует графику в вашей модели:
ch = rt.find('-isa','Stateflow.Chart');
Вызовите метод конструктора Stateflow.State
добавить состояние в график. Этот метод возвращает указатель на State
объект, который соответствует новому состоянию:
st = Stateflow.State(ch);
Для получения дополнительной информации смотрите, Создают Графики при помощи API Stateflow.
Объекты API имеют properties, которые соответствуют значениям, которые вы обычно устанавливаете для объекта через редактора Stateflow. Например, можно сменить положение состояния путем изменения Position
свойство соответствующего State
объект:
st.Position = [10 20 100 80];
В редакторе Stateflow вы перетаскиваете состояние, чтобы сменить его положение.
Объекты API имеют methods, которые предоставляют услуги, которые обычно предоставляются редактором Stateflow. Например, можно удалить переход в графике путем вызова delete
метод соответствующего Transition
объект:
tr.delete;
В редакторе Stateflow вы обычно удаляете переход путем нажатия на него и нажатия клавиши Delete.
Для получения дополнительной информации смотрите Access Properties и Методы Объектов Stateflow.
delete
| find
| sfnew
| sfroot
| Stateflow.State