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

При использовании 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 указатель на переход. Можно присвоить метку, которая задает триггер, условие и действие условия с этим переходом путем ввода:

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 указатель на состояние. Ввести многострочную метку с 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();'

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

Похожие темы