Main Content

AUTOSAR パッケージの構成

Simulink® では、Embedded Coder® から ARXML コードにエクスポートされる、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 パッケージは、AAT と Simulink の間のラウンドトリップ全体で保持されます。

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

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

  • データ型

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

  • 実装

たとえば、CounterModel などの簡単な Simulink モデルから始めるとします。名前を mySWC に変更します。AUTOSAR コード生成用にモデルを設定します (たとえば、Embedded Coder クイック スタートを開いて AUTOSAR コード生成を選択します)。モデルをビルドすると、その最初の AR-PACKAGE 構造は以下の図のようになります。

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

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

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

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

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

  • 定数と値

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

  • システム定数

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

  • モード宣言グループ

  • 計算方法

  • 単位と単位グループ

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

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

メモ

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

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

AR-PACKAGE 構造は、XML オプションの [エクスポートされた XML ファイルのパッケージ化] を使用して ARXML エクスポート用に選択できる、単一ファイルまたはモジュラー ファイルの分割とは論理的に区別されます。AUTOSAR パッケージのエクスポートの詳細については、エクスポートされた ARXML ファイル内での AR-PACKAGE の場所を参照してください。

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

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

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

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

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

プロパティ名内部ルールに基づくパッケージのパス
InternalBehaviorQualifiedName/Components/InternalBehaviors/modelname_IB
ImplementationQualifiedName/Components/SwcImplementations/modelname_Impl
ComponentQualifiedName/Components/modelname
(ダイアログ ボックスには省略名を除いたコンポーネントのパスが表示されます。)
DataTypePackage/DataTypes
(データ型のパッケージ化は、AUTOSAR プラットフォーム型のプロパティ設定の影響を受けます。詳細については、AUTOSAR プラットフォーム型を参照してください。)

メモ

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

InterfacePackage/Interfaces
ApplicationDataTypePackageDataTypePackage/ApplDataTypes

メモ

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

SwBaseTypePackageDataTypePackage/SwBaseTypes
(SW 基本データ型のパッケージ化は、AUTOSAR プラットフォーム型のプロパティ設定の影響を受けます。詳細については、AUTOSAR プラットフォーム型を参照してください。)
DataTypeMappingPackageDataTypePackage/DataTypeMappings
ConstantSpecificationPackageDataTypePackage/Constants
DataConstraintPackageApplicationDataTypePackage/DataConstrs
SystemConstantPackageDataTypePackage/SystemConstants
SwAddressMethodPackageDataTypePackage/SwAddrMethods
ModeDeclarationGroupPackageDataTypePackage/ModeDeclarationGroups
CompuMethodPackageDataTypePackage/CompuMethods
UnitPackageDataTypePackage/Units
SwRecordLayoutPackageDataTypePackage/SwRecordLayouts
InternalDataConstraintPackageDataTypePackage/DataConstrs

MATLAB® コマンド ウィンドウまたはスクリプトでパッケージング プロパティを設定するには、次のように AUTOSAR プロパティの set 関数呼び出しを使用します。

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

サンプル スクリプトについては、AUTOSAR XML オプションの設定を参照してください。

AUTOSAR パッケージの構成およびエクスポートの例は、AUTOSAR パッケージのエクスポートを参照してください。

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

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

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

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

AUTOSAR ディクショナリでパッケージ パスを変更した場合およびそのカテゴリのパッケージ化可能な要素が影響を受ける場合は、ダイアログ ボックスが開きます。たとえば、XML オプション [ConstantSpecification パッケージ] をパス値 /pkg/dt/Ground から /pkg/misc/MyGround に変更すると、次のダイアログ ボックスが開きます。

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

パッケージ パスをプログラムで変更する場合は、MoveElements プロパティを使用して影響を受ける要素の処理を指定できます。プロパティは All (既定)、None または Alert に設定できます。Alert を指定した場合およびパッケージ可能な要素が影響を受ける場合、[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. モデルのコードを生成します。

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

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

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

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

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

この AR-PACKAGE 構造を単一のファイルにエクスポートする場合 ([エクスポートされた XML ファイルのパッケージ化][単一のファイル] に設定されている場合)、エクスポートされた ARXML コードは構成済みの AR-PACKAGE 構造を保持します。

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 ファイルのパッケージ化][モジュラー] に設定されている)、エクスポートされた 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>

関連する例

詳細