AUTOSAR ARXML

来源:互联网 发布:数据库防护产品 编辑:程序博客网 时间:2024/06/01 08:15

以下内容均为作者原创,如需转载请注明出处。


之前在做代码生成工具及配置工具时,一直在编辑及解析<ECUC-MODULE-DEF>……/<ECUC-MODULE-DEF>元素中的内容。最近发现这是错误的用法,AUTOSAR中标准的使用方法是

<ECUC-MODULE-DEF>

<!-- 该部分为模块参数的定义,该部分规范及限制了容器参数的使用方法,取值范围等,其功能等同于Specification中的“Configuration specification”章节-->

……

/<ECUC-MODULE-DEF>


<ECUC-MODULE-CONFIGURATION-VALUES>

<!-- 该部分元素所描述的内容才是用来存储模块配置参数数据的地方。-->

……

/<ECUC-MODULE-CONFIGURATION-VALUES>

让我们来看几个例子:

在例1中,我们定义了Com模块,该模块含有1个容器,该容器含有2个参数。

例1:

<ECUC-MODULE-DEF><SHORT-NAME>Com</SHORT-NAME><LOWER-MULTIPLICITY>0</LOWER-MULTIPLICITY><UPPER-MULTIPLICITY>1</UPPER-MULTIPLICITY><POST-BUILD-VARIANT-SUPPORT>true</POST-BUILD-VARIANT-SUPPORT><SUPPORTED-CONFIG-VARIANTS><SUPPORTED-CONFIG-VARIANT>VARIANT-POST-BUILD</SUPPORTED-CONFIG-VARIANT></SUPPORTED-CONFIG-VARIANTS><CONTAINERS><ECUC-PARAM-CONF-CONTAINER-DEF><SHORT-NAME>ComSignal</SHORT-NAME><LOWER-MULTIPLICITY>0</LOWER-MULTIPLICITY><UPPER-MULTIPLICITY>*</UPPER-MULTIPLICITY><MULTIPLICITY-CONFIG-CLASSES><ECUC-MULTIPLICITY-CONFIGURATION-CLASS><CONFIG-CLASS>POST-BUILD</CONFIG-CLASS><CONFIG-VARIANT>VARIANT-POST-BUILD</CONFIG-VARIANT></ECUC-MULTIPLICITY-CONFIGURATION-CLASS></MULTIPLICITY-CONFIG-CLASSES><POST-BUILD-VARIANT-MULTIPLICITY>true</POST-BUILD-VARIANTMULTIPLICITY><PARAMETERS><ECUC-INTEGER-PARAM-DEF><SHORT-NAME>ComSignalLength</SHORT-NAME><MULTIPLICITY-CONFIG-CLASSES><ECUC-MULTIPLICITY-CONFIGURATION-CLASS><CONFIG-CLASS>PRE-COMPILE</CONFIG-CLASS><CONFIG-VARIANT>VARIANT-POST-BUILD</CONFIG-VARIANT></ECUC-MULTIPLICITY-CONFIGURATION-CLASS></MULTIPLICITY-CONFIG-CLASSES><ORIGIN>AUTOSAR_ECUC</ORIGIN><VALUE-CONFIG-CLASSES><ECUC-VALUE-CONFIGURATION-CLASS><CONFIG-CLASS>PRE-COMPILE</CONFIG-CLASS><CONFIG-VARIANT>VARIANT-POST-BUILD</CONFIG-VARIANT></ECUC-VALUE-CONFIGURATION-CLASS></VALUE-CONFIG-CLASSES></ECUC-INTEGER-PARAM-DEF><ECUC-INTEGER-PARAM-DEF><SHORT-NAME>ComSignalInitValue</SHORT-NAME><MULTIPLICITY-CONFIG-CLASSES><ECUC-MULTIPLICITY-CONFIGURATION-CLASS><CONFIG-CLASS>POST-BUILD</CONFIG-CLASS><CONFIG-VARIANT>VARIANT-POST-BUILD</CONFIG-VARIANT></ECUC-MULTIPLICITY-CONFIGURATION-CLASS></MULTIPLICITY-CONFIG-CLASSES><ORIGIN>AUTOSAR_ECUC</ORIGIN><VALUE-CONFIG-CLASSES><ECUC-VALUE-CONFIGURATION-CLASS><CONFIG-CLASS>POST-BUILD</CONFIG-CLASS><CONFIG-VARIANT>VARIANT-POST-BUILD</CONFIG-VARIANT></ECUC-VALUE-CONFIGURATION-CLASS></VALUE-CONFIG-CLASSES></ECUC-INTEGER-PARAM-DEF></PARAMETERS></ECUC-PARAM-CONF-CONTAINER-DEF></CONTAINERS></ECUC-MODULE-DEF>

在例2中,定义了‘例1’中2个参数的数值。

例2:

<ECUC-MODULE-CONFIGURATION-VALUES><SHORT-NAME>theComConfig</SHORT-NAME><DEFINITION-REF DEST="ECUC-MODULE-DEF">/AUTOSAR/EcucDefs/Com</DEFINITIONREF><IMPLEMENTATION-CONFIG-VARIANT>VARIANT-POST-BUILD</IMPLEMENTATION-CONFIGVARIANT><MODULE-DESCRIPTION-REF DEST="BSW-IMPLEMENTATION">/some_package/theUsed_Com_BSWModuleImplementation</MODULE-DESCRIPTION-REF><CONTAINERS><ECUC-CONTAINER-VALUE><SHORT-NAME>theSignal</SHORT-NAME><DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Com/ComSignal</DEFINITION-REF><PARAMETER-VALUES><ECUC-NUMERICAL-PARAM-VALUE><DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Com/ComSignal/ComSignalLength</DEFINITION-REF><VALUE>2</VALUE></ECUC-NUMERICAL-PARAM-VALUE><ECUC-NUMERICAL-PARAM-VALUE><DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Com/ComSignal/ComSignalInitValue</DEFINITION-REF><VALUE>0</VALUE></ECUC-NUMERICAL-PARAM-VALUE></PARAMETER-VALUES></ECUC-CONTAINER-VALUE></CONTAINERS></ECUC-MODULE-CONFIGURATION-VALUES>

由于AUTOSAR中规定,带有stereotype《atpSplitable》构造型标签的元素可以被拆分到几个不同的XML文件中,而<CONTAINERS>元素就含有这种标签,所以‘例2’又可以拆分成下方‘例3’及‘例4’的形式。

例3:

<ECUC-MODULE-CONFIGURATION-VALUES><SHORT-NAME>theComConfig</SHORT-NAME><DEFINITION-REF DEST="ECUC-MODULE-DEF">/AUTOSAR/EcucDefs/Com</DEFINITIONREF><IMPLEMENTATION-CONFIG-VARIANT>VARIANT-POST-BUILD</IMPLEMENTATION-CONFIGVARIANT><MODULE-DESCRIPTION-REF DEST="BSW-IMPLEMENTATION">/some_package/theUsed_Com_BSWModuleImplementation</MODULE-DESCRIPTION-REF><CONTAINERS><ECUC-CONTAINER-VALUE><SHORT-NAME>theSignal</SHORT-NAME><DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Com/ComSignal</DEFINITION-REF><PARAMETER-VALUES><ECUC-NUMERICAL-PARAM-VALUE><DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Com/ComSignal/ComSignalLength</DEFINITION-REF><VALUE>2</VALUE></ECUC-NUMERICAL-PARAM-VALUE></PARAMETER-VALUES></ECUC-CONTAINER-VALUE></CONTAINERS></ECUC-MODULE-CONFIGURATION-VALUES>

例4:

<ECUC-MODULE-CONFIGURATION-VALUES><SHORT-NAME>theComConfig</SHORT-NAME><DEFINITION-REF DEST="ECUC-MODULE-DEF">/AUTOSAR/EcucDefs/Com</DEFINITIONREF><IMPLEMENTATION-CONFIG-VARIANT>VARIANT-POST-BUILD</IMPLEMENTATION-CONFIGVARIANT><MODULE-DESCRIPTION-REF DEST="BSW-IMPLEMENTATION">/some_package/theUsed_Com_BSWModuleImplementation</MODULE-DESCRIPTION-REF><CONTAINERS><ECUC-CONTAINER-VALUE><SHORT-NAME>theSignal</SHORT-NAME><DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/AUTOSAR/EcucDefs/Com/ComSignal</DEFINITION-REF><PARAMETER-VALUES><ECUC-NUMERICAL-PARAM-VALUE><DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/AUTOSAR/EcucDefs/Com/ComSignal/ComSignalInitValue</DEFINITION-REF><VALUE>0</VALUE></ECUC-NUMERICAL-PARAM-VALUE></PARAMETER-VALUES></ECUC-CONTAINER-VALUE></CONTAINERS></ECUC-MODULE-CONFIGURATION-VALUES>

例3、例4两个xml文档会在后面的配置工具中被合并。需要注意的是,<PARAMETER-VALUES>……/<PARAMETER-VALUES>元素以外的元素应当保持一致。




原创粉丝点击