このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
事前定義値の組み合わせを使用した 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を指定します。この例では、
PredefinedVariantSenior を指定します。これは、Transmission、Headlight、Sunroof、Turbochargeの値の組み合わせを表します。>> createComponentAsModel(obj,compNames{1},'ModelPeriodicRunnablesAs','AtomicSubsystem',... 'PredefinedVariant','/pkg/body/Variants/Senior');この例では、
SwSystemconstantValueSetA および 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 コードにエクスポートされます。