При использовании Stateflow® API задайте метки состояний и переходов путем присвоения вектора символов LabelString
свойство.
Чтобы извлечь части состояния или метки перехода, используйте свойства Stateflow.State
и Stateflow.Transition
объекты перечислены в этой таблице.
Объект API | Свойство | Ввод | Описание |
---|---|---|---|
Stateflow.State | DuringAction | Символьный вектор | Текст в during действие в этом состоянии. Это свойство не поддерживается в графиках Мура. |
EntryAction | Символьный вектор | Текст в entry действие в этом состоянии. Это свойство не поддерживается в графиках Мура. | |
ExitAction | Символьный вектор | Текст в exit действие в этом состоянии. Это свойство не поддерживается в графиках Мура. | |
MooreAction | Символьный вектор | Текст в действии в этом состоянии. Это свойство поддерживается только в графиках Мура. Для получения дополнительной информации смотрите Правила проектирования для Графиков Мура. | |
Name | Символьный вектор | Имя этого состояния. | |
OnAction | Массив ячеек из символьных векторов | Текст в {'trigger1','action1',...,'triggerN','actionN'} Это свойство не поддерживается в графиках Мура. | |
Stateflow.Transition | Condition | Символьный вектор | Текст в условии на этом переходе. |
ConditionAction | Символьный вектор | Текст в действии условия с этим переходом. | |
TransitionAction | Символьный вектор | Текст в действии перехода с этим переходом. | |
Trigger | Символьный вектор | Текст в триггере на этом переходе. |
За исключением Name
, все эти свойства только для чтения. Для получения дополнительной информации о синтаксисе для состояния и меток перехода, смотрите Метки состояния и Метки Перехода.
Предположим тот tr
указатель на переход. Можно присвоить метку, которая задает триггер, условие и действие условия с этим переходом путем ввода:
tr.LabelString = 'trigger[guard]{action();}';
Чтобы извлечь триггер, условие и действие условия, заданное переходом, помечают, введите:
trigger = tr.Trigger
trigger = 'trigger'
cond = tr.Condition
cond = 'guard'
action = tr.ConditionAction
action = 'action();'
Существует два эквивалентных способа ввести многострочные метки для состояний и переходов. Например, предположим тот sA
указатель на состояние. Ввести многострочную метку с entry
и during
действия, вы можете:
Вызовите функцию MATLAB® sprintf
и используйте escape-последовательность \n
вставить символы новой строки:
str = sprintf('A\nen: action1();\ndu: action2();\nen,du: action3();');
sA.LabelString = str;
Введите конкатенированное текстовое выражение, которое использует целое число 10 в качестве ASCII, эквивалентного из символа новой строки:
str = ['A',10, ... 'en: action1();',10, ... 'du: action2();',10, ... 'en,du: action3();']; sA.LabelString = str;
Извлекать имя состояния, entry
действие и during
действие, заданное меткой состояния, введите:
name = sA.Name
name = 'A'
entry = sA.EntryAction
entry = ' action1(); action3();'
during = sA.DuringAction
during = ' action2(); action3();'