Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

string データを含むメッセージの送信

この例では、string データを運ぶメッセージを送信することによって通信する Stateflow® チャートのペアの設定方法について説明します。詳細については、メッセージ送信による Stateflow チャートとの通信を参照してください。

このモデルには、C をアクション言語として使用する 2 つのチャートが含まれています。シミュレーション中に、Emitter チャートは入力 string keyString Constant ブロックから読み取り、メッセージを Receiver チャートに送信します。メッセージ データは入力 string key で構成されています。Receiver チャートは、この string を定数キーワードと比較して、アクセスを許可または拒否する出力 string を返します。

Emitter チャート

Emitter チャートは、単一のステート A で構成されています。このステートは、アクティブになると、メッセージ M のデータを入力値 key に設定し、このメッセージを Receiver チャートに送信します。

次の表は、チャート内のシンボルのスコープと型を示しています。

シンボルスコープ
key入力データInherit: Same as Simulink
M出力メッセージstring

Receiver チャート

このチャートは、2 つのステートが遷移によって結合された構成です。入力メッセージ M は遷移をガードします。メッセージが存在し、そのデータ値が定数の string lock に等しい場合、ステート アクティビティは Off から On に遷移します。チャートは string 値 'Access Granted' を出力します。メッセージが存在しない場合や、データ値が lock に等しくない場合は、チャートは遷移を行わず、出力値は 'Access Denied' となります。

次の表は、チャート内のシンボルのスコープと型を示しています。

シンボルスコープ
M入力メッセージInherit: Same as Simulink
lock定数データstring
sout出力データstring

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

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

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

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

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

参考

関連するトピック