このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
AUTOSAR 要素のバリアントの設定
AUTOSAR ソフトウェア コンポーネントは VariationPoint 要素を使用して、定義された条件に基づき、ポートやランナブルなどの AUTOSAR 要素を有効または無効にすることができます。Simulink® で、AUTOSAR ポートとランナブルを有効または無効にするバリアントを設定するには、次のようにします。
Variant SinkブロックとVariant Sourceブロックを使用し、バリアント条件ロジックを定義してバリアント条件を伝播します。
ストレージ クラスが
SystemConstantのAUTOSAR.Parameterデータ オブジェクトを使用し、AUTOSAR システム定数をモデル化します。システム定数はポートとランナブルを有効または無効にする条件値を表します。
open_system('mAutosarInlineVariant.slx');
AUTOSAR システム定数をモデル化するために、このモデルは AUTOSAR.Parameter データ オブジェクト SysConA を定義します。
SysConA = AUTOSAR.Parameter; SysConA.CoderInfo.StorageClass = 'Custom'; SysConA.CoderInfo.CustomStorageClass = 'SystemConstant'; SysConA.DataType = 'int32'; SysConA.Value = 1;
各 Variant Source ブロックまたは Variant Sink ブロックは、システム定数値を基にしたバリアント条件ロジックを定義します。式または式が含まれるSimulink.VariantExpressionオブジェクトを指定できます。Variant Source ブロックの RunnableStepVP のバリアント条件ロジックは次のとおりです。

モデルのコードを生成すると、次のようになります。
エクスポートされた ARXML コードに変動点プロキシと変動点の定義が含まれます。この例では、
VARIATION-POINT-PROXYエントリは生成された C コードで参照される省略名c0をもちます。SysConAは関連付けられた条件値を表すシステム定数として表示されます。
<VARIATION-POINT-PROXYS>
<VARIATION-POINT-PROXY UUID="...">
<SHORT-NAME>c0</SHORT-NAME>
<CATEGORY>CONDITION</CATEGORY>
<CONDITION-ACCESS BINDING-TIME="PRE-COMPILE-TIME">
<SYSC-REF DEST="SW-SYSTEMCONST">/mInlineVariant_pkg/mInlineVariant_dt/SystemConstants/SysConA</SYSC-REF>
== 0 ||
<SYSC-REF DEST="SW-SYSTEMCONST">/mInlineVariant_pkg/mInlineVariant_dt/SystemConstants/SysConA</SYSC-REF>
== 1</CONDITION-ACCESS>
</VARIATION-POINT-PROXY>
</VARIATION-POINT-PROXYS>
VARIATION-POINT エントリは、AUTOSAR ポート、ランナブル、および外部データへのランナブル アクセスに対して表示されます。
<R-PORT-PROTOTYPE UUID="..."> <SHORT-NAME>In1</SHORT-NAME> <VARIATION-POINT> <SHORT-LABEL>In1_a3VP</SHORT-LABEL> <SW-SYSCOND BINDING-TIME="PRE-COMPILE-TIME"> <SYSC-REF DEST="SW-SYSTEMCONST">/mInlineVariant_pkg/mInlineVariant_dt/SystemConstants/SysConA</SYSC-REF> == 0 || <SYSC-REF DEST="SW-SYSTEMCONST">/mInlineVariant_pkg/mInlineVariant_dt/SystemConstants/SysConA</SYSC-REF> == 1</SW-SYSCOND> </VARIATION-POINT> ... </R-PORT-PROTOTYPE>
RTE 互換の C コードの中で、省略名
c0は、バリアント条件のロジック内で使用されるプリプロセッサ シンボルの名前にエンコードされます。以下に例を示します。
#if Rte_SysCon_c0 ... #endif
詳細については、バリアント システムを参照してください。
参考
AUTOSAR.Parameter | Variant Sink | Variant Source
トピック
- AUTOSAR バリアントのモデル化
- バリアント システム (Simulink Coder)
- システム定数