我一直在尝试开发一个 AUTOSAR 4.2.1 模块来使用 Xpand/Xtend 生成代码。我正在使用 arttext 演示器 1.6.0。但是我的疑问是,当我在演示器中创建一个新的 Ecu 平台项目时,在 PDF(ECUConfigurationParameters.arxml) 中没有找到定义变化点的概念(或者我可能不熟悉如何查找)。
默认情况下,我能够从 arxml 中获取参数值。但是,当在不同的构建后变体条件中定义的参数有多个值时,我只会得到第一个值。例如,如果 arxml 包含这个
<ECUC-NUMERICAL-PARAM-VALUE>
<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF"> /AUTOSAR/EcucDefs/Com/ComConfig/ComIPdu/ComIPduCancellationSuppo rt</DEFINITION-REF>
<VARIATION-POINT>
<POST-BUILD-VARIANT-CONDITIONS>
<POST-BUILD-VARIANT-CONDITION>
<MATCHING-CRITERION-REF DEST="POST-BUILD-VARIANT-CRITERION">/EcucDemo/PostBuildConfigSet</MATCHING-CRITERION-REF>
<VALUE>1</VALUE>
</POST-BUILD-VARIANT-CONDITION>
</POST-BUILD-VARIANT-CONDITIONS>
</VARIATION-POINT>
<VALUE>1</VALUE>
</ECUC-NUMERICAL-PARAM-VALUE>
<ECUC-NUMERICAL-PARAM-VALUE>
<DEFINITION-REF DEST="ECUC-BOOLEAN-PARAM-DEF"> /AUTOSAR/EcucDefs/Com/ComConfig/ComIPdu/ComIPduCancellationSuppo rt</DEFINITION-REF>
<VARIATION-POINT>
<POST-BUILD-VARIANT-CONDITIONS>
<POST-BUILD-VARIANT-CONDITION>
<MATCHING-CRITERION-REF DEST="POST-BUILD-VARIANT-CRITERION">/EcucDemo/PostBuildConfigSet</MATCHING-CRITERION-REF>
<VALUE>2</VALUE>
</POST-BUILD-VARIANT-CONDITION>
</POST-BUILD-VARIANT-CONDITIONS>
</VARIATION-POINT>
<VALUE>0</VALUE>
</ECUC-NUMERICAL-PARAM-VALUE>
如果我这样做,它会给我在 Xpand 中的“真实”价值Com.ComConfig.ComIpdus.ComIPduCancellationSupport
。我无法访问第二个值“false”。
如何根据构建后的变体条件继续获取参数值?
我正在尝试执行以下操作:
«DEFINE Gen1 FOR varianthandling::VariationPoint»
«EXPAND Gen1::GetThings»
«ENDDEFINE»
«DEFINE GenMain FOR AUTOSAR::EcucDefs::Com»
«EXPAND Gen1 FOR varianthandling::VariationPoint»
«ENDDEFINE»
这给了我一个错误,因为“找不到 xpand2::Type 类型的定义 ComOtherVarGen ”。我如何实现上述目标?请注意,我没有尝试向“MainObj”模板添加/修改任何功能,因此“AROUND”不是我想要的。
任何帮助是极大的赞赏。