Main Content

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 で、locksout の型は string です。定数の string lock にはシークレット パスワードが含まれており、初期値は "Open Sesame" に設定されています。lock の値は、[プロパティ インスペクター][値] フィールドで変更できます。

シミュレーション結果の表示

シミュレーション中に、モデルは String Constant ブロックで入力したパスワードに応答します。

  • "Abracadabra" などの誤ったパスワードを入力すると、モデルは出力 string "Access Denied" を表示します。

  • 正しいパスワード (この場合は "Open Sesame") を入力すると、モデルは出力 string "Access Granted" を表示します。

参考

関連するトピック