Stateflow オブジェクトのプロパティの変更と関数の呼び出し
Stateflow® API オブジェクトには、Stateflow エディターで設定した値に対応するプロパティがあります。たとえば、エディターを使用してステートの位置を変更するには、ステートをクリックしてドラッグします。Stateflow API を使用してステートの位置を変更するには、対応する Stateflow.State
オブジェクトの Position
プロパティを変更します。
st.Position = [10 20 100 80];
さらに、オブジェクト関数は、Stateflow エディター内のアクションに対応するサービスを提供します。たとえば、エディターを使用して遷移の [プロパティ] ダイアログ ボックスを開くには、遷移を右クリックして [プロパティ] を選択します。Stateflow API では、対応する Stateflow.Transition
オブジェクトの関数 dialog
を呼び出してこのダイアログ ボックスを開きます。
dialog(tr);
オブジェクト関数の呼び出し
API オブジェクトの関数を呼び出すには、標準の関数呼び出し表記を使用します。たとえば、[チャート プロパティ] ダイアログ ボックスを開くには、対応する Stateflow.Chart
オブジェクト ch
の関数 dialog
を呼び出します。
dialog(ch)
ドット表記を使用したプロパティへのアクセス
API オブジェクトのプロパティにアクセスするには、ドット表記を使用します。たとえば、Stateflow.Chart
オブジェクト ch
の StateMachineType
プロパティの値を確認するには、次のように入力します。
ch.StateMachineType
同様に、チャートのアクション言語を変更するには、チャートの ActionLanguage
プロパティを変更します。
ch.ActionLanguage = "MATLAB";
API プロパティのサブプロパティにアクセスするために、ドット表記を使用する単一の式で複数のプロパティ名を入れ子にすることができます。たとえば、対応する Stateflow.Chart
オブジェクトのサブプロパティ Debug.Breakpoints.OnEntry
を変更することにより、チャート上で Entry ブレークポイントを設定できます。
ch.Debug.Breakpoints.OnEntry = true;
プロパティまたは関数が別の API オブジェクトを返す場合は、入れ子になったドット表記を使用して、2 番目のオブジェクトのプロパティと関数にアクセスすることもできます。たとえば、Stateflow.Chart
の Machine
プロパティは、対応するチャートを含む Stateflow.Machine
オブジェクトを返します。この Stateflow.Machine
オブジェクトの Name
プロパティにアクセスするには、次の式を入力します。
machineName = ch.Machine.Name;
同様に、関数 defaultTransitions
は、チャート内のデフォルト遷移に対応する Stateflow.Transition
オブジェクトの配列を返します。チャートにデフォルト遷移が 1 つだけ含まれている場合は、次のように入力してラベルを取得できます。
label = defaultTransitions(ch).LabelString;
チャートに複数のデフォルト遷移が含まれている場合は、まず配列を保存してから、配列インデックスを使用して各ラベルを取得する必要があります。
transitions = defaultTransitions(ch); label1 = transitions(1).LabelString; label2 = transitions(2).LabelString;
複数プロパティの値の取得と設定
関数 get
を呼び出すことにより、1 つの API オブジェクトの複数のプロパティに単一のコマンドでアクセスできます。たとえば、Stateflow.Chart
オブジェクト ch
の名前と説明を取得するには、次のように入力します。
chartInfo = get(ch,{"Name","Description"});
get
を使用して複数の API オブジェクトのプロパティにアクセスすることもできます。たとえば、次のコマンドは、配列 chartArray
内の Stateflow.Chart
オブジェクトの名前と説明を含む cell 配列を返します。
chartInfo = get(chartArray,{"Name","Description"});
同様に、関数 set
を呼び出すことにより、複数のプロパティの値を変更できます。たとえば、Stateflow.Chart
オブジェクト ch
の名前と説明を変更するには次のように入力します。
set(ch,{"Name","Description"},{"Rectifier","Half-wave rectifier."})
配列 chartArray
内の Stateflow.Chart
オブジェクトの名前と説明を設定するには、次のように入力します。
set(chartArray,{"Name","Description"},chartInfo)
chartInfo
は N
行 2 列の cell 配列とする必要があります。ここで N
は chartArray
内のチャート数と等価です。chartInfo
の 1 列目には新しいチャート名が含まれ、2 列目には新しい説明が含まれます。