Main Content

ステートと遷移のラベルのプログラムによる指定

Stateflow® API を使用するときは、LabelString プロパティに文字ベクトルを割り当てることにより、ステートと遷移のラベルを指定します。

ステートまたは遷移のラベルの一部を抽出するには、次の表に示す Stateflow.State オブジェクトと Stateflow.Transition オブジェクトのプロパティを使用します。

API オブジェクトプロパティ説明
Stateflow.StateDuringActionこのステートの during アクション内のテキスト。このプロパティは、Moore チャートではサポートされていません。
EntryActionこのステートの entry アクション内のテキスト。このプロパティは、Moore チャートではサポートされていません。
ExitActionこのステートの exit アクション内のテキスト。このプロパティは、Moore チャートではサポートされていません。
MooreActionこのステートのアクション内のテキスト。このプロパティは Moore チャートでのみサポートされています。詳細については、Moore チャートの設計ガイドラインを参照してください。
Nameこのステートの名前。
OnAction

このステートの on アクション内のテキストを、次の形式の cell 配列として解析したもの。

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

このプロパティは、Moore チャートではサポートされていません。

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();'

ステートへの複数行ラベルの入力

ステートおよび遷移に対し複数行のラベルを入力するには、2 つの等価な方法があります。たとえば、sA が、あるステートに対応する Stateflow.State オブジェクトであるとします。entry アクションと during アクションを含む複数行のラベルを入力するには、以下が可能です。

  • MATLAB® 関数 sprintf を呼び出し、エスケープ シーケンス \n を使用して改行文字を挿入する。

    str = sprintf("A\nen: action1();\ndu: action2();\nen,du: action3();");
    sA.LabelString = str;
  • 関数 newline を使用して改行文字を作成する、連結されたテキスト表現を入力する。

    str = "A" + newline + ...
        "en: action1();" + newline + ...
        "du: action2();" + newline + ...
        "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();'

参考

関数

オブジェクト

関連するトピック