事前定義値の組み合わせを使用した AUTOSAR バリアントの制御
AUTOSAR ソフトウェア コンポーネントで変動点を制御する値を定義するために、コンポーネントは次の AUTOSAR 要素を使用します。
SwSystemconst
— 変動点を制御する入力として機能するシステム定数を定義する。SwSystemconstantValueSet
— AUTOSAR ソフトウェア コンポーネントに適用する一連のシステム定数値を指定する。PredefinedVariant
— 複数の有効な可能性のある組み合わせの中で、AUTOSAR ソフトウェア コンポーネントに適用するシステム定数値の組み合わせを記述する。
たとえば、ARXML コードでは、Transmission
、Headlight
、Sunroof
、Turbocharge
などの自動車機能の SwSystemconst
を定義できます。これで、PredefinedVariant
は機能の組み合わせを自動車モデル バリアント (Basic
、Economy
、Senior
、Sportive
、Junior
など) にマッピングできます。
AUTOSAR ソフトウェア コンポーネントの ARXML 仕様があるとします。ARXML ファイルでコンポーネントの変動点を制御する PredefinedVariant
または SwSystemconstantValueSet
も定義する場合は、モデルの作成時に変動点を解決できます。インポーターが SwSystemconst
データを初期化するために使用できる PredefinedVariant
または SwSystemconstantValueSet
を指定します。
通常の手順は次のとおりです。
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'
ARXML ファイルからモデルを作成し、
PredefinedVariant
または 1 つ以上のSwSystemconstantValueSet
を指定します。この例では、
PredefinedVariant
Senior を指定します。これは、Transmission
、Headlight
、Sunroof
、Turbocharge
の値の組み合わせを表します。>> 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'});
モデルの作成中に、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 コードにエクスポートされます。