Main Content

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

AUTOSAR Adaptive サービス通信のモデル化

AUTOSAR Adaptive Platform は、Adaptive ソフトウェア コンポーネント間の、サービス指向のイベントベースの通信を定義します。それぞれの Adaptive ソフトウェア コンポーネントはサービスを提供する側でも消費する側でもあり、相互接続されたコンポーネントはサービス イベントを送受信します。コンポーネントには次が含まれます。

  • 受信したイベントに応答してタスクを実行するアルゴリズム。

  • イベントが送受信される要求側ポートおよび提供側ポート。

  • イベントベースの通信のフレームワークを提供するサービス インターフェイス。

Simulink® の Adaptive サービス通信をモデル化するために次のことができます。

  • AUTOSAR の要求側ポートと提供側ポート、サービス インターフェイス、サービス インターフェイス イベント、および C++ 名前空間を作成する。

  • ルートレベルの入力端子と出力端子を作成し、AUTOSAR の要求側ポートと提供側ポートおよびサービス インターフェイス イベントにマッピングする。

Simulink Coder™ および Embedded Coder® ソフトウェアがある場合は、C++ コードと AUTOSAR サービス通信の ARXML 記述を生成できます。

Simulink で Adaptive サービス通信を実装するには次のようにします。

  1. AUTOSAR Adaptive Platform 用に構成されたモデルを開きます。この例の表示ではモデル autosar_LaneGuidance を使用します。

  2. AUTOSAR ディクショナリを開き、[Service Interfaces] を選択します。AUTOSAR サービス インターフェイスを作成するには [追加] ボタン をクリックします。[Add Interfaces] ダイアログ ボックスで、インターフェイス名と関連付けられるイベントの数を指定します。

  3. [Service Interfaces] ノードを展開します。新しいサービス インターフェイスを展開し [Events] を選択します。このイベント ビューで、各サービス イベントを選択してその属性を構成します。

  4. [Namespaces] を選択します。名前空間のビューでは、各サービス インターフェイスに一意の名前空間を定義できます。コード ジェネレーターがインターフェイス用の C++ コードを生成するとき、定義された名前空間が使用されます。名前空間の仕様を変更または構築するには、名前空間要素を選択し、名前の値を編集します。たとえば、この名前空間表示は、サービス インターフェイス ProvidedInterface についての名前空間 company::chassis::provided を定義します。

  5. AUTOSAR ディクショナリの最上位レベルで [AdaptiveApplications] を展開し、Adaptive ソフトウェア コンポーネントを展開します。[RequiredPorts] ビューと [ProvidedPorts] ビューを使用して、新しいサービス インターフェイスに関連付ける AUTOSAR 要求側ポートと提供側ポートを追加します。新しい各サービス端子ごとに、作成したサービス インターフェイスを選択します。

  6. オプションで、AUTOSAR ポートの Adaptive サービス インスタンスの識別を構成できます。[RequiredPorts] ビューまたは [ProvidedPorts] ビューで、ポートを選択し、その [Manifest attributes] を表示します。XML オプションで選択したサービス インスタンスの形式に基づいて、[Instance Specifier] または [Instance Identifier] の値を調べます。値を入力することも、既存の値を受け入れることもできます。詳細については、AUTOSAR Adaptive サービス インスタンス識別の構成を参照してください。

  7. オプションで、AUTOSAR の要求側ポートについて、サービス検出を設定できます。これは、Adaptive アプリケーションによるダイナミクス サービスの検索方法に影響します。[RequiredPorts] ビューで、ポートを選択し、その [Service Discovery Mode] を設定します。[OneTime] または [DynamicDiscovery] を選択します。詳細については、AUTOSAR Adaptive サービス検出モードの構成を参照してください。

  8. モデル ウィンドウで、AUTOSAR Adaptive サービス ポートをモデル化するため、ルートレベルの入力端子と出力端子を作成します。

  9. コード マッピング エディターを開きます。[Inports] タブと [Outports] タブを使用して、Simulink の入力端子と出力端子を AUTOSAR 要求側ポートと提供側ポートにマッピングします。入力端子または出力端子ごとに、AUTOSAR 要求側ポートまたは提供側ポート、および AUTOSAR サービス インターフェイス イベントを選択します。

  10. オプションで、AUTOSAR の提供側ポートから送信されたサービス データのメモリ割り当てを構成できます。[Outports] タブで端子を選択し、コード属性 AllocateMemory を使用してメモリ割り当てを構成します。参照によってイベント データを送信する (既定) か、ara::com で割り当てられたメモリで送信するかを指定します。イベント データを ara::com で割り当てられたメモリで送信するには、値 [true] を選択します。イベント データを参照で送信するには [false] を選択します。詳細については、AUTOSAR Adaptive サービス データのメモリ割り当ての構成を参照してください。

  11. 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');

関連する例

詳細