我一直在尝试开发一个AUTOSAR 4.2.1模块,以使用Xpand/X趋向生成代码。我用的是artext演示器1.6.0。但我的疑问是,当我在演示器中创建一个新的Ecu平台项目时,在PDF(ECUConfigurationParameters.arxml)中找不到定义变化点的概念(或者我可能不熟悉如何发现)。
默认情况下,我能够从arxml中获取参数值。但是,当在不同的post构建变量条件下定义的参数有多个值时,我只得到第一个值。例如,如果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>如果我使用Com.ComConfig.ComIpdus.ComIPduCancellationSupport,它在Xpand中给我的值为“true”。我无法访问第二个值‘false’。
如何根据构建后的变量条件获取参数值?
我想做以下几件事:
«DEFINE Gen1 FOR varianthandling::VariationPoint»
«EXPAND Gen1::GetThings»
«ENDDEFINE»
«DEFINE GenMain FOR AUTOSAR::EcucDefs::Com»
«EXPAND Gen1 FOR varianthandling::VariationPoint»
«ENDDEFINE»这给了我一个错误,因为“无法找到x熊猫2::type类型的定义ComOtherVarGen”。如何实现上述目标?请注意,我并没有试图添加/修改'MainObj‘模板的任何功能,所以,“note”不是我想要的。
任何帮助都是非常感谢的。
发布于 2015-07-24 06:47:22
用于创建模型的工具(它是从PDF文件+ EcuC值文件创建的)必须能够构建一个与构建后兼容的模型。
如果您确定,这是正在完成的-然后尝试以下方法
Com.ComConfig.ComIpdus.ComIPduCancellationSupport更改为
<FOREACH Com.ComConfig.ComIpdus.ComIPduCancellationSupport AS ele>
<ele>
<ENDFOREACH>或
Com.ComConfig.ComIpdus.ComIPduCancellationSupport.get(0) Com.ComConfig.ComIpdus.ComIPduCancellationSupport.get(1)
https://stackoverflow.com/questions/29469083
复制相似问题