Main Content

AUTOSAR データ型のエクスポートの設定

AUTOSAR 規格では、基本データ型が実装データ型とアプリケーション データ型にマッピングされる、AUTOSAR データ型のアプローチを定義しています。アプリケーション データ型と実装データ型は、実際値の範囲、データ構造、物理セマンティクスなどのアプリケーションレベルの物理属性を、格納された整数の最小値と最大値やプリミティブ型の指定 (整数、論理値、実数など) などの実装レベルの属性と分離します。データ型のモデル化の詳細については、AUTOSAR データ型のモデル化を参照してください。

Simulink® で作成されたラウンドトリップのワークフローで AUTOSAR データ型がサポートされます。

  • AUTOSAR コンポーネントが Simulink で作成されている場合、AUTOSAR アプリケーション データ型、実装データ型および基本データ型が生成され、Simulink のデータ型に含まれている情報が保持されます。

  • MATLAB® 以外で作成された AUTOSAR コンポーネントが含まれるラウンドトリップ ワークフローでは、ARXML インポーターおよびエクスポーターによってデータ型の情報とインポートされた各 AUTOSAR データ型のマッピングが保持されます。

AUTOSAR データ型が Simulink で作成されている場合、データ型のエクスポートの一部を制御することができます。たとえば、アプリケーション データ型が生成されるタイミングの制御、AUTOSAR データ型マッピング セットにエクスポートされる AUTOSAR パッケージと省略名の指定、AUTOSAR 実装データ型に対する内部データ制約の ARXML エクスポートの強制実行を行えます。

アプリケーション データ型の生成の制御

AUTOSAR データ型が Simulink で生成される場合、既定では、ストレージ型をもつ固定小数点データ型と列挙データ型にのみ、アプリケーション基本データ型が生成されます。アプリケーション型を生成する既定の動作をオーバーライドする場合は、エクスポートされるそれぞれの AUTOSAR データ型に対して、実装型と基本データ型をもつアプリケーション型が生成されるように ARXML エクスポーターを構成できます。XML オプション パラメーター ImplementationDataType Reference (XMLOptionsImplementationDataTypeReference プロパティ) を使用して次の値を指定できます。

  • Allowed (既定の設定) — 生成された ARXML コード内で実装型の直接参照を許可します。アプリケーション データ型で AUTOSAR データ型の記述が必ずしも必要でない場合、実装データ型の参照を使用します。

  • NotAllowed — 生成された ARXML コード内で実装データ型の直接参照を許可しません。それぞれの AUTOSAR データ型に対してアプリケーション データ型が生成されます。

メモ

Simulink.ValueType オブジェクトのエクスポート時には、生成された ARXML 内に実装型とアプリケーション型が常に生成されます。

MATLAB コマンド ウィンドウで ImplementationDataTypeReference プロパティを設定するには、次のように AUTOSAR プロパティの関数呼び出し set を使用します。

hModel = 'autosar_swc_expfcns';
addpath(fullfile(matlabroot,'/examples/autosarblockset/main'));
open_system(hModel);
arProps=autosar.api.getAUTOSARProperties(hModel);
set(arProps,'XmlOptions','ImplementationTypeReference','NotAllowed');
get(arProps,'XmlOptions','ImplementationTypeReference')

AUTOSAR ディクショナリで ImplementationDataTypeReference プロパティを設定するには、[XML Options] を選択します。パラメーター [ImplementationDataType Reference] の値を設定します。[適用] をクリックします。

DataTypeMappingSet パッケージと名前の設定

Simulink で作成された AUTOSAR ソフトウェア コンポーネントについて、AUTOSAR データ型マッピング セットにエクスポートされる AUTOSAR パッケージと省略名を指定できます。エクスポートするデータ型マッピング セット パッケージを設定するには、AUTOSAR ディクショナリまたは AUTOSAR プロパティ関数 set を使用して XMLOptionsDataTypeMappingPackage プロパティを設定します。

hModel = 'autosar_swc_expfcns';
addpath(fullfile(matlabroot,'/examples/autosarblockset/main'));
open_system(hModel);
arProps=autosar.api.getAUTOSARProperties(hModel);
set(arProps,'XmlOptions','DataTypeMappingPackage','/pkg/dt/DataTypeMappings');
get(arProps,'XmlOptions','DataTypeMappingPackage')

エクスポートされた ARXML コードでは、指定されたパッケージが使用されます。マッピング セットの既定の省略名は、コンポーネントン名 ASWC の接頭辞が DataTypeMappingsSet に付いた名前になります。

<DATA-TYPE-MAPPING-REFS>
    <DATA-TYPE-MAPPING-REF DEST="DATA-TYPE-MAPPING-SET">
      /pkg/dt/DataTypeMappings/ASWCDataTypeMappingsSet</DATA-TYPE-MAPPING-REF>
</DATA-TYPE-MAPPING-REFS>
...
<AR-PACKAGE>
    <SHORT-NAME>DataTypeMappings</SHORT-NAME>
    <ELEMENTS>
        <DATA-TYPE-MAPPING-SET UUID="...">
            <SHORT-NAME>ASWCDataTypeMappingsSet</SHORT-NAME>
...
        </DATA-TYPE-MAPPING-SET>
    </ELEMENTS>
</AR-PACKAGE>

AUTOSAR プロパティ関数 addPackageableElement を使用して、データ型マッピング セットの省略名を指定できます。次の例では、MATLAB コマンドを使用してカスタムのデータ型マッピング セット パッケージと名前を指定します。

% Add a new data type mapping set
modelName = 'autosar_swc_expfcns';
addpath(fullfile(matlabroot,'/examples/autosarblockset/main'));
open_system(modelName);
propObj = autosar.api.getAUTOSARProperties(modelName);
newMappingSetPath = '/myPkg/mySubpkg/MyMappingSets';
newMappingSetName = 'MappingSetName';
newMappingSet = [newMappingSetPath '/' newMappingSetName];
addPackageableElement(propObj,'DataTypeMappingSet',newMappingSetPath,newMappingSetName);

% Configure the component behavior to use the new data type mapping set
swc = get(propObj,'XmlOptions','ComponentQualifiedName');
ib = get(propObj,swc,'Behavior','PathType','FullyQualified');
set(propObj,ib,'DataTypeMapping',newMappingSet);

% Force generation of application data types
set(propObj,'XmlOptions','ImplementationTypeReference','NotAllowed');

% Build
slbuild(modelName);

エクスポートされた ARXML コードでは、指定されたパッケージと名前が次のように使用されます。

<INTERNAL-BEHAVIORS>
    <SWC-INTERNAL-BEHAVIOR UUID="...">
        <SHORT-NAME>IB</SHORT-NAME>
        <DATA-TYPE-MAPPING-REFS>
            <DATA-TYPE-MAPPING-REF DEST="DATA-TYPE-MAPPING-SET">
              /myPkg/mySubpkg/MyMappingSets/MappingSetName</DATA-TYPE-MAPPING-REF>
        </DATA-TYPE-MAPPING-REFS>
...
    </SWC-INTERNAL-BEHAVIOR>
</INTERNAL-BEHAVIORS>

ApplicationValueSpecification によるデータの初期化

アプリケーション データ型によって型が指定された AUTOSAR データ オブジェクトを初期化するために、AUTOSAR 規格 (R4.1 以降) では AUTOSAR のアプリケーション値指定 (ApplicationValueSpecification) が必要です。Embedded Coder® では次のサポートを提供します。

  • ARXML インポーターでは、インポートされる ARXML ファイル内で検出された ApplicationValueSpecification を使用して、対応する Simulink モデルのデータ オブジェクトを初期化します。

  • コード生成では、ApplicationValueSpecification を使用して AUTOSAR データの初期値を指定する ARXML コードをエクスポートします。

実装データ型によって型が指定された AUTOSAR パラメーターの場合、コード生成では、NumericalValueSpecification および (列挙型については) TextValueSpecification を使用して初期値を指定する ARXML コードがエクスポートされます。パラメーターの初期値に複数の値が指定されている場合は、生成されたコードでは ArrayValueSpecification が使用されます。

AUTOSAR 内部データ制約のエクスポートの設定

AUTOSAR アプリケーションは、データ型に制限を実装したり、可能な値の範囲を制御するためにデータ制約を使用します。内部データ制約は実装データ型の最小値および最大値を表し、データの内部またはマシン ビューを反映しています。

既定では、コード生成は ARXML コードの AUTOSAR 実装データ型に関する内部データ制約情報をエクスポートすることはありません。実装データ型に関する内部データ制約のエクスポートを強制する場合は、XML オプションの [Internal DataConstraints Export] を選択します。

[Internal DataConstraints Export] を選択した場合、エクスポーターは AUTOSAR パッケージ内に内部データ制約を生成し、DataConstrs という既定の名前で AUTOSAR データ型パッケージの固定された場所に配置します。必要に応じて XML オプション [Internal DataConstraints Package] を使用して、異なる AUTOSAR パッケージ名とパスを指定することもできます。

モデルにおいて AUTOSAR 内部データ制約情報のエクスポートを構成する方法は以下のとおりです。

  1. AUTOSAR ディクショナリを開きます。[AUTOSAR] タブで [コード インターフェイス][AUTOSAR ディクショナリ] を選択します。

  2. [XML Options] を選択します。XML オプションのビューで、[追加オプション] の下にある [Internal DataConstraints Export] を選択します。

  3. 必要に応じて、[追加パッケージ] の下にある [Internal DataConstraints Package] にパッケージ パスを入力します。

  4. モデルをビルドして、生成されたコードを検証します。次に、ARXML コードにエクスポートされた AUTOSAR 内部データ制約の例を示します。

    <AR-PACKAGE>
        <SHORT-NAME>IDC</SHORT-NAME>
        <ELEMENTS>
            ...
            <DATA-CONSTR UUID="...">
                <SHORT-NAME>DC_SInt8</SHORT-NAME>
                <DATA-CONSTR-RULES>
                    <DATA-CONSTR-RULE>
                        <INTERNAL-CONSTRS>
                            <LOWER-LIMIT INTERVAL-TYPE="CLOSED">-128</LOWER-LIMIT>
                            <UPPER-LIMIT INTERVAL-TYPE="CLOSED">127</UPPER-LIMIT>
                        </INTERNAL-CONSTRS>
                    </DATA-CONSTR-RULE>
                </DATA-CONSTR-RULES>
            </DATA-CONSTR>
        </ELEMENTS>
    </AR-PACKAGE>

または、AUTOSAR XML オプション [Internal DataConstraints Export][Internal DataConstraints Package] をプログラムで設定できます。次に例を示します。

arProps = autosar.api.getAUTOSARProperties(hModel);
set(arProps,'XmlOptions','InternalDataConstraintExport',true);
set(arProps,'XmlOptions','InternalDataConstraintPackage','/pkg/misc/IDC');

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

関連する例

詳細