Main Content

overflowed

メッセージ キューがオーバーフローするタイミングを判定する

説明

overflowed(message_name) は、既にいっぱいのキューに送信されたためにメッセージが失われたかどうかをチェックします。各タイム ステップで、チャートがキューのメッセージを追加または削除するときに、この演算子の値が設定されます。同じタイム ステップ内でメッセージを送信または取得する前に overflowed 演算子を使用することは無効です。overflowed 演算子を使用するには、シミュレーションとコード生成の両方でモデルを autosar.tlc ターゲットに設定し、入力端子または出力端子のメッセージが外部キューに接続されていることを確認します。

  • 入力メッセージ キューのオーバーフロー ステータスをチェックするには、まず 1 つのメッセージをキューから削除します。

  • 出力メッセージ キューのオーバーフロー ステータスをチェックするには、まず 1 つのメッセージをキューに追加します。

  • ローカル メッセージ キューのオーバーフロー ステータスをチェックするには、まず、キューに 1 つのメッセージを追加するか、キューから 1 つのメッセージを削除します。

すべて折りたたむ

入力キューまたはローカル キューにメッセージ M がないかをチェックします。メッセージが存在し、キューがオーバーフローしている場合は、遷移が発生します。

M[overflowed(M)]

入力キューまたはローカル キューにメッセージ M がないかをチェックします。メッセージが存在し、キューがオーバーフローしている場合は、x の値をインクリメントします。

on M:
if overflowed(M) == true
    x = x+1;
end

メッセージを送信してオーバーフローをチェックします。キューがオーバーフローしている場合は、x の値をインクリメントします。

entry:
M.data = 3;
send(M);
if overflowed(M) == true
    x = x+1;
end

ヒント

  • 既定では、メッセージ キューがオーバーフローすると、シミュレーションはエラーで停止します。実行時エラーを回避して、除外されたメッセージに対して overflowed 演算子が動的に反応できるようにするには、[Queue Overflow Diagnostic] プロパティの値を [Warning] または [None] に設定します。詳細については、キュー オーバーフローの診断 (Stateflow)を参照してください。

バージョン履歴

R2018b で導入