Main Content

AUTOSAR Adaptive サービス インスタンス識別の構成

AUTOSAR Adaptive コンポーネント内のサービス ポートのサービス インスタンス識別を構成できます。Adaptive ソフトウェア コンポーネント モデルをビルドすると、次のようになります。

  • エクスポートされた ARXML ファイルからサービスへのインスタンス マッピングについて記述したサービス インスタンス マニフェスト ファイルが含まれている。

  • 生成された C++ コードは、ara::com 関数呼び出しで構成されたサービス インスタンス情報を使用する。

サービス インスタンス識別を構成するには、次のようにします。

  1. AUTOSAR ディクショナリを開き、[XML オプション] を選択します。XML オプション [次を使用したサービス インスタンスの識別] を、サービス インスタンス情報を生成する形式を示すように設定します。[InstanceIdentifier] または [InstanceSpecifier] を選択します。選択した形式は、C++ コード ファイルのサービス インスタンスを識別するために使用されます。

    AUTOSAR Dictionary shows XML option "Identify Service Instance Using" specifying Instance Identifier.

  2. ディクショナリの要求側ポートおよび提供側ポートのビューに移動します。

  3. サービス インスタンスを識別するために [インスタンス指定子] を選択した場合、ポートの [インスタンス指定子] は自動で生成されます。

  4. サービス インスタンスを識別するために [インスタンス識別子] を選択した場合、AUTOSAR ディクショナリでポートの [インスタンス識別子] を調べます。値を入力することも、既存の値を受け入れることもできます。

モデルをビルドすると、サービス インスタンス マニフェスト ファイル model_ServiceInstanceManifest.arxml が生成されます。マニフェスト ファイルには、サービス インターフェイスの展開、サービス インスタンス、および Adaptive コンポーネントのサービス インスタンスからポートへのマッピングが記述されます。

生成された C++ コードで、ara::com の関数呼び出しは、構成されたサービス インスタンス情報を使用します。たとえば、[InstanceIdentifier] 形式を選択し、要求側ポートについて [インスタンス識別子] を 1 を設定した場合、生成された関数呼び出しはその構成を使用します。

// Model initialize function
void autosar_LaneGuidanceModelClass::initialize()
{
  {
    ara::com::ServiceHandleContainer< company::chassis::required::proxy::
      RequiredInterfaceProxy::HandleType > handles;
    ...
    handles = company::chassis::required::proxy::RequiredInterfaceProxy::
      FindService(ara::com::InstanceIdentifier(ara::core::StringView("1")));
    
...

関連する例

詳細