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 パッケージを構成することができます。
アプリケーション データ型
ソフトウェアの基本データ型
データ型のマッピング セット
定数と値
物理データの制約 (アプリケーションのデータ型またはデータ プロトタイプによって参照される)
システム定数
ソフトウェアのアドレス メソッド
モード宣言グループ
計算方法
単位と単位グループ
ソフトウェア レコード レイアウト (カテゴリが
CURVE、MAP、CUBOID、または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 オプション] が表示されます。

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

[追加パッケージ] セクションを使用して、追加パッケージのパス フィールドに入力することも、空白のままにすることもできます。パッケージ フィールドを空白のままにし、モデルにそのカテゴリのパッケージ化可能な要素が含まれている場合、ARXML エクスポーターは内部ルールを使用してパッケージ パスを計算します。内部ルールのアプリケーションは以前のリリースと下位互換性があります。XML オプションのパッケージング プロパティとそのルールに基づいた既定のパッケージのパスを次の表に示します。
| プロパティ名 | 内部ルールに基づくパッケージのパス |
|---|---|
InternalBehaviorQualifiedName | /Components/InternalBehaviors/ |
ImplementationQualifiedName | /Components/SwcImplementations/ |
ComponentQualifiedName | /Components/(ダイアログ ボックスには省略名を除いたコンポーネントのパスが表示されます。) |
DataTypePackage |
メモ
|
InterfacePackage | /Interfaces |
PlatformDataTypePackage |
|
ApplicationDataTypePackage |
メモ
|
SwBaseTypePackage |
メモ
|
DataTypeMappingPackage | |
ConstantSpecificationPackage | |
DataConstraintPackage | |
SystemConstantPackage | |
SwAddressMethodPackage | |
ModeDeclarationGroupPackage | |
CompuMethodPackage | |
UnitPackage | |
SwRecordLayoutPackage | |
InternalDataConstraintPackage | |
パッケージング プロパティをプログラムで設定するには、次のような 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 パッケージを設定およびエクスポートする方法を示します。
AUTOSAR プラットフォーム用に構成された AUTOSAR ソフトウェア コンポーネントのモデルを開きます。この例ではモデル例
autosar_swc_expfcnsを使用します。openExample("autosar_swc_expfcns");AUTOSAR ディクショナリを開き、[XML オプション] を選択します。AUTOSAR パッケージの一部のパラメーターの初期設定を次に示します。

この例では、[エクスポートされた XML ファイルのパッケージ化] が単一の統合された ARXML ファイルを生成する
[単一のファイル]に設定されています。複数のモジュラー ARXML ファイルを生成する場合、この設定を[モジュラー]に変更します。モデルが ARXML ファイルにエクスポートする 1 つ以上の AUTOSAR 要素のためのパッケージを設定します。各パッケージに対して、AR-PACKAGE 構造内での場所を定義するパスを入力します。[適用] をクリックします。
この例は、複数の AUTOSAR の定数仕様をエクスポートします。この例では、[ConstantSpecification パッケージ] パラメーターを
/pkg/dt/Groundから/pkg/misc/MyGroundに変更します。
モデルのコードを生成して ARXML をエクスポートします。
生成されたファイル
を開きます ([エクスポートされた XML ファイルのパッケージ化] をmodelname.arxml[モジュラー]に設定した場合、生成されたファイルを開きます)。modelname_datatype.arxml構成したパッケージの 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 構造を保持します。
たとえば、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>