列挙データを使用した名前による値の参照
Stateflow® チャートの可読性を高めるには、"列挙データ" を使用します。列挙データでは以下が可能です。
値の限定セットを作成し、名前によってこれらの値を参照します。
関連する値を別個のデータ型にグループ化します。
定数の長いリストを定義しなくても済みます。
列挙データは Simulink® モデルの Stateflow でサポートされます。
列挙データの例
列挙データ型は、名前および基となる整数値で構成される "列挙値" の有限のコレクションです。たとえば、このチャートで列挙データを使用して、一連の色を参照します。
列挙データ output
は有限個の値に限定されます。これらの値を、Red
、Yellow
、および Green
の名前によって参照することができます。
列挙値 | 名前 | 整数値 |
---|---|---|
Red(0) | Red | 0 |
Yellow(1) | Yellow | 1 |
Green(2) | Green | 2 |
次の MATLAB® ファイルは、チャートによって参照される列挙データ型 BasicColors
を定義しています。
classdef BasicColors < Simulink.IntEnumType enumeration Red(0) Yellow(1) Green(2) end end
列挙データによる計算
列挙データ型は、その元となる整数値があっても、数値型としては機能しません。数学的計算で列挙値を直接使用することはできません。列挙データは、代入や比較に基づいてチャートの動作を制御するために使用できます。列挙データの代入や比較を行うには、次の表にリストされている操作を使用します。
例 | 説明 |
---|---|
|
|
| 比較、等しい。 |
| 比較、等しくない。 |
C をアクション言語として使用するチャートでは、列挙データをさまざまなデータ型と比較することができます。比較の前に、チャートは列挙データをその基となる整数値にキャストします。
MATLAB をアクション言語として使用するチャートは、列挙データをさまざまなデータ型と比較することができません。
列挙値の表記法
列挙値を参照するには、接頭辞付きまたは接頭辞なしの識別子を使用します。
接頭辞付きの識別子
Stateflow チャート内で列挙値を参照する際に名前の競合を防ぐため、Type
.Name
という形式の接頭辞付き識別子を使用できます。Type
は列挙データ型、Name
は列挙値の名前です。たとえば、列挙名 Red
を含む 3 つのデータ型 (Colors
、Temp
、および Code
) を定義するものとします。接頭辞付き表記法を使用すると、Colors.Red
を Temp.Red
および Code.Red
から区別することができます。
接頭辞なしの識別子
一意の列挙値を参照する際に識別子の長さを最小限にするには、接頭辞なしの列挙値名を使用できます。たとえば、列挙名 Red
がデータ型 Colors
のみに属するとします。その場合、接頭辞なしの識別子 Red
を使ってこの値を参照できます。
チャートで同一の列挙名を含むデータ型 (Colors.Red
や Temp.Red
など) を使用する場合は、名前の競合を防ぐために接頭辞付きの識別子を使用してください。
列挙データを使用する場所
列挙データは Stateflow 階層の次のレベルで使用します。
チャート
サブチャート
ステート
列挙データは以下の引数として使用します。
ステート アクション
条件アクションと遷移アクション
ベクトルと行列のインデックス
MATLAB 関数
グラフィカル関数
Simulink 関数
Truth Table ブロックと真理値表関数
Simulink Coder™ がインストールされている場合は、列挙データをシミュレーションとコード生成に使用できます。
関連するトピック
- 列挙データ型の定義
- チャートへの列挙値の代入
- 列挙データを使用する場合のベスト プラクティス
- Simulink 列挙型 (Simulink)
- Simulink モデルでの列挙型データの使用 (Simulink)