このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
AUTOSAR Adaptive サービス通信のモデル化
AUTOSAR Adaptive Platform は、Adaptive ソフトウェア コンポーネント間の、サービス指向のイベントベースの通信を定義します。それぞれの Adaptive ソフトウェア コンポーネントはサービスを提供する側でも消費する側でもあり、相互接続されたコンポーネントはサービス イベントを送受信します。コンポーネントには次が含まれます。
受信したイベントに応答してタスクを実行するアルゴリズム。
イベントが送受信される要求側ポートおよび提供側ポート。
イベントベースの通信のフレームワークを提供するサービス インターフェイス。
Simulink® の Adaptive サービス通信をモデル化するために次のことができます。
AUTOSAR の要求側ポートと提供側ポート、サービス インターフェイス、サービス インターフェイス イベント、および C++ 名前空間を作成する。
ルートレベルの入力端子と出力端子を作成し、AUTOSAR の要求側ポートと提供側ポートおよびサービス インターフェイス イベントにマッピングする。
Simulink Coder™ および Embedded Coder® ソフトウェアがある場合は、C++ コードと AUTOSAR サービス通信の ARXML 記述を生成できます。
Simulink で Adaptive サービス通信を実装するには次のようにします。
AUTOSAR Adaptive Platform 用に構成されたモデルを開きます。この例の表示ではモデル
autosar_LaneGuidance
を使用します。AUTOSAR ディクショナリを開き、[Service Interfaces] を選択します。AUTOSAR サービス インターフェイスを作成するには [追加] ボタン
をクリックします。[Add Interfaces] ダイアログ ボックスで、インターフェイス名と関連付けられるイベントの数を指定します。
[Service Interfaces] ノードを展開します。新しいサービス インターフェイスを展開し [Events] を選択します。このイベント ビューで、各サービス イベントを選択してその属性を構成します。
[Namespaces] を選択します。名前空間のビューでは、各サービス インターフェイスに一意の名前空間を定義できます。コード ジェネレーターがインターフェイス用の C++ コードを生成するとき、定義された名前空間が使用されます。名前空間の仕様を変更または構築するには、名前空間要素を選択し、名前の値を編集します。たとえば、この名前空間表示は、サービス インターフェイス
ProvidedInterface
についての名前空間company::chassis::provided
を定義します。AUTOSAR ディクショナリの最上位レベルで [AdaptiveApplications] を展開し、Adaptive ソフトウェア コンポーネントを展開します。[RequiredPorts] ビューと [ProvidedPorts] ビューを使用して、新しいサービス インターフェイスに関連付ける AUTOSAR 要求側ポートと提供側ポートを追加します。新しい各サービス端子ごとに、作成したサービス インターフェイスを選択します。
オプションで、AUTOSAR ポートの Adaptive サービス インスタンスの識別を構成できます。[RequiredPorts] ビューまたは [ProvidedPorts] ビューで、ポートを選択し、その [Manifest attributes] を表示します。XML オプションで選択したサービス インスタンスの形式に基づいて、[Instance Specifier] または [Instance Identifier] の値を調べます。値を入力することも、既存の値を受け入れることもできます。詳細については、AUTOSAR Adaptive サービス インスタンス識別の構成を参照してください。
オプションで、AUTOSAR の要求側ポートについて、サービス検出を設定できます。これは、Adaptive アプリケーションによるダイナミクス サービスの検索方法に影響します。[RequiredPorts] ビューで、ポートを選択し、その [Service Discovery Mode] を設定します。
[OneTime]
または[DynamicDiscovery]
を選択します。詳細については、AUTOSAR Adaptive サービス検出モードの構成を参照してください。モデル ウィンドウで、AUTOSAR Adaptive サービス ポートをモデル化するため、ルートレベルの入力端子と出力端子を作成します。
コード マッピング エディターを開きます。[Inports] タブと [Outports] タブを使用して、Simulink の入力端子と出力端子を AUTOSAR 要求側ポートと提供側ポートにマッピングします。入力端子または出力端子ごとに、AUTOSAR 要求側ポートまたは提供側ポート、および AUTOSAR サービス インターフェイス イベントを選択します。
オプションで、AUTOSAR の提供側ポートから送信されたサービス データのメモリ割り当てを構成できます。[Outports] タブで端子を選択し、コード属性
AllocateMemory
を使用してメモリ割り当てを構成します。参照によってイベント データを送信する (既定) か、ara::com
で割り当てられたメモリで送信するかを指定します。イベント データをara::com
で割り当てられたメモリで送信するには、値[true]
を選択します。イベント データを参照で送信するには[false]
を選択します。詳細については、AUTOSAR Adaptive サービス データのメモリ割り当ての構成を参照してください。Adaptive コンポーネント モデルの構成を検証した後、AUTOSAR サービス通信用のコードをシミュレーションまたは生成できます。
AUTOSAR Adaptive サービス通信をプログラムで構成するには、AUTOSAR プロパティとマッピング関数を使用します。たとえば、次の MATLAB® コードは、AUTOSAR サービス インターフェイス、イベント、オープン モデルへの要求側ポートを追加します。次に、Simulink 入力端子を AUTOSAR 要求側ポートにマッピングします。
hModel = 'autosar_LaneGuidance'; addpath(fullfile(matlabroot,'/examples/autosarblockset/main')); open_system(hModel); % Add AUTOSAR service interface mySvcInterface with event mySvcEvent arProps = autosar.api.getAUTOSARProperties(hModel); addPackageableElement(arProps,'ServiceInterface',... '/LaneGuidance_pkg/LaneGuidance_if','mySvcInterface'); add(arProps,'mySvcInterface','Events','mySvcEvent'); % Add AUTOSAR required port myRPort, associated with mySvcInterface add(arProps,'LaneGuidance','RequiredPorts','myRPort',... 'Interface','mySvcInterface'); % Map Simulink inport to AUTOSAR port/event pair myRPort and mySvcEvent slMap = autosar.api.getSimulinkMapping(hModel); mapInport(slMap,'rightCarInBlindSpot','myRPort','mySvcEvent');