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/ |
ImplementationQualifiedName | /Components/SwcImplementations/ |
ComponentQualifiedName | /Components/ (ダイアログ ボックスには省略名を除いたコンポーネントのパスが表示されます。) |
DataTypePackage | /DataTypes (データ型のパッケージ化は、AUTOSAR プラットフォーム型のプロパティ設定の影響を受けます。詳細については、AUTOSAR プラットフォーム型を参照してください。) メモ
|
InterfacePackage | /Interfaces |
ApplicationDataTypePackage |
メモ
|
SwBaseTypePackage |
(SW 基本データ型のパッケージ化は、AUTOSAR プラットフォーム型のプロパティ設定の影響を受けます。詳細については、AUTOSAR プラットフォーム型を参照してください。) |
DataTypeMappingPackage |
|
ConstantSpecificationPackage |
|
DataConstraintPackage |
|
SystemConstantPackage |
|
SwAddressMethodPackage |
|
ModeDeclarationGroupPackage |
|
CompuMethodPackage |
|
UnitPackage |
|
SwRecordLayoutPackage |
|
InternalDataConstraintPackage |
|
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 パッケージを設定およびエクスポートする方法を示します。
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
に変更します。モデルのコードを生成します。
生成されたファイル
を開きます ([エクスポートされた 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 構造を保持します。
次の 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>
関連する例
- Simulink への AUTOSAR XML 記述のインポート
- AUTOSAR Adaptive ソフトウェア記述のインポート
- コンポーネント、インターフェイス、CompuMethod、または SwAddrMethod の AUTOSAR パッケージの構成
- AUTOSAR XML オプションの設定
- AUTOSAR Adaptive XML オプションの設定
- AUTOSAR XML エクスポートの設定
- AUTOSAR コード生成の構成
- AUTOSAR Adaptive コード生成の構成