Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

事前定義値の組み合わせを使用した AUTOSAR バリアントの制御

AUTOSAR ソフトウェア コンポーネントで変動点を制御する値を定義するために、コンポーネントは次の AUTOSAR 要素を使用します。

  • SwSystemconst — 変動点を制御する入力として機能するシステム定数を定義する。

  • SwSystemconstantValueSet — AUTOSAR ソフトウェア コンポーネントに適用する一連のシステム定数値を指定する。

  • PredefinedVariant — 複数の有効な可能性のある組み合わせの中で、AUTOSAR ソフトウェア コンポーネントに適用するシステム定数値の組み合わせを記述する。

たとえば、ARXML コードでは、TransmissionHeadlightSunroofTurbocharge などの自動車機能の SwSystemconst を定義できます。これで、PredefinedVariant は機能の組み合わせを自動車モデル バリアント (BasicEconomySeniorSportiveJunior など) にマッピングできます。

AUTOSAR ソフトウェア コンポーネントの ARXML 仕様があるとします。ARXML ファイルでコンポーネントの変動点を制御する PredefinedVariant または SwSystemconstantValueSet も定義する場合は、モデルの作成時に変動点を解決できます。インポーターが SwSystemconst データを初期化するために使用できる PredefinedVariant または SwSystemconstantValueSet を指定します。

通常の手順は次のとおりです。

  1. ARXML ファイルで定義されている PredefinedVariant または SwSystemconstantValueSet のリストを取得します。

    >> obj = arxml.importer('mySWC.arxml');
    >> find(obj,'/','PredefinedVariant','PathType','FullyQualified');
    ans = 
       '/pkg/body/Variants/Basic'
       '/pkg/body/Variants/Economy'
       '/pkg/body/Variants/Senior'
       '/pkg/body/Variants/Sportive'
       '/pkg/body/Variants/Junior'
    >> obj = arxml.importer('mySWC.arxml');
    >> find(obj,'/','SystemConstValueSet','PathType','FullyQualified')
    ans = 
       '/pkg/body/SystemConstantValues/A'
       '/pkg/body/SystemConstantValues/B'
       '/pkg/body/SystemConstantValues/C'
       '/pkg/body/SystemConstantValues/D'
  2. ARXML ファイルからモデルを作成し、PredefinedVariant または 1 つ以上の SwSystemconstantValueSet を指定します。

    この例では、PredefinedVariant Senior を指定します。これは、TransmissionHeadlightSunroofTurbocharge の値の組み合わせを表します。

    >> createComponentAsModel(obj,compNames{1},'ModelPeriodicRunnablesAs','AtomicSubsystem',...
       'PredefinedVariant','/pkg/body/Variants/Senior');

    この例では、SwSystemconstantValueSet A および B を指定します。この 2 つを組み合わせると、AUTOSAR ソフトウェア コンポーネントで SwSystemconst の値が指定されます。

    >> createComponentAsModel(obj,compNames{1},'ModelPeriodicRunnablesAs','AtomicSubsystem',...
       'SystemConstValueSets',{'/pkg/body/SystemConstantValues/A','/pkg/body/SystemConstantValues/B'});
  3. モデルの作成中に、ARXML インポーターによって作成される AUTOSAR.Parameter データ オブジェクトは、[ストレージ クラス][SystemConstant] に設定されています。インポーターは、指定された PredefinedVariant または SwSystemconstantValueSet に基づく値でシステム定数データを初期化します。

モデルの作成後、指定した変動点の入力値の組み合わせに基づいて、シミュレーションを実行し、コードを生成できます。

Simulink® で、モデルを再作成せずに、変動点を制御する SwSystemconst データを再定義できます。AUTOSAR プロパティ関数 createSystemConstants を呼び出して、別のインポートした PredefinedVariant または SwSystemconstantValueSet の別の cell 配列を指定します。関数は、元のオブジェクトと同じ名前で一連のシステム定数データ オブジェクトを作成します。変動点の入力値の修正した組み合わせに基づいて、シミュレーションを実行し、コードを生成できます。

この例では、インポートした PredefinedVariant '/pkg/body/Variants/Economy' に基づく名前と値を使用して一連のシステム定数データ オブジェクトを作成します。

arProps = autosar.api.getAUTOSARProperties(hModel);
createSystemConstants(arProps,'/pkg/body/Variants/Economy');

モデルをビルドすると、以前にインポートされた PredefinedVariant および SwSystemconstantValueSet が ARXML コードにエクスポートされます。

関連する例

詳細