AUTOSAR Adaptive サービス インスタンス識別の構成
AUTOSAR Adaptive コンポーネント内のサービス ポートのサービス インスタンス識別を構成できます。Adaptive ソフトウェア コンポーネント モデルをビルドすると、次のようになります。
エクスポートされた ARXML ファイルからサービスへのインスタンス マッピングについて記述したサービス インスタンス マニフェスト ファイルが含まれている。
生成された C++ コードは、
ara::com
関数呼び出しで構成されたサービス インスタンス情報を使用する。
サービス インスタンス識別を構成するには、次のようにします。
AUTOSAR ディクショナリを開き、[XML オプション] を選択します。XML オプション [次を使用したサービス インスタンスの識別] を、サービス インスタンス情報を生成する形式を示すように設定します。
[InstanceIdentifier]
または[InstanceSpecifier]
を選択します。選択した形式は、C++ コード ファイルのサービス インスタンスを識別するために使用されます。ディクショナリの要求側ポートおよび提供側ポートのビューに移動します。
サービス インスタンスを識別するために [インスタンス指定子] を選択した場合、ポートの [インスタンス指定子] は自動で生成されます。
サービス インスタンスを識別するために [インスタンス識別子] を選択した場合、AUTOSAR ディクショナリでポートの [インスタンス識別子] を調べます。値を入力することも、既存の値を受け入れることもできます。
モデルをビルドすると、サービス インスタンス マニフェスト ファイル
が生成されます。マニフェスト ファイルには、サービス インターフェイスの展開、サービス インスタンス、および Adaptive コンポーネントのサービス インスタンスからポートへのマッピングが記述されます。model
_ServiceInstanceManifest.arxml
生成された 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"))); ...