Задайте метки в состояниях и переходах программно

При использовании Stateflow® API задайте метки состояний и переходов путем присвоения вектора символов LabelString свойство.

Чтобы извлечь части состояния или метки перехода, используйте свойства Stateflow.State и Stateflow.Transition объекты перечислены в этой таблице.

Объект APIСвойствоОписание
Stateflow.StateDuringActionТекст в during действие в этом состоянии. Это свойство не поддерживается в графиках Мура.
EntryActionТекст в entry действие в этом состоянии. Это свойство не поддерживается в графиках Мура.
ExitActionТекст в exit действие в этом состоянии. Это свойство не поддерживается в графиках Мура.
MooreActionТекст в действии в этом состоянии. Это свойство поддерживается только в графиках Мура. Для получения дополнительной информации смотрите Правила проектирования для Графиков Мура.
NameИмя этого состояния.
OnAction

Текст в on действия в этом состоянии, проанализированном как массив ячеек этой формы:

{'trigger1','action1',...,'triggerN','actionN'}

Это свойство не поддерживается в графиках Мура.

Stateflow.TransitionConditionТекст в условии на этом переходе.
ConditionActionТекст в действии условия с этим переходом.
TransitionActionТекст в действии перехода с этим переходом.
TriggerТекст в триггере на этом переходе.

За исключением Name, все эти свойства только для чтения. Для получения дополнительной информации о синтаксисе для состояния и меток перехода, смотрите Метки состояния и Метки Перехода.

Введите метки в переходы

Предположим тот tr Stateflow.Transition объект, который соответствует переходу. Можно присвоить метку, которая задает триггер, условие и действие условия с этим переходом путем ввода:

tr.LabelString = 'trigger[guard]{action();}';

Transition with a trigger, a condition, and a condition action.

Чтобы извлечь триггер, условие и действие условия, заданное переходом, помечают, введите:

trigger = tr.Trigger
trigger =

    'trigger'
cond = tr.Condition
cond =

    'guard'
action = tr.ConditionAction
action =

    'action();'

Введите многострочные метки в состояния

Существует два эквивалентных способа ввести многострочные метки для состояний и переходов. Например, предположим тот sA Stateflow.State объект, который соответствует состоянию. Ввести многострочную метку с 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;

State with entry and during actions.

Извлекать имя состояния, entry действие и during действие, заданное меткой состояния, введите:

name = sA.Name
name =

    'A'
entry = sA.EntryAction
entry =

    ' action1();
      action3();'
during = sA.DuringAction
during =

    ' action2();
      action3();'

Смотрите также

Функции

Объекты

Похожие темы