メインコンテンツ

AUTOSAR パッケージの構成

Simulink® では、Embedded Coder® から AUTOSAR XML (ARXML) ファイルにエクスポートされる、AUTOSAR 規格で定義されている階層型の AUTOSAR パッケージ構造を変更できます。

AUTOSAR パッケージ (AR-PACKAGE) 構造

AUTOSAR 規格は AUTOSAR パッケージ (AR-PACKAGE) を定義します。AR-PACKAGE には AUTOSAR 要素のグループが含まれ、階層的な AR-PACKAGE 構造に配置されています。AUTOSAR オーサリング ツール (AAT) または Simulink では、AR-PACKAGE 構造を次のように構成することができます。

  • 組織的または標準化された AR-PACKAGE 構造に準拠します。

  • パッケージ内の要素の名前空間を確立します。

  • 要素の相対参照のための基礎を提供します。

ARXML インポーターは AR-PACKAGE とその要素およびパスを Simulink にインポートします。モデル コンフィギュレーションは、その後の ARXML ファイルへのエクスポートのためにパッケージを保持します。一般的に、AUTOSAR パッケージは、AUTOSAR オーサリング ツールと Simulink の間のラウンドトリップ全体で保持されます。

AUTOSAR コンポーネントが Simulink で作成された場合、コンポーネントの作成時に、AUTOSAR コンポーネント ビルダーは次のパッケージを含む最初の既定 AR-PACKAGE 構造を作成します。

  • ソフトウェア コンポーネント

  • データ型

  • ポート インターフェイス

  • 実装

たとえば、AUTOSAR プラットフォーム向けに構成した Simulink モデルを作成するには、具体的なワークフローについてAUTOSAR ソフトウェア コンポーネントの作成と設定を参照してください。モデルをビルドすると、その最初の AR-PACKAGE 構造は以下の図のようになります。

コンポーネントを作成した後に、AUTOSAR ディクショナリの [XML オプション] ビューを使用して、追加の AR-PACKAGE を指定できます 各 AR-PACKAGE は 1 つの AUTOSAR 要素カテゴリを表しています。コードの生成中、そのカテゴリの要素がモデルに存在する場合、ARXML エクスポーターはパッケージを生成します。各パッケージに対して、AR-PACKAGE 構造内での場所を定義するパスを指定します。

XML オプションの設定の詳細については、AUTOSAR XML オプションの設定またはAUTOSAR Adaptive XML オプションの設定を参照してください。

XML オプションを使用すると、次の AUTOSAR 要素カテゴリの AUTOSAR パッケージを構成することができます。

  • アプリケーション データ型

  • ソフトウェアの基本データ型

  • データ型のマッピング セット

  • 定数と値

  • 物理データの制約 (アプリケーションのデータ型またはデータ プロトタイプによって参照される)

  • システム定数

  • ソフトウェアのアドレス メソッド

  • モード宣言グループ

  • 計算方法

  • 単位と単位グループ

  • ソフトウェア レコード レイアウト (カテゴリが CURVEMAPCUBOID、または COM_AXIS であるアプリケーション データ型の場合)

  • 内部データ制約 (実装データ型によって参照される)

メモ

  • XML オプション内で定義するパッケージの場合、ARXML エクスポーターは、モデルにパッケージ カテゴリの要素が含まれている場合にのみパッケージを生成します。たとえば、モデルにソフトウェア アドレス メソッドの要素が含まれている場合にのみ、エクスポーターはソフトウェア アドレス メソッド パッケージを生成します。

  • リストされている要素 (アプリケーションのデータ型など) に個別のパッケージを指定できます。実装データ型はメイン データ型パッケージに集約されます。

AR-PACKAGE 構造は、XML オプションの [エクスポートされた XML ファイルのパッケージ化] を使用した ARXML エクスポート用の単一ファイルまたはモジュラー ファイルの分割の選択に応じて変化します。

AUTOSAR パッケージとパスの構成

AR-PACKAGE 構造を Simulink にインポートする場合、ARXML インポーターはインポートされた ARXML ファイルに定義されているパッケージ要素の関係とパッケージ パスを保持します。インポーターは AUTOSAR ディクショナリのコンポーネントのビューと [XML オプション] ビューのパッケージング プロパティも設定します。インポートされた ARXML 記述で AUTOSAR 要素がカテゴリに基づいてパッケージに割り当てられていない場合、インポーターはヒューリスティックな方法を使用して各パッケージに最適なカテゴリの関連付けを判断します。ただし、1 つのカテゴリに関連付けられるパッケージは 1 つのみです。

AUTOSAR 以外の Simulink モデルから始め、AUTOSAR コード生成用にモデルを設定するとします たとえば、AUTOSAR コンポーネント デザイナー アプリを開いて、AUTOSAR コード生成の設定用のクイック スタートを起動します。最初の既定の AR-PACKAGE 構造がソフトウェアで作成されます。コンポーネントの作成後、AUTOSAR ディクショナリのコンポーネントのビューには、コンポーネントのパッケージ パス、内部動作、および実装を含む [コンポーネントの XML オプション] が表示されます。

AUTOSAR Dictionary. Component mySWC is selected, exposing it's XML Options and package paths.

[XML オプション] ビューには、AUTOSAR データ型とインターフェイスのパッケージ、および追加のパッケージのパスが表示されます。

AUTOSAR Dictionary. XML Options is selected and the options are displayed.

[追加パッケージ] セクションを使用して、追加パッケージのパス フィールドに入力することも、空白のままにすることもできます。パッケージ フィールドを空白のままにし、モデルにそのカテゴリのパッケージ化可能な要素が含まれている場合、ARXML エクスポーターは内部ルールを使用してパッケージ パスを計算します。内部ルールのアプリケーションは以前のリリースと下位互換性があります。XML オプションのパッケージング プロパティとそのルールに基づいた既定のパッケージのパスを次の表に示します。

プロパティ名内部ルールに基づくパッケージのパス
InternalBehaviorQualifiedName/Components/InternalBehaviors/modelname_IB
ImplementationQualifiedName/Components/SwcImplementations/modelname_Impl
ComponentQualifiedName/Components/modelname
(ダイアログ ボックスには省略名を除いたコンポーネントのパスが表示されます。)
DataTypePackage

/DataTypes
(データ型のパッケージ化は、AUTOSAR プラットフォーム型のプロパティ設定の影響を受けます。詳細については、AUTOSAR プラットフォーム型を参照してください。)

メモ

DataTypePackage のパスは、次のパッケージのパスと異なっていなければなりません。

  • ApplicationDataTypePackage

  • PlatformDataTypePackage

  • SwBaseTypePackage

InterfacePackage/Interfaces
PlatformDataTypePackage

PlatformDataTypePackage のパスは DataTypePackage のパスと異なっていなければなりません。PlatformDataTypePackage のパスの指定方法の詳細については、AUTOSAR プラットフォーム型を参照してください。

ApplicationDataTypePackage

DataTypePackage/ApplDataTypes

メモ

ApplicaionDataTypePackage のパスは DataTypePackage のパスと異なっていなければなりません。

SwBaseTypePackage

DataTypePackage/SwBaseTypes
(ソフトウェア基本データ型のパッケージ化は、AUTOSAR プラットフォーム型のプロパティ設定の影響を受けます。詳細については、AUTOSAR プラットフォーム型を参照してください。)

メモ

SwBaseTypePackage のパスは DataTypePackage のパスと異なっていなければなりません。

DataTypeMappingPackageDataTypePackage/DataTypeMappings
ConstantSpecificationPackageDataTypePackage/Constants
DataConstraintPackageApplicationDataTypePackage/DataConstrs
SystemConstantPackageDataTypePackage/SystemConstants
SwAddressMethodPackageDataTypePackage/SwAddrMethods
ModeDeclarationGroupPackageDataTypePackage/ModeDeclarationGroups
CompuMethodPackageDataTypePackage/CompuMethods
UnitPackageDataTypePackage/Units
SwRecordLayoutPackageDataTypePackage/SwRecordLayouts
InternalDataConstraintPackageDataTypePackage/DataConstrs

パッケージング プロパティをプログラムで設定するには、次のような autosar.api.getAUTOSARProperties オブジェクトを使用します。

hModel = "autosar_swc_counter";
openExample(hModel);
arProps=autosar.api.getAUTOSARProperties(hModel);
set(arProps,"XmlOptions",ApplicationDataTypePackage="/Company/Powertrain/DataTypes/ADTs"));

get(arProps,"XmlOptions","ApplicationDataTypePackage")
ans =

    '/Company/Powertrain/DataTypes/ADTs'

XML オプションを構成するサンプル スクリプトについては、AUTOSAR XML オプションの設定を参照してください。AUTOSAR パッケージの構成およびエクスポートの例については、AUTOSAR パッケージのエクスポートを参照してください。

パッケージ パスの変更に影響を受ける AUTOSAR 要素の制御

AUTOSAR パッケージ パスを変更し、そのカテゴリのパッケージ化可能な要素が影響を受ける場合は、以下を実行できます。

  • 既存のパッケージから新しいパッケージに要素を移動する。

  • 要素を移動せずに新しいパッケージ パスを設定する。

たとえば、XML オプション [ConstantSpecification パッケージ] をパス値 /pkg/dt/Ground から /pkg/misc/MyGround に変更すると、次のダイアログ ボックスが開きます。

AUTOSAR 定数仕様要素を新しいパッケージに移動するには、[OK] をクリックします。要素を移動せずに新しいパッケージ パスを設定するには、[キャンセル] をクリックします。

パッケージ パスをプログラムで変更し、パッケージ化可能なカテゴリ要素が影響を受ける場合は、MoveElements の名前と値の引数を使用して要素の処理方法を指定できます。MoveElements の名前と値の引数は "All" (既定)、"None"、または "Alert" に設定できます。

  • "All" — 影響を受けるすべての要素を指定されたパッケージ パスに移動します。

  • "None" — パッケージ パスを指定したパッケージ パスに変更しますが、影響を受ける要素は指定したパッケージ パスに移動しません。

  • "Alert"[OK] ボタンと [キャンセル] ボタンをもつダイアログ ボックスが開きます。[OK] を選択すると影響を受けるすべての要素が指定されたパッケージ パスに移動され、[キャンセル] を選択するとパッケージ パスは変更されますが、要素は新しいパッケージ パスに移動されません。

たとえば、次のコードでは、既存の定数仕様要素を新しいパッケージに移動せずに新しい定数仕様パッケージを設定します。

hModel = "autosar_swc_expfcns";
openExample(hModel);
arProps = autosar.api.getAUTOSARProperties(hModel);
set(arProps,"XmlOptions",ConstantSpecificationPackage="/pkg/misc/MyGround",...
    MoveElements="None");

AUTOSAR パッケージのエクスポート

この例では、Simulink で作成された AUTOSAR ソフトウェア コンポーネントの AUTOSAR パッケージを設定およびエクスポートする方法を示します。

  1. AUTOSAR プラットフォーム用に構成された AUTOSAR ソフトウェア コンポーネントのモデルを開きます。この例ではモデル例 autosar_swc_expfcns を使用します。

    openExample("autosar_swc_expfcns");

  2. AUTOSAR ディクショナリを開き、[XML オプション] を選択します。AUTOSAR パッケージの一部のパラメーターの初期設定を次に示します。

    この例では、[エクスポートされた XML ファイルのパッケージ化] が単一の統合された ARXML ファイルを生成する [単一のファイル] に設定されています。複数のモジュラー ARXML ファイルを生成する場合、この設定を [モジュラー] に変更します。

  3. モデルが ARXML ファイルにエクスポートする 1 つ以上の AUTOSAR 要素のためのパッケージを設定します。各パッケージに対して、AR-PACKAGE 構造内での場所を定義するパスを入力します。[適用] をクリックします。

    この例は、複数の AUTOSAR の定数仕様をエクスポートします。この例では、[ConstantSpecification パッケージ] パラメーターを /pkg/dt/Ground から /pkg/misc/MyGround に変更します。

  4. モデルのコードを生成して ARXML をエクスポートします。

  5. 生成されたファイル modelname.arxml を開きます ([エクスポートされた XML ファイルのパッケージ化][モジュラー] に設定した場合、生成されたファイル modelname_datatype.arxml を開きます)。

  6. 構成したパッケージの XML コードを検索します (たとえば、テキスト AR-PACKAGE または要素名を使用)。このモデル例では、autosar_swc_expfcns.arxml をテキスト MyGround で検索すると、定数仕様パッケージとそれに対する参照が見つかります。

    ARXML file output. MyGround is highlighted in an AR-PACKAGE structure. The package path for the CONSTANT-SPECIFICATION is /pkg/misc/.

エクスポートされた ARXML ファイル内での AR-PACKAGE の場所

AUTOSAR パッケージ (AR-PACKAGE) への AUTOSAR 要素のグループ化は、AUTOSAR 構成 パラメーターの [エクスポートされた XML ファイルのパッケージ化] で制御される ARXML 出力ファイルのパッケージ化とは論理的に区別されます。[エクスポートされた XML ファイルのパッケージ化] を [Single file] または [Modular] のどちらに設定した場合でも、ARXML エクスポートは構成済みの AR-PACKAGE 構造を保持します。

たとえば、AUTOSAR パッケージのエクスポート の手順に従った後、次の AR-PACKAGE 構造を使用したモデル例 autosar_swc_expfcns を設定するとします。この構成では、定数仕様パッケージのパスを初期のモデル設定 /pkg/dt/Ground から /pkg/misc/myGround に変更しました。

この AR-PACKAGE 構造を単一のファイルにエクスポートする場合、エクスポートされた ARXML コードは構成済みの AR-PACKAGE 構造を保持します。単一の ARXML ファイルをエクスポートするには、AUTOSAR ディクショナリで XML オプション [エクスポートされた XML ファイルのパッケージ化][単一のファイル] に設定します。

autosar_swc_expfcns.arxml:

<AR-PACKAGES>
    <AR-PACKAGE>
        <SHORT-NAME>pkg</SHORT-NAME>
        ...
                <SHORT-NAME>swc</SHORT-NAME>
                ...
                <SHORT-NAME>if</SHORT-NAME>
                ...
                <SHORT-NAME>dt</SHORT-NAME>
                ...
                        <SHORT-NAME>SwBaseTypes</SHORT-NAME>
                     ...
                <SHORT-NAME>misc</SHORT-NAME>
                ...
                        <SHORT-NAME>MyGround</SHORT-NAME>
                        ...
                <SHORT-NAME>imp</SHORT-NAME>
                ...
    </AR-PACKAGE>
</AR-PACKAGES>

同じ AR-PACKAGE 構造を複数のファイルにエクスポートする場合 (XML オプション [エクスポートされた XML ファイルのパッケージ化][モジュラー] に設定されている)、エクスポートされた ARXML コードは複数のファイルに分散されますが、構成済みの AR-PACKAGE 構造を保持します。

エクスポーターでは、パッケージ パスではなく、要素カテゴリに基づいてパッケージ化可能な AUTOSAR 要素が ARXML ファイルにマッピングされます。たとえば、データ型指向の ConstantSpecification パッケージ /pkg/misc/myGround は、エクスポーターによりデータ型 ARXML ファイル autosar_swc_expfcns_datatype.arxml にマッピングされます。

autosar_swc_expfcns_component.arxml:

<AR-PACKAGES>
    <AR-PACKAGE>
        <SHORT-NAME>pkg</SHORT-NAME>
        ...
                <SHORT-NAME>swc</SHORT-NAME>
                ...
    </AR-PACKAGE>
</AR-PACKAGES>

autosar_swc_expfcns_datatype.arxml:

<AR-PACKAGES>
    <AR-PACKAGE>
        <SHORT-NAME>pkg</SHORT-NAME>
        ...
                <SHORT-NAME>dt</SHORT-NAME>
                ...
                        <SHORT-NAME>SwBaseTypes</SHORT-NAME>
                        ...
                <SHORT-NAME>misc</SHORT-NAME>
                ...
                        <SHORT-NAME>MyGround</SHORT-NAME>
                        ...   
    </AR-PACKAGE>
</AR-PACKAGES>

autosar_swc_expfcns_implementation.arxml:

<AR-PACKAGES>
    <AR-PACKAGE>
        <SHORT-NAME>pkg</SHORT-NAME>
        ...
                <SHORT-NAME>imp</SHORT-NAME>
                ...
    </AR-PACKAGE>
</AR-PACKAGES>

autosar_swc_expfcns_interface.arxml:

<AR-PACKAGES>
    <AR-PACKAGE>
        <SHORT-NAME>pkg</SHORT-NAME>
        ...
                <SHORT-NAME>if</SHORT-NAME>
                ...
    </AR-PACKAGE>
</AR-PACKAGES>

参考

トピック