メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

AUTOSAR Adaptive アプリケーション間でのメッセージ トリガーを使用したイベント通信

この例では、メッセージ トリガー モードでイベントを使用して相互に通信する 2 つの AUTOSAR Adaptive アプリケーションを展開する方法を示します。

AUTOSAR Blockset はデータにアクセスするためにポーリング モードとイベントドリブンのアプローチをサポートします。

イベントドリブンのアプローチは、あるイベントまたはアクションのトリガーの際に、アプリケーションがデータと応答を想定する場合に使用されます。イベントは定期的にトリガーされるわけではありません。イベントドリブンのアプローチでは、サービス メソッドへの反応が高速になりますが、コンテキスト切り替えレートが高くなり、非確定的となる可能性があります。イベントドリブンのアプローチは、リアルタイムの要件がない場合により多く使用されます。Simulink では、エクスポート関数スタイルでのみイベントドリブンの動作をモデル化できます。

送信側アプリケーションは、サンプル時間に基づいて定期的に正弦波のデータを送信します。受信側アプリケーションは、メッセージ トリガーが呼び出されるたびにもう一方のアプリケーションからのメッセージの可用性をチェックし、利用可能なメッセージがあれば受信します。

モデルを開く

この例では、AUTOSAR Adaptive モデル adaptive_msg_sender および adaptive_msg_event_driven_receiver を使用します。

adaptive_msg_sender model は、正弦波のデータを送信し、ara log ブロックで ara::log メッセージを使用してデータをログに記録します。

open_system('adaptive_msg_sender');

sender_model.png

adaptive_msg_event_driven_receiver model は、正弦波のデータを受信し、ara log ブロックで ara::log メッセージを使用して受信データをログに記録します。

open_system('adaptive_msg_event_driven_receiver');

eventdrivenmodel.png

モデルの展開

アプリケーションを展開すると、"Linux ランタイム マネージャー" アプリの [ターゲット ツリー] ペインに表示されます。

eventdriven_ui1.png

  • adaptive_msg_sender アプリケーションを選択し、[Linux ターゲット][ターゲットで実行][アプリケーションを起動] をクリックしてターゲットでアプリケーションを起動します。

  • adaptive_msg_event_driven_receiver アプリケーションを選択し、[Linux ターゲット][ターゲットで実行][アプリケーションを起動] をクリックしてターゲットでアプリケーションを起動します。

展開したアプリケーションで生成された ara::log メッセージがアプリの [ログ ビューアー] ペインに表示されます。これは、アプリケーションが通信していることを示しています。

eventdriven_ui2.png

  • adaptive_msg_sender アプリケーションを停止するには、そのアプリケーションを選択し、[Linux ターゲット][ターゲットで実行][アプリケーションを停止] をクリックします。

  • adaptive_msg_event_driven_receiver アプリケーションを停止するには、そのアプリケーションを選択し、[Linux ターゲット][ターゲットで実行][アプリケーションを停止] をクリックします。

参考

(Embedded Coder)

トピック