string データを含むメッセージの送信
この例では、string データを運ぶメッセージを送信することによって通信する Stateflow® チャートのペアの設定方法について説明します。詳細については、メッセージ送信による Stateflow チャートとの通信を参照してください。
このモデルには 2 つの Stateflow チャートが含まれています。シミュレーション中に、Emitter
チャートは入力 string key
を String Constant ブロックから読み取り、メッセージを Receiver
チャートに送信します。メッセージ データは入力 string key
で構成されています。Receiver
チャートは、この string を定数キーワードと比較して、アクセスの許可または拒否を示す出力 string を返します。
Emitter チャート
Emitter
チャートは、単一のステートで構成されています。このステートは、アクティブになると、出力メッセージ M
のデータを入力値 key
に設定し、このメッセージを Receiver
チャートに送信します。
このチャートでは、key
の型は Inherit: Same as Simulink
で、M
の型は string
です。
Receiver チャート
Receiver
チャートは、2 つのステートが遷移によって結合された構成です。入力メッセージ M
は遷移をガードします。メッセージが存在し、そのデータ値が定数の string lock に等しい場合、ステート アクティビティはステート Off
からステート On
に遷移します。チャートは string 値 "Access Granted"
を出力します。メッセージが存在しない場合や、データ値が lock
に等しくない場合は、チャートは遷移を行わず、出力値は "Access Denied"
となります。
このチャートでは、M
の型は Inherit: Same as Simulink
で、lock
と sout
の型は string
です。定数の string lock
にはシークレット パスワードが含まれており、初期値は "Open Sesame"
に設定されています。lock の値は、[プロパティ インスペクター] の [値] フィールドで変更できます。
シミュレーション結果の表示
シミュレーション中に、モデルは String Constant ブロックで入力したパスワードに応答します。
"Abracadabra"
などの誤ったパスワードを入力すると、モデルは出力 string"Access Denied"
を表示します。
正しいパスワード (この場合は
"Open Sesame"
) を入力すると、モデルは出力 string"Access Granted"
を表示します。