<?xml version='1.0'?>
<datamodel version="3.0" 
           xmlns="http://www.tresos.de/_projects/DataModel2/08/root.xsd" 
           xmlns:a="http://www.tresos.de/_projects/DataModel2/08/attribute.xsd" 
           xmlns:v="http://www.tresos.de/_projects/DataModel2/06/schema.xsd" 
           xmlns:d="http://www.tresos.de/_projects/DataModel2/06/data.xsd">
<!--
*   @file    Adc.xdm
*   @version 1.0.0
*
*   @brief   AUTOSAR Adc - Tresos Studio plugin schema file
*   @details This file contains the schema configuration for and Adc Tresos Studio
*            plugin.
-->
<!--
====================================================================================================
*   Project              : AUTOSAR 4.3 MCAL
*   Platform             : PA
*   Peripheral           : EQADC
*   Dependencies         : none
*
*   Autosar Version      : 4.3.1
*   Autosar Revision     : ASR_REL_4_3_REV_0001
*   Autosar Conf.Variant :
*   SW Version           : 1.0.0
*   Build Version        : MPC5777C_MCAL_1_0_0_RTM_ASR_REL_4_3_REV_0001_20190315

*   (c) Copyright 2006-2016 Freescale Semiconductor, Inc. 
*       Copyright 2017-2019 NXP
*   All Rights Reserved.
====================================================================================================
====================================================================================================
====================================================================================================
-->    
  <d:ctr type="AUTOSAR" factory="autosar" 
         xmlns:ad="http://www.tresos.de/_projects/DataModel2/08/admindata.xsd" 
         xmlns:icc="http://www.tresos.de/_projects/DataModel2/08/implconfigclass.xsd" 
         xmlns:mt="http://www.tresos.de/_projects/DataModel2/11/multitest.xsd" >
    <d:lst type="TOP-LEVEL-PACKAGES">
      <d:ctr name="TS_T2D41M10I0R0" type="AR-PACKAGE">
        <a:a name="UUID" value="ECUC:8d4fdbd4-309e-4615-8f34-a64d5adbf2cc"/>
        <d:lst type="ELEMENTS">
          <!--  /** @implements Adc_Object */ -->
          <d:chc name="Adc" type="AR-ELEMENT" value="MODULE-DEF">
          
            <v:ctr type="MODULE-DEF">
              <a:a name="RELEASE" value="asc:4.3"/>
              <a:a name="ADMIN-DATA" type="ADMIN-DATA">
                <ad:ADMIN-DATA>
                  <ad:DOC-REVISIONS>
                    <ad:DOC-REVISION>
                      <ad:REVISION-LABEL>4.3.0</ad:REVISION-LABEL>
                      <ad:ISSUED-BY>AUTOSAR</ad:ISSUED-BY>
                      <ad:DATE>2011-11-24T17:00:00+01:00</ad:DATE>
                    </ad:DOC-REVISION>
                  </ad:DOC-REVISIONS>
                </ad:ADMIN-DATA>
              </a:a>
              <a:a name="POSTBUILDVARIANTSUPPORT" value="true"/>
              <a:a name="DESC" 
                   value="EN: Configuration of the Adc (Analog Digital Conversion) module."/>
              <a:a name="LOWER-MULTIPLICITY" value="1"/>
              <a:a name="UPPER-MULTIPLICITY" value="1"/>
              <a:a name="UUID" value="ECUC:88c438bf-b6be-49f2-993b-3e287fdb21fc"/>
              
              <!--  /** @implements  ConfigVariant_Object */ -->
              <v:var name="IMPLEMENTATION_CONFIG_VARIANT" type="ENUMERATION">
                <a:a name="DESC">
                  <a:v>
                    <![CDATA[EN:<html><p>
                         Configuration classes.
                         Enable the parameters that are editable for specific configuration classes
                         </p></html>]]>
                  </a:v>
                </a:a>
                <a:a name="IMPLEMENTATIONCONFIGCLASS" type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v class="PreCompile">VariantPostBuild</icc:v>
                    <icc:v class="PreCompile">VariantPreCompile</icc:v>
                </a:a>
                <a:a name="LABEL" value="Config Variant"/>
                <a:a name="UUID" value="ECUC:1d992d8a-62c0-44f0-88a2-a4e8a4fae996"/>
                <a:da name="DEFAULT" value="VariantPostBuild"/>
                <a:da name="RANGE">
                  <a:v>VariantPostBuild</a:v>
                  <a:v>VariantPreCompile</a:v>
                </a:da>
              </v:var>

              <!--  @implements AdcConfigSet_Object  -->
              <v:ctr name="AdcConfigSet"  type="IDENTIFIABLE">
                <a:a name="DESC">
                     <a:v><![CDATA[EN:<html><p>This is the base container that contains the post-build selectable configuration parameters</p></html>]]></a:v>
                </a:a>
                <a:a name="UUID" value="ECUC:5c49ee28-8607-4878-ada6-4023d50d3efd"/>

                <!-- /** @implements AdcHwUnit_Object */ -->
                <v:lst name="AdcHwUnit" type="MAP">
                  <a:da name="MIN" value="1"/>
                  <a:da name="INVALID" type="XPath">
                     <a:tst expr="num:i(count(node:current()/*)) &gt; ecu:get(&apos;Adc.AdcConfigSet.AdcHwUnit&apos;)"
                     true="Maximum ADC Hardwares available for the selected derivative was exceeded."/>
                  </a:da>

                  <!-- AdcHwUnit Big container -->
                  <v:ctr name="AdcHwUnit" type="IDENTIFIABLE">
                    <a:a name="DESC"> 
                         <a:v><![CDATA[EN:<html><p>This container contains the Driver configuration (parameters) depending on grouping of channels.</p></html>]]></a:v>
                    </a:a>
                    <a:a name="IMPLEMENTATIONCONFIGCLASS" type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v mclass="PreCompile">VariantPostBuild</icc:v>
                    <icc:v mclass="PreCompile">VariantPreCompile</icc:v>
                    </a:a>
                    <a:a name="UUID" value="ECUC:3d5fdf44-841b-443b-9cf1-bccd75b6198a"/>
                    <a:da name="INVALID" type="XPath">
                        <a:tst
                          expr="
                          not
                          (
                            contains(substring-before(concat(text:join(../../../*/AdcHwUnit/*/@name, ','), ','), concat(name(.), ',')), concat(name(.), ','))
                            or
                            contains(substring-after(concat(text:join(../../../*/AdcHwUnit/*/@name, ','), ','), concat(name(.), ',')), concat(name(.), ','))
                          )
                          "
                          false="Duplicate AdcHwUnitNames, AdcHwUnit Symbolic names must be unique across Config Sets"
                        />
                    </a:da>
                      
                    <!-- AdcTransferType -->
                    <v:var name="AdcTransferType" type="ENUMERATION">
                      <a:a name="DESC">
                          <a:v><![CDATA[EN:<html><p>Select the Interrupt or Dma transfer Type. If DMA is used, user must not run SW and HW groups at the same time on the same HW unit because the same DMA channel will be used for both. If DMA is required for AdcTransferType, it is recommended to keep AdcWithoutInterrupts as false, otherwise, DMA will not be configured and it will be user responsibilty to read the results from registers directly by calling Adc_ReadGroup</p></html>]]></a:v>
                        </a:a>
                      <a:a name="POSTBUILDVARIANTVALUE" value="true"/>
                      <a:a name="SCOPE" value="LOCAL"/>
                      <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                           type="IMPLEMENTATIONCONFIGCLASS">
                        <icc:v vclass="PostBuild">VariantPostBuild</icc:v>
                        <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                      </a:a>
                      <a:a name="LABEL" value="Adc Transfer Type"/>
                      <a:a name="ORIGIN" value="NXP"/>
                      <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                      <a:a name="UUID" value="ECUC:cf47d824-8ae8-475f-9aca-b4e66095bbd5"/>
                      <a:da name="DEFAULT" value="ADC_INTERRUPT"/>
                      <a:da name="RANGE">
                        <a:v>ADC_DMA</a:v>
                        <a:v>ADC_INTERRUPT</a:v>
                      </a:da>
                      <a:da name="INVALID" type="XPath">
                        <a:tst expr="(.= 'ADC_DMA') and ((ecu:get(&apos;AdcDMAPresent&apos;) = 'FALSE'))"
                          true="DMA mode is not supported."/>
                            <a:tst expr="(((count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_0'])=0) or (count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_1'])=0)) and (.= 'ADC_DMA') and node:exists(../AdcGroup/*/AdcGroupFifo) and (../AdcGroup/*/AdcGroupFifo = 'ADC_FIFO_0') and ((../AdcHwUnitId = 'ADC0') or (../AdcHwUnitId = 'ADC1')) and ((ecu:get('AdcDMAPresent') = 'TRUE')))"
                                   true="Dma channels with sources EQADC_A_FISR0_CFFF0 and EQADC_A_FISR0_RFDF0  must be enabled in MCL for EQADCA FIFO 0"/>
                            <a:tst expr="(((count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_2'])=0) or (count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_3'])=0)) and (.= 'ADC_DMA') and node:exists(../AdcGroup/*/AdcGroupFifo) and (../AdcGroup/*/AdcGroupFifo = 'ADC_FIFO_1') and ((../AdcHwUnitId = 'ADC0') or (../AdcHwUnitId = 'ADC1')) and ((ecu:get('AdcDMAPresent') = 'TRUE')))"
                                   true="Dma channels with sources EQADC_A_FISR1_CFFF1 and EQADC_A_FISR1_RFDF1  must be enabled in MCL for EQADCA FIFO 1"/>
                            <a:tst expr="(((count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_4'])=0) or (count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_5'])=0)) and (.= 'ADC_DMA') and node:exists(../AdcGroup/*/AdcGroupFifo) and (../AdcGroup/*/AdcGroupFifo = 'ADC_FIFO_2') and ((../AdcHwUnitId = 'ADC0') or (../AdcHwUnitId = 'ADC1')) and ((ecu:get('AdcDMAPresent') = 'TRUE')))"
                                   true="Dma channels with sources EQADC_A_FISR2_CFFF2 and EQADC_A_FISR2_RFDF2  must be enabled in MCL for EQADCA FIFO 2"/>
                            <a:tst expr="(((count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_6'])=0) or (count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_7'])=0)) and (.= 'ADC_DMA') and node:exists(../AdcGroup/*/AdcGroupFifo) and (../AdcGroup/*/AdcGroupFifo = 'ADC_FIFO_3') and ((../AdcHwUnitId = 'ADC0') or (../AdcHwUnitId = 'ADC1')) and ((ecu:get('AdcDMAPresent') = 'TRUE')))"
                                   true="Dma channels with sources EQADC_A_FISR3_CFFF3 and EQADC_A_FISR3_RFDF3  must be enabled in MCL for EQADCA FIFO 3"/>
                            <a:tst expr="(((count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_8'])=0) or (count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_9'])=0)) and (.= 'ADC_DMA') and node:exists(../AdcGroup/*/AdcGroupFifo) and (../AdcGroup/*/AdcGroupFifo = 'ADC_FIFO_4') and ((../AdcHwUnitId = 'ADC0') or (../AdcHwUnitId = 'ADC1')) and ((ecu:get('AdcDMAPresent') = 'TRUE')))"
                                   true="Dma channels with sources EQADC_A_FISR4_CFFF4 and EQADC_A_FISR4_RFDF4  must be enabled in MCL for EQADCA FIFO 4"/>
                            <a:tst expr="(((count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_10'])=0) or (count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_11'])=0)) and (.= 'ADC_DMA') and node:exists(../AdcGroup/*/AdcGroupFifo) and (../AdcGroup/*/AdcGroupFifo = 'ADC_FIFO_5') and ((../AdcHwUnitId = 'ADC0') or (../AdcHwUnitId = 'ADC1')) and ((ecu:get('AdcDMAPresent') = 'TRUE')))"
                                   true="Dma channels with sources EQADC_A_FISR5_CFFF5 and EQADC_A_FISR5_RFDF5  must be enabled in MCL for EQADCA FIFO 5"/>
                          
                            <a:tst expr="(((count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_64'])=0) or (count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_65'])=0)) and (.= 'ADC_DMA') and node:exists(../AdcGroup/*/AdcGroupFifo) and (../AdcGroup/*/AdcGroupFifo = 'ADC_FIFO_0') and ((../AdcHwUnitId = 'ADC2') or (../AdcHwUnitId = 'ADC3')) and ((ecu:get('AdcDMAPresent') = 'TRUE')))"
                                   true="Dma channels with sources EQADC_B_FISR0_CFFF0 and EQADC_B_FISR0_RFDF0  must be enabled in MCL for EQADCB FIFO 0"/>
                            <a:tst expr="(((count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_66'])=0) or (count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_67'])=0)) and (.= 'ADC_DMA') and node:exists(../AdcGroup/*/AdcGroupFifo) and (../AdcGroup/*/AdcGroupFifo = 'ADC_FIFO_1') and ((../AdcHwUnitId = 'ADC2') or (../AdcHwUnitId = 'ADC3')) and ((ecu:get('AdcDMAPresent') = 'TRUE')))"
                                   true="Dma channels with sources EQADC_B_FISR1_CFFF1 and EQADC_B_FISR1_RFDF1  must be enabled in MCL for EQADCB FIFO 1"/>
                            <a:tst expr="(((count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_68'])=0) or (count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_69'])=0)) and (.= 'ADC_DMA') and node:exists(../AdcGroup/*/AdcGroupFifo) and (../AdcGroup/*/AdcGroupFifo = 'ADC_FIFO_2') and ((../AdcHwUnitId = 'ADC2') or (../AdcHwUnitId = 'ADC3')) and ((ecu:get('AdcDMAPresent') = 'TRUE')))"
                                   true="Dma channels with sources EQADC_B_FISR2_CFFF2 and EQADC_B_FISR2_RFDF2  must be enabled in MCL for EQADCB FIFO 2"/>
                            <a:tst expr="(((count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_70'])=0) or (count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_71'])=0)) and (.= 'ADC_DMA') and node:exists(../AdcGroup/*/AdcGroupFifo) and (../AdcGroup/*/AdcGroupFifo = 'ADC_FIFO_3') and ((../AdcHwUnitId = 'ADC2') or (../AdcHwUnitId = 'ADC3')) and ((ecu:get('AdcDMAPresent') = 'TRUE')))"
                                   true="Dma channels with sources EQADC_B_FISR3_CFFF3 and EQADC_B_FISR3_RFDF3  must be enabled in MCL for EQADCB FIFO 3"/>
                            <a:tst expr="(((count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_72'])=0) or (count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_73'])=0)) and (.= 'ADC_DMA') and node:exists(../AdcGroup/*/AdcGroupFifo) and (../AdcGroup/*/AdcGroupFifo = 'ADC_FIFO_4') and ((../AdcHwUnitId = 'ADC2') or (../AdcHwUnitId = 'ADC3')) and ((ecu:get('AdcDMAPresent') = 'TRUE')))"
                                   true="Dma channels with sources EQADC_B_FISR4_CFFF4 and EQADC_B_FISR4_RFDF4  must be enabled in MCL for EQADCB FIFO 4"/>
                            <a:tst expr="(((count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_74'])=0) or (count(node:refs('ASPathDataOfSchema:/TS_T2D41M10I0R0/Mcl')/MclConfigSet/*[1]/DMAChannel/*/DmaHwChannel[.= 'eDMA_75'])=0)) and (.= 'ADC_DMA') and node:exists(../AdcGroup/*/AdcGroupFifo) and (../AdcGroup/*/AdcGroupFifo = 'ADC_FIFO_5') and ((../AdcHwUnitId = 'ADC2') or (../AdcHwUnitId = 'ADC3')) and ((ecu:get('AdcDMAPresent') = 'TRUE')))"
                                   true="Dma channels with sources EQADC_B_FISR5_CFFF5 and EQADC_B_FISR5_RFDF5  must be enabled in MCL for EQADCB FIFO 5"/>
                        </a:da>
                      </v:var>
                    
                      <!-- AdcClockSource -->
                      <v:var name="AdcClockSource" type="ENUMERATION">
                        <a:a name="DESC">
                             <a:v><![CDATA[EN:<html><p>This parameter is used to select the system clock signal of
                                                       the prescaler output clock signal.
                                                       <br>CLK_SRC_0 = Prescaler output clock is selected.</br>
                                                       <br>CLK_SRC_1 = System clock is selected - maximum frequency.</br></p></html>]]></a:v>
                        </a:a>
                        <a:a name="POSTBUILDVARIANTMULTIPLICITY" value="true"/>
                        <a:a name="POSTBUILDVARIANTVALUE" value="true"/>
                        <a:a name="SCOPE" value="LOCAL"/>
                        <a:a name="IMPLEMENTATIONCONFIGCLASS" type="IMPLEMENTATIONCONFIGCLASS">
                          <icc:v class="PostBuild">VariantPostBuild</icc:v>
                          <icc:v class="PreCompile">VariantPreCompile</icc:v>
                        </a:a>
                        <a:a name="OPTIONAL" value="true"/>
                        <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                        <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                        <a:a name="LABEL" value="Adc Source Clock"/>
                        <a:a name="UUID" value="ECUC:d9d2de7c-e7da-4d5a-a3c1-b241cb8342bd"/>
                        <a:da name="DEFAULT" value="CLK_SRC_0"/>
                        <a:da name="RANGE">
                            <a:v>CLK_SRC_0</a:v>
                            <a:v>CLK_SRC_1</a:v>
                        </a:da>
                      </v:var>

                      <!-- ADCHwUnitId -->
                      <v:var name="AdcHwUnitId" type="ENUMERATION">
                        <a:a name="DESC"> 
                             <a:v><![CDATA[EN:<html><p>Specifies the used ADC Hardware Unit.
                            <br>ADC0 and ADC1 are corresponding ADC number 0 and ADC number 1 of EQADCA</br> 
                            <br>ADC2 and ADC3 are corresponding ADC number 0 and ADC number 1 of EQADCB</br></p></html>]]></a:v>
                        </a:a>
                      <a:a name="POSTBUILDVARIANTVALUE" value="true"/>
                      <a:a name="SCOPE" value="LOCAL"/>
                      <a:a name="IMPLEMENTATIONCONFIGCLASS" type="IMPLEMENTATIONCONFIGCLASS">
                          <icc:v vclass="PostBuild">VariantPostBuild</icc:v>
                          <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                        </a:a>
                        <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                        <a:a name="LABEL" value="Adc Hardware Unit"/>
                        <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                        <a:a name="UUID" value="ECUC:0c231b0e-e445-4ffc-be38-5b9e4425a277"/>
                      <a:da name="DEFAULT" type="XPath" expr="concat('ADC', string(node:fallback(node:current()/../@index,'0')))"/>
                      <a:da name="RANGE" type="XPath" expr="ecu:list('Adc.AdcConfigSet.AdcHwUnit.AdcHwUnitId')"/>
                        <a:da name="INVALID" type="XPath">
                            <a:tst expr="text:uniq(../../*/AdcHwUnitId, .)" false="Duplicate Hw Unit id"/>
                          <a:tst expr="(num:i(count(ecu:list(concat('Adc.AdcConfigSet.AdcHwUnit',substring-after((.),'ADC'),'.AdcChannel.AdcChannelId'))))=0)"
                                 true="This hardware unit does not support any ADC channels, please select another hardware unit."/>
                        </a:da>
                      </v:var>
                      
                      <!-- AdcLogicalUnitId -->
                      <v:var name="AdcLogicalUnitId" type="INTEGER">
                        <a:a name="DESC"> 
                          <a:v><![CDATA[EN:<html><p>Specifies the Logical id of the Hardware Unit.</p></html>]]></a:v>
                        </a:a>
                      <a:a name="SCOPE" value="LOCAL"/>
                      <a:a name="IMPLEMENTATIONCONFIGCLASS" type="IMPLEMENTATIONCONFIGCLASS">
                          <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                          <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                        </a:a>
                        <a:a name="ORIGIN" value="NXP"/>
                        <a:a name="LABEL" value="Adc Logical Unit Id"/>
                        <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                        <a:a name="UUID" value="ECUC:f8f69c4d-d49e-4c7f-8651-5f7cfc5e3533"/>
                        <a:da name="DEFAULT" type="XPath" expr="node:fallback(node:current()/../@index, '0')"/>
                        <a:da name="RANGE" type="XPath">
                         <a:tst expr="(. &gt;= 0) and (. &lt; num:i(count(node:current()/../../*)))"
                         false="Value out of range: must be in range 0 to N-1 (N is number of configured units). Use the Calc button to calculate correct default value."/>
                         <a:tst expr="text:uniq(../../*/AdcLogicalUnitId, .)"
                         false="Duplicated value, AdcLogicalUnitId must be unique across all units. Use the Calc button to calculate correct default value."/>
                        </a:da>
                        <a:da name="INVALID" type="Range">
                          <a:tst expr="&lt;ecu:get(&apos;Adc.AdcConfigSet.AdcHwUnit&apos;)"/>
                          <a:tst expr="&gt;=0"/>
                        </a:da>
                      </v:var>
                      
                    <!-- AdcResolution -->
                      <v:var name="AdcResolution" type="ENUMERATION">
                          <a:a name="DESC">
                              <a:v><![CDATA[EN:<html><p>Used to set the ADC resolution mode.
                                  <ul>
                                  <li>BITS_8           - 8-bit conversion.</li>
                                  <li>BITS_10          - 10-bit conversion.</li>
                                  <li>BITS_12          - 12-bit conversion.</li>
                                  </ul>.</p></html>]]></a:v>
                          </a:a>
                          <a:a name="POSTBUILDVARIANTVALUE" value="true"/>    
                          <a:a name="SCOPE" value="LOCAL"/>
                          <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                              type="IMPLEMENTATIONCONFIGCLASS">
                          <icc:v vclass="PostBuild">VariantPostBuild</icc:v>
                          <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                          </a:a>
                          <a:a name="ORIGIN" value="NXP"/>
                          <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                          <a:a name="LABEL" value="Adc Resolution"/>
                          <a:a name="UUID" value="ECUC:2b4de5da-3319-4745-bf24-fc936c3f68b7"/>
                          <a:da name="DEFAULT" value="BITS_12"/>
                          <a:da name="RANGE">
                              <a:v>BITS_8</a:v>
                              <a:v>BITS_10</a:v>
                              <a:v>BITS_12</a:v>
                          </a:da>
                      </v:var>
                      
                       <!-- AdcPrescale -->
                      <v:var name="AdcPrescale" type="INTEGER">
                        <a:a name="DESC"> 
                             <a:v><![CDATA[EN:<html><p>ADCn Clock Prescaler (ADCn_CLK_PS bits in ADCn_CR register).
                                    The ADCn_CLK_PS field controls the system clock divide factor for the ADCn clock as in the following table:
                                    <br>ADCn_CLK_PS           System Clock Divide Factor</br>
                                    <br>0             -----   2</br>
                                    <br>1             -----   4</br>
                                    <br>2             -----   6</br>
                                    <br>...                    </br>
                                    <br>30            -----  62</br>
                                    <br>31            -----  64</br>
                                    Note: This parameter value is applicable only when the Prescaler output clock is selected in AdcClockSource parameter.</p></html>]]>
                            </a:v>
                        </a:a>
                        <a:a name="POSTBUILDVARIANTMULTIPLICITY" value="true"/>
                        <a:a name="POSTBUILDVARIANTVALUE" value="true"/>    
                        <a:a name="SCOPE" value="LOCAL"/>
                        <a:a name="IMPLEMENTATIONCONFIGCLASS" type="IMPLEMENTATIONCONFIGCLASS">
                          <icc:v class="PostBuild">VariantPostBuild</icc:v>
                          <icc:v class="PreCompile">VariantPreCompile</icc:v>
                        </a:a>
                        <a:a name="LABEL" value="Adc Prescaler Value"/>
                        <a:a name="OPTIONAL" value="true"/>
                        <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                        <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                        <a:a name="UUID" value="ECUC:43c026fc-c64d-4dd4-b273-8d45334a6f92"/>
                        <a:da name="DEFAULT" value="31"/>
                        <a:da name="INVALID" type="Range">
                          <a:tst expr="&lt;=31"/>
                          <a:tst expr="&gt;=0"/>
                        </a:da>
                      </v:var>
                      
                       <!-- AdcAltPrescale -->
                      <v:var name="AdcAltPrescale" type="INTEGER">
                        <a:a name="DESC"> 
                             <a:v><![CDATA[EN:<html><p>ADCn Clock Prescaler (ADCn_CLK_PS bits in ADCn_CR register).
                                    The ADCn_CLK_PS field controls the system clock divide factor for the ADCn clock as in the following table:
                                    <br>ADCn_CLK_PS           System Clock Divide Factor</br>
                                    <br>0             -----   2</br>
                                    <br>1             -----   4</br>
                                    <br>2             -----   6</br>
                                    <br>...                    </br>
                                    <br>30            -----  62</br>
                                    <br>31            -----  64</br>
                                    Note: This parameter value is applicable only when the Prescaler output clock is selected in AdcClockSource parameter.</p></html>]]>
                            </a:v>
                        </a:a>
                        <a:a name="POSTBUILDVARIANTVALUE" value="true"/>
                        <a:a name="SCOPE" value="LOCAL"/>
                        <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                             type="IMPLEMENTATIONCONFIGCLASS">
                          <icc:v class="PostBuild">VariantPostBuild</icc:v>
                          <icc:v class="PreCompile">VariantPreCompile</icc:v>
                        </a:a>
                        <a:a name="LABEL" value="Adc Alternate Prescaler Value"/>
                        <a:a name="OPTIONAL" value="true"/>
                        <a:a name="ORIGIN" value="NXP"/>
                        <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                        <a:a name="UUID" value="ECUC:43c026fc-c64d-4dd4-b273-8d85334a6f92"/>
                        <a:da name="DEFAULT" value="31"/>
                        <a:da name="INVALID" type="Range">
                          <a:tst expr="&lt;=31"/>
                          <a:tst expr="&gt;=0"/>
                        </a:da>
                      </v:var>
                      
                      <!-- AdcExternalMultiplexing -->
                      <v:var name="AdcExternalMultiplexing" type="BOOLEAN">
                        <a:a name="DESC"> 
                             <a:v><![CDATA[EN:<html><p>Enables external multiplexing (ADCn_EMUX bit in ADCn_CR register). The ADC units of one EQADC (0-1, 2-3) cannot have external multiplexing enabled at the same time. Note: This is an Implementation Specific Parameter.</p></html>]]></a:v>
                        </a:a>
                        <a:a name="POSTBUILDVARIANTVALUE" value="true"/>    
                        <a:a name="SCOPE" value="LOCAL"/>
                        <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                             type="IMPLEMENTATIONCONFIGCLASS">
                          <icc:v class="PostBuild">VariantPostBuild</icc:v>
                          <icc:v class="PreCompile">VariantPreCompile</icc:v>
                        </a:a>
                        <a:a name="LABEL" value="Adc External Multiplexer"/>
                        <a:a name="OPTIONAL" value="true"/>
                        <a:a name="ORIGIN" value="NXP"/>
                        <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                        <a:a name="UUID" value="ECUC:d1dd89fe-fdb8-43e4-a51d-927bd64e8e88"/>
                        <a:da name="DEFAULT" value="false"/>
                        <a:da name="INVALID" type="XPath">
                          <a:tst expr="node:exists(../../*[AdcHwUnitId = 'ADC0']/AdcExternalMultiplexing) and (../../*[AdcHwUnitId = 'ADC0']/AdcExternalMultiplexing = 'true') and node:exists(../../*[AdcHwUnitId = 'ADC1']/AdcExternalMultiplexing) and (../../*[AdcHwUnitId = 'ADC1']/AdcExternalMultiplexing = 'true')"
                                 true="This parameter can not be enabled for both for both ADC0 and ADC1"/>
                          <a:tst expr="node:exists(../../*[AdcHwUnitId = 'ADC2']/AdcExternalMultiplexing) and (../../*[AdcHwUnitId = 'ADC2']/AdcExternalMultiplexing = 'true') and node:exists(../../*[AdcHwUnitId = 'ADC3']/AdcExternalMultiplexing) and (../../*[AdcHwUnitId = 'ADC3']/AdcExternalMultiplexing = 'true')"
                                 true="This parameter can not be enabled for both for both ADC2 and ADC3"/>
                        </a:da>
                      </v:var>
                      
                      <!-- AdcCalibration -->
                      <v:var name="AdcCalibration" type="BOOLEAN">
                        <a:a name="DESC"><a:v><![CDATA[EN:<html><p>
                                   Enables/disables the calibration on this hw unit.
                                   Besides this configuration parameter it is also needed to enable &quotAdcCalibrationApi&quot parameter
                                   and "AdcChannelCalibration" for the channel which should be calibrated.
                                   Note: This is an Implementation Specific Parameter.
                                   </p></html>]]></a:v>
                        </a:a>
                        <a:a name="POSTBUILDVARIANTVALUE" value="true"/>    
                        <a:a name="SCOPE" value="LOCAL"/>
                        <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                             type="IMPLEMENTATIONCONFIGCLASS">
                          <icc:v vclass="PostBuild">VariantPostBuild</icc:v>
                          <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                        </a:a>
                        <a:a name="LABEL" value="Adc Hardware Calibration"/>
                        <a:a name="ORIGIN" value="NXP"/>
                        <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                        <a:a name="UUID" value="ECUC:c24b64bc-f39d-4f6b-af73-386e6c09ac55"/>
                        <a:da name="DEFAULT" value="false"/>
                        <a:da name="INVALID" type="XPath">
                          <a:tst expr="(. = 'true') and (../../../../../AutosarExt/AdcEnableCalibration = 'false')"
                                 true="The &quot;Adc Hardware Calibration&quot; parameter can not be enabled if &quot;Adc Enable Calibration Api&quot; parameter is disabled"/>
                        </a:da>
                      </v:var>
                      
                    <!-- AdcChannel Big container -->
                    <!-- /** @implements AdcChannel_Object */ -->
                      <v:lst name="AdcChannel" type="MAP">
                        <a:da name="MIN" value="1"/>
                        <v:ctr name="AdcChannel" type="IDENTIFIABLE">
                           <a:a name="DESC">
                            <a:v><![CDATA[EN:<html><p>This container contains the channel configuration (parameters) depending on the hardware capability.</p></html>]]></a:v>
                          </a:a>
                          <a:a name="UUID" value="ECUC:1bda8cf5-cdd6-4b14-8b9f-8a6f6f567ed8"/>
                          <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v mclass="PreCompile">VariantPostBuild</icc:v>
                              <icc:v mclass="PreCompile">VariantPreCompile</icc:v>
                          </a:a>
                          <a:da name="INVALID" type="XPath">
                            <a:tst
                            expr="
                            not
                            (
                              contains(substring-before(concat(text:join(../../../../../*/AdcHwUnit/*/AdcChannel/*/@name, ','), ','), concat(name(.), ',')), concat(name(.), ','))
                              or
                              contains(substring-after(concat(text:join(../../../../../*/AdcHwUnit/*/AdcChannel/*/@name, ','), ','), concat(name(.), ',')), concat(name(.), ','))
                            )
                            "
                            false="Duplicate AdcChannel Names, Channel names must be unique across HWUnits"
                            />
                          </a:da>

                          <!-- AdcChannelConvTime -->
                          <v:var name="AdcChannelConvTime" type="INTEGER">
                            <a:a name="DESC">
                                <a:v><![CDATA[EN:<html><p>Configuration of conversion time, i.e. the time during which the analogue value is converted into digital representation, (in clock cycles) for each channel, if supported by hardware.
                                                          This parameter is not used by the current implementation.</p></html>]]></a:v>
                            </a:a>
                            <a:a name="POSTBUILDVARIANTMULTIPLICITY" value="true"/>
                            <a:a name="POSTBUILDVARIANTVALUE" value="true"/>    
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v class="PostBuild">VariantPostBuild</icc:v>
                              <icc:v class="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="OPTIONAL" value="true"/>
                            <a:a name="LABEL" value="Adc Channel Conversion Time"/>
                            <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:25414223-a7a9-4f46-bb8f-7f86fa8b5500"/>
                            <a:da name="DEFAULT" value="0"/>
                            <a:da name="READONLY" value="true"/>
                            <a:da name="INVALID" type="Range">
                              <a:tst expr="&lt;=18446744073709551615"/>
                              <a:tst expr="&gt;=0"/>
                            </a:da>
                          </v:var>

                          <!-- AdcChannelHighLimit -->
                          <v:var name="AdcChannelHighLimit" type="INTEGER">
                            <a:a name="DESC">
                                <a:v><![CDATA[EN:<html><p>High limit - used for limit checking.</p></html>]]></a:v>
                            </a:a>
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v class="PreCompile">VariantPostBuild</icc:v>
                              <icc:v class="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="OPTIONAL" value="true"/>
                            <a:a name="LABEL" value="Adc Channel High Limit"/>
                            <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:ca1022a6-a5bb-44e1-b817-ece122e5951b"/>
                            <a:da name="DEFAULT" value="0"/>
                          <a:da name="EDITABLE" type="XPath" expr="node:exists(../AdcChannelLimitCheck) and (../AdcChannelLimitCheck = 'true') and ../../../../../../AdcGeneral/AdcEnableLimitCheck = 'true'"/>
                            <a:da name="INVALID" type="Range">
                              <a:tst expr="&lt;=18446744073709551615"/>
                              <a:tst expr="&gt;=0"/>
                            </a:da>
                            <a:da name="RANGE" type="XPath">
                            <a:tst expr="(node:exists(../AdcChannelLowLimit) and (. &gt;= ../AdcChannelLowLimit))"
                            false="Adc Channel High Limit value should be greater or equal than Adc Channel Low Limit value."/>
                            </a:da>
                          </v:var>

                          
                          <!-- AdcLogicalChannelId -->
                          <v:var name="AdcLogicalChannelId" type="INTEGER">
                            <a:a name="DESC">
                              <a:v><![CDATA[EN:<html><p>This is the logical Id of the ADC channel.</p></html>]]></a:v>
                            </a:a>
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                              <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="LABEL" value="Adc Logical Channel ID"/>
                            <a:a name="ORIGIN" value="NXP"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:e2e71142-5b64-4236-b15f-9b880ca8325c"/>
                            <a:da name="DEFAULT" type="XPath" expr="node:fallback(node:current()/../@index, '0')"/>
                            <a:da name="RANGE" type="XPath">
                             <a:tst expr="(. &gt;= 0) and (. &lt; num:i(count(node:current()/../../*)))"
                             false="Value out of range: must be in range 0 to N-1 (N is number of configured channels). Use the Calc button to calculate correct default value."/>
                             <a:tst expr="text:uniq(../../*/AdcLogicalChannelId, .)"
                             false="Duplicated value, AdcLogicalChannelId must be unique across all channels. Use the Calc button to calculate correct default value."/>
                            </a:da>
                            <a:da name="INVALID" type="Range">
                              <a:tst expr="&lt;=1024"/>
                              <a:tst expr="&gt;=0"/>
                            </a:da>
                          </v:var>

                          <!-- AdcChannelId -->
                          <v:var name="AdcChannelId" type="ENUMERATION">
                            <a:a name="DESC">
                              <a:v><![CDATA[EN:<html><p>This parameter defines the assignment of the channel to the physical ADC hardware channel. Note: Range of the ADC Channels depends on the selected package.</p></html>]]></a:v>
                            </a:a>
                            <a:a name="POSTBUILDVARIANTVALUE" value="true"/>
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v vclass="PostBuild">VariantPostBuild</icc:v>
                              <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="LABEL" value="Adc Hardware Channel Id"/>
                            <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:029500a6-3405-401f-a1c2-a159e534c0be"/>
                            <a:da name="DEFAULT" type="XPath" expr="ecu:list(concat('Adc.AdcConfigSet.AdcHwUnit',substring-after(string(node:fallback(../../../AdcHwUnitId,'ADC0')), 'ADC'),'.AdcChannel.AdcChannelId'))[position()-1=node:fallback(node:current()/../@index,0)]"></a:da>
                            <a:da name="RANGE" type="XPath" expr="ecu:list(concat('Adc.AdcConfigSet.AdcHwUnit',substring-after(string(node:fallback(../../../AdcHwUnitId,'ADC0')), 'ADC'),'.AdcChannel.AdcChannelId'))"/>
                            <a:da name="INVALID" type="XPath">
                                <a:tst expr="text:uniq(../../*/AdcChannelId, .)" false="Duplicate physical channel"/>
                            </a:da>
                          </v:var>

                          <!-- AdcChannelLimitCheck -->
                          <v:var name="AdcChannelLimitCheck" type="BOOLEAN">
                            <a:a name="DESC">
                                <a:v><![CDATA[EN:<html><p>Enables or disables limit checking for an ADC channel.</p></html>]]></a:v>
                            </a:a>
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v class="PreCompile">VariantPostBuild</icc:v>
                              <icc:v class="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="OPTIONAL" value="true"/>
                            <a:a name="LABEL" value="Adc Channel Limit Check"/>
                            <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:3c8fd425-d4b7-4550-aea0-9c4ce253f9e4"/>
                            <a:da name="DEFAULT" value="false"/>
                          <a:da name="EDITABLE" type="XPath" expr="(../../../../../../AdcGeneral/AdcEnableLimitCheck = 'true') and (../../../../@index = 0)"/>
                            <a:a name="INVALID" type="XPath">
                               <a:tst expr="(../../../../../../AdcGeneral/AdcEnableLimitCheck = 'false' and .='true')" true ="AdcChannelLimitCheck must be disabled when AdcEnableLimitCheck is false."/>
                            </a:a>
                          </v:var>

                          <!-- AdcChannelLowLimit -->
                          <v:var name="AdcChannelLowLimit" type="INTEGER">
                            <a:a name="DESC">
                                <a:v><![CDATA[EN:<html><p>Low limit - used for limit checking.</p></html>]]></a:v>
                            </a:a>
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v class="PreCompile">VariantPostBuild</icc:v>
                              <icc:v class="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="OPTIONAL" value="true"/>
                            <a:a name="LABEL" value="Adc Channel Low Limit"/>
                            <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:ed93d1f8-7c4d-459e-b781-d7b28fe97cb7"/>
                            <a:da name="DEFAULT" value="0"/>
                          <a:da name="EDITABLE" type="XPath" expr="node:exists(../AdcChannelLimitCheck) and (../AdcChannelLimitCheck = 'true') and (../../../../../../AdcGeneral/AdcEnableLimitCheck = 'true') and (../../../../@index = 0)"/>
                            <a:da name="INVALID" type="Range">
                              <a:tst expr="&lt;=18446744073709551615"/>
                              <a:tst expr="&gt;=0"/>
                            </a:da>
                            <a:da name="RANGE" type="XPath">
                            <a:tst expr="node:exists(../AdcChannelHighLimit) and (. &lt;= ../AdcChannelHighLimit)"
                            false="Adc Channel Low Limit value should be less or equal than Adc Channel High Limit value."/>
                            </a:da>
                          </v:var>

                          <!-- AdcChannelRangeSelect -->
                          <v:var name="AdcChannelRangeSelect" type="ENUMERATION">
                            <a:a name="DESC">
                                <a:v><![CDATA[EN:<html><p>In case of active limit checking: defines which conversion values are taken into account related to the boarders defined with AdcChannelLowLimit and AdcChannelHighLimit.</p></html>]]></a:v>
                            </a:a>
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v class="PreCompile">VariantPostBuild</icc:v>
                              <icc:v class="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="OPTIONAL" value="true"/>
                            <a:a name="LABEL" value="Adc Channel Range Select"/>
                            <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:4f3db645-2a27-4289-bef1-a3c669f2d86c"/>
                            <a:da name="DEFAULT" value="ADC_RANGE_ALWAYS"/>
                          <a:da name="EDITABLE" type="XPath" expr="node:exists(../AdcChannelLimitCheck) and (../AdcChannelLimitCheck = 'true') and (../../../../../../AdcGeneral/AdcEnableLimitCheck = 'true') and (../../../../@index = 0)"/>
                            <a:da name="RANGE">
                              <a:v>ADC_RANGE_ALWAYS</a:v>
                              <a:v>ADC_RANGE_BETWEEN</a:v>
                              <a:v>ADC_RANGE_NOT_BETWEEN</a:v>
                              <a:v>ADC_RANGE_NOT_OVER_HIGH</a:v>
                              <a:v>ADC_RANGE_NOT_UNDER_LOW</a:v>
                              <a:v>ADC_RANGE_OVER_HIGH</a:v>
                              <a:v>ADC_RANGE_UNDER_LOW</a:v>
                            </a:da>
                          </v:var>

                          <!-- AdcChannelRefVoltsrcHigh -->
                          <v:var name="AdcChannelRefVoltsrcHigh" type="ENUMERATION">
                          <a:a name="DESC">
                            <a:v><![CDATA[EN:<html><p>Upper reference voltage source for each channel.This parameter is not used by the current implementation.</p></html>]]></a:v>
                          </a:a>
                            <a:a name="POSTBUILDVARIANTMULTIPLICITY" value="true"/>
                            <a:a name="POSTBUILDVARIANTVALUE" value="true"/>    
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v class="PostBuild">VariantPostBuild</icc:v>
                              <icc:v class="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="OPTIONAL" value="true"/>
                            <a:a name="LABEL" value="Adc High Reference Voltage"/>
                            <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:e141efcc-a3d5-4127-bf67-52e7ca378d89"/>
                            <a:da name="DEFAULT" value="UPPER_REF_VOLT_0"/>
                            <a:da name="READONLY" value="true"/>
                            <a:da name="RANGE">
                              <a:v>UPPER_REF_VOLT_0</a:v>
                            </a:da>
                          </v:var>

                          <!-- AdcChannelRefVoltsrcLow -->
                          <v:var name="AdcChannelRefVoltsrcLow" type="ENUMERATION">
                          <a:a name="DESC">
                            <a:v><![CDATA[EN:<html><p>Lower reference voltage source for each channel.This parameter is not used by the current implementation.</p></html>]]></a:v>
                          </a:a>
                            <a:a name="POSTBUILDVARIANTMULTIPLICITY" value="true"/>
                            <a:a name="POSTBUILDVARIANTVALUE" value="true"/>    
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v class="PostBuild">VariantPostBuild</icc:v>
                              <icc:v class="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="OPTIONAL" value="true"/>
                            <a:a name="LABEL" value="Adc Low Reference Voltage"/>
                            <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:f71ff945-81dc-4e80-a7bd-587776a932b7"/>
                            <a:da name="DEFAULT" value="LOWER_REF_VOLT_0"/>
                            <a:da name="READONLY" value="true"/>
                            <a:da name="RANGE">
                              <a:v>LOWER_REF_VOLT_0</a:v>
                            </a:da>
                          </v:var>

                          <!-- AdcChannelResolution -->
                          <v:var name="AdcChannelResolution" type="INTEGER">
                            <a:a name="DESC">
                              <a:v><![CDATA[EN:<html><p>Resolution of converted value. Valid resolution values are: 12-bit, 10-bit and 8-bit.</p></html>]]></a:v>
                            </a:a>
                            <a:a name="POSTBUILDVARIANTMULTIPLICITY" value="true"/>
                            <a:a name="POSTBUILDVARIANTVALUE" value="true"/>    
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v class="PostBuild">VariantPostBuild</icc:v>
                              <icc:v class="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="OPTIONAL" value="true"/>
                            <a:a name="LABEL" value="Adc Channel Resolution"/>
                            <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:115f2554-ffe3-4171-8abd-d2caa3a498c7"/>
                            <a:da name="DEFAULT" value="12"/>
                            <a:da name="READONLY" value="true"/>
                            <a:da name="INVALID" type="Range">
                              <a:tst expr="&lt;=63"/>
                              <a:tst expr="&gt;=1"/>
                            </a:da>
                          </v:var>

                          <!-- AdcChannelCalibration -->
                          <v:var name="AdcChannelCalibration" type="BOOLEAN">
                            <a:a name="DESC">
                              <a:v><![CDATA[EN:<html><p>Indicates if the returning channel conversion result is calibrated (CAL bit in conversion command message). Note that besides this configuration item it is also needed to globally enable calibration by "AdcCalibrationApi" and to enable calibration on hw unit by "AdcCalibration" parameter. Note: This is an Implementation Specific Parameter.</p></html>]]></a:v>
                            </a:a>
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v class="PostBuild">VariantPostBuild</icc:v>
                              <icc:v class="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="LABEL" value="Adc Channel Calibration"/>
                            <a:a name="ORIGIN" value="NXP"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:54bf9db3-2c2c-45ba-81d0-4df31213e7ab"/>
                            <a:da name="DEFAULT" value="false"/>
                            <a:da name="INVALID" type="XPath">
                              <a:tst expr="(. = 'true') and (../../../AdcCalibration = 'false')"
                                     true="The &quot;Adc Channel Calibration&quot; parameter can not be enabled if &quot;Adc Hardware Calibration&quot; parameter is disabled"/>
                              </a:da>
                          </v:var>
                          
                          <!-- AdcChannelSampTime -->
                          <v:var name="AdcChannelSampTime" type="INTEGER">
                          <a:a name="DESC">
                            <a:v><![CDATA[EN:<html><p>Sampling time, i.e. the time during whuch the value is sampled, (in clock cycles) for each channel.
                            
                                <br>0    ---------      ADC_2_CLOCK_CYCLES</br>
                                <br>1    ---------      ADC_8_CLOCK_CYCLES</br>
                                <br>2    ---------      ADC_64_CLOCK_CYCLES</br>
                                <br>3    ---------      ADC_128_CLOCK_CYCLES</br>
                                
                                <br>When AdcExternalMultiplexing parameter is enabled in this case EQADC_ADC_64_CLOCK_CYCLES_U32 or EQADC_ADC_128_CLOCK_CYCLES_U32 sampling cycles is recommended.</br>
                                </p></html>]]>
                            </a:v>
                          </a:a>
                            <a:a name="POSTBUILDVARIANTMULTIPLICITY" value="true"/>
                            <a:a name="POSTBUILDVARIANTVALUE" value="true"/>    
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v class="PostBuild">VariantPostBuild</icc:v>
                              <icc:v class="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="OPTIONAL" value="true"/>
                            <a:a name="LABEL" value="Adc Channel Sampling time"/>
                            <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:5fab3df1-dd6e-4a42-8a60-21d1ee5a530a"/>
                            <a:da name="DEFAULT" value="3"/>
                            <a:da name="READONLY" value="true"/>
                            <a:da name="INVALID" type="Range">
                              <a:tst expr="&gt;=0"/>
                              <a:tst expr="&lt;=3"/>
                            </a:da>
                          </v:var>
                        </v:ctr>
                      </v:lst>

                      <!-- AdcGroup Big container -->
                      <!-- /** @implements AdcGroup_Object */ -->
                      <v:lst name="AdcGroup" type="MAP">
                        <a:da name="MIN" value="1"/>

                        <!-- AdcGroup -->
                        <v:ctr name="AdcGroup" type="IDENTIFIABLE">
                          <a:a name="DESC">
                            <a:v><![CDATA[EN:<html><p>This container contains the Group configuration (parameters).</p></html>]]></a:v>
                          </a:a>
                          <a:a name="UUID" value="ECUC:1a9750b2-e985-4bfe-afeb-69760dbfdddd"/>
                          <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v mclass="PreCompile">VariantPostBuild</icc:v>
                              <icc:v mclass="PreCompile">VariantPreCompile</icc:v>
                          </a:a>
                          <a:da name="INVALID" type="XPath">
                            <a:tst
                              expr="
                              not
                              (
                                contains(substring-before(concat(text:join(../../../../../*/AdcHwUnit/*/AdcGroup/*/@name, ','), ','), concat(name(.), ',')), concat(name(.), ','))
                                or
                                contains(substring-after(concat(text:join(../../../../../*/AdcHwUnit/*/AdcGroup/*/@name, ','), ','), concat(name(.), ',')), concat(name(.), ','))
                              )
                              "
                              false="Duplicate AdcGroupNames, Group Symbolic names must be unique across HWUnits."
                            />
                          </a:da>                        
                          
                          <!-- AdcGroupAccessMode -->
                          <v:var name="AdcGroupAccessMode" type="ENUMERATION">
                            <a:a name="DESC">
                              <a:v><![CDATA[EN:<html><p>Type of access mode to group conversion results.</p></html>]]></a:v>
                            </a:a>
                            <a:a name="POSTBUILDVARIANTVALUE" value="true"/> 
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v vclass="PostBuild">VariantPostBuild</icc:v>
                              <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="LABEL" value="Adc Group Access Mode"/>
                            <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:e0b07dba-d097-4aa4-9b2b-c87b5e68fbff"/>
                            <a:da name="DEFAULT" value="ADC_ACCESS_MODE_SINGLE"/>
                            <a:da name="RANGE">
                              <a:v>ADC_ACCESS_MODE_SINGLE</a:v>
                              <a:v>ADC_ACCESS_MODE_STREAMING</a:v>
                            </a:da>
                            <a:da name="INVALID" type="XPath">
                              <a:tst expr="((../AdcGroupAccessMode='ADC_ACCESS_MODE_STREAMING') and (../AdcGroupTriggSrc='ADC_TRIGG_SRC_SW') and (../AdcGroupConversionMode='ADC_CONV_MODE_ONESHOT'))"
                              true="Group cannot be configured with streaming access mode when it is Software triggered in one shot mode."/>
                              <a:tst expr="((node:fallback(../../../../../../AutosarExt/AdcOptimizeOneShotHwTriggerConversions,'false') = 'true') and (.='ADC_ACCESS_MODE_STREAMING'))"
                              true="Streaming access mode cannot be configured if Adc/AutosarExt/AdcOptimizeOneShotHwTriggerConversions is enabled."/>
                            </a:da>
                          </v:var>

                          <!-- AdcGroupConversionMode -->
                          <!-- /** @implements AdcGroupConversionMode_Object */ -->
                          <v:var name="AdcGroupConversionMode" type="ENUMERATION">
                            <a:a name="DESC">
                              <a:v><![CDATA[EN:<html><p>Type of Conversion mode of the channel group.</p></html>]]></a:v>
                            </a:a>
                            <a:a name="POSTBUILDVARIANTVALUE" value="true"/> 
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v vclass="PostBuild">VariantPostBuild</icc:v>
                              <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="LABEL" value="Adc Group Conversion Mode"/>
                            <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:cecb9b6c-d664-43fa-80b7-5122d3a178cc"/>
                            <a:da name="DEFAULT" value="ADC_CONV_MODE_ONESHOT"/>
                            <a:da name="RANGE">
                              <a:v>ADC_CONV_MODE_CONTINUOUS</a:v>
                              <a:v>ADC_CONV_MODE_ONESHOT</a:v>
                            </a:da>
                            <a:da name="INVALID" type="XPath">
                              <a:tst expr="((../AdcGroupTriggSrc='ADC_TRIGG_SRC_HW') and (../AdcGroupConversionMode='ADC_CONV_MODE_CONTINUOUS'))"
                              true="Group cannot be configured for continuous conversion mode when it is hardware triggered."/>
                            </a:da>
                          </v:var>

                          <!-- AdcGroupConversionType -->
                          <v:var name="AdcGroupConversionType" type="ENUMERATION">
                            <a:a name="DESC">
                              <a:v><![CDATA[EN:<html><p>Normal or Injected conversion type.</p></html>]]></a:v>
                            </a:a>
                            <a:a name="POSTBUILDVARIANTVALUE" value="true"/> 
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v vclass="PostBuild">VariantPostBuild</icc:v>
                              <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="LABEL" value="Adc Group Conversion Type"/>
                            <a:a name="ORIGIN" value="NXP"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:9c7e30ee-cca4-4874-90b2-0492458cb413"/>
                            <a:da name="DEFAULT" value="ADC_CONV_TYPE_NORMAL"/>
                            <a:a name="READONLY" value="true"/>
                            <a:da name="RANGE">
                              <a:v>ADC_CONV_TYPE_NORMAL</a:v>
                              <a:v>ADC_CONV_TYPE_INJECTED</a:v>
                            </a:da>
                          </v:var>

                          <!-- AdcGroupId -->
                          <v:var name="AdcGroupId" type="INTEGER">
                            <a:a name="DESC">
                              <a:v><![CDATA[EN:<html><p>Numeric ID of the group. This parameter is the symbolic name to be used on the API. This symbolic name allows accessing Channel Group data. This value will be assigned to the symbolic name derived of the AdcGroup container shortName.</p></html>]]></a:v>
                            </a:a>
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                              <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="LABEL" value="Adc Group Id"/>
                            <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="true"/>
                            <a:a name="UUID" value="ECUC:84e98da0-f4af-4c03-a4a4-a9b7efd5b563"/>
                            <a:da name="DEFAULT" type="XPath" expr="node:fallback(node:current()/../@index,'0')"/>
                            <a:da name="RANGE" type="XPath">
                              <a:tst expr="(node:fallback(.,0) &gt;= 0) and (node:fallback(.,0) &lt; num:i(count(node:fallback(../../../../*/AdcGroup/*,1))))"
                              false="Value out of range: must be in range 0 to N-1 (N is number of configured groups). Use the Calc button to calculate correct default value."/>
                              <a:tst expr="text:uniq(node:fallback(../../../../*/AdcGroup/*/AdcGroupId,text:split('0') ),node:fallback(.,1))"
                              false="Duplicate AdcGroupId, GroupIds must be unique across HWUnits."/>
                            </a:da>
                            <a:da name="INVALID" type="Range">
                              <a:tst expr="&lt;=1023"/>
                              <a:tst expr="&gt;=0"/>
                            </a:da>
                          </v:var>

                          <!-- AdcGroupPriority -->
                          <!-- /** @implements AdcGroupPriority_Object*/ -->
                          <v:var name="AdcGroupPriority" type="INTEGER">
                          <a:a name="DESC">
                            <a:v><![CDATA[EN:<html><p>Priority level of the AdcGroup. This item is ignored if Adc/AdcGeneral/AdcPriorityImplementation is defined to ADC_PRIORITY_NONE.</p></html>]]></a:v>
                          </a:a>
                            <a:a name="POSTBUILDVARIANTMULTIPLICITY" value="true"/>
                            <a:a name="POSTBUILDVARIANTVALUE" value="true"/> 
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v class="PostBuild">VariantPostBuild</icc:v>
                              <icc:v class="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="LABEL" value="Adc Group Priority"/>
                            <a:a name="OPTIONAL" value="true"/>
                            <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:1f39cff8-368c-4814-bbce-34a529f2e9f8"/>
                            <a:da name="DEFAULT" value="0"/>
                            <a:a name="EDITABLE" type="XPath">
                              <a:tst expr="../../../../../../AdcGeneral/AdcPriorityImplementation != 'ADC_PRIORITY_NONE'"/>
                            </a:a>
                            <a:da name="INVALID" type="Range">
                              <a:tst expr="&lt;=255"/>
                              <a:tst expr="&gt;=0"/>
                            </a:da>
                            <a:da name="RANGE" type="XPath"> 
                              <a:tst expr="(node:fallback(../AdcGroupConversionType, 'ADC_CONV_TYPE_NORMAL') = 'ADC_CONV_TYPE_NORMAL') and 
                                           (node:fallback(../AdcGroupTriggSrc, 'ADC_TRIGG_SRC_SW') = 'ADC_TRIGG_SRC_SW') and 
                                           node:exists(node:fallback(../../../AdcGroup/*[AdcGroupTriggSrc='ADC_TRIGG_SRC_HW']/AdcGroupPriority, 0)) and 
                                           (node:fallback(.,0) &gt; (num:min(node:fallback(../../../AdcGroup/*[AdcGroupTriggSrc='ADC_TRIGG_SRC_HW']/AdcGroupPriority, 0))))"
                                     true="Normal SW Triggered Groups cannot have priority more than HW Triggered Groups"/>
                            </a:da>
                          </v:var>

                          <!-- AdcGroupReplacement -->
                          <v:var name="AdcGroupReplacement" type="ENUMERATION">
                            <a:a name="DESC">
                              <a:v><![CDATA[EN:<html><p>Replacement mechanism used on ADC group level, if a group conversion is interrupted by a group which has a higher priority. It's fixed to Abort/Restart</p></html>]]></a:v>
                            </a:a>
                            <a:a name="POSTBUILDVARIANTMULTIPLICITY" value="true"/>
                            <a:a name="POSTBUILDVARIANTVALUE" value="true"/> 
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v class="PostBuild">VariantPostBuild</icc:v>
                              <icc:v class="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="OPTIONAL" value="true"/>
                            <a:a name="LABEL" value="Adc Group Replacement"/>
                            <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:040e7ff3-d837-4037-9a61-c284bbad9a32"/>
                            <a:da name="DEFAULT" value="ADC_GROUP_REPL_ABORT_RESTART"/>
                            <a:da name="READONLY" value="true"/>
                            <a:da name="RANGE">
                              <a:v>ADC_GROUP_REPL_ABORT_RESTART</a:v>
                              <a:v>ADC_GROUP_REPL_SUSPEND_RESUME</a:v>
                            </a:da>
                          </v:var>

                          <!-- AdcGroupTriggSrc -->
                          <v:var name="AdcGroupTriggSrc" type="ENUMERATION">
                            <a:a name="DESC">
                              <a:v>
                                <![CDATA[EN:<html><p>Type of source event that starts a group conversion. It' s possible select Hw or Sw trigger.
                              In case of HW trigger source the actual HW trigger source will be selected by the "AdcHwTrigSrc" parameter and it can be any of the supported HW trigger sources available for this controller.
                              </p></html>]]>
                              </a:v>
                            </a:a>
                            <a:a name="POSTBUILDVARIANTVALUE" value="true"/> 
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v vclass="PostBuild">VariantPostBuild</icc:v>
                              <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="LABEL" value="Adc Group Trigger Source"/>
                            <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:d6ca518c-2748-42bb-b382-6b052094b115"/>
                            <a:da name="DEFAULT" value="ADC_TRIGG_SRC_SW"/>
                            <a:a name="INVALID" type="XPath">
                              <a:tst expr="((../../../../../../AdcGeneral/AdcHwTriggerApi = 'false') and (. = 'ADC_TRIGG_SRC_HW'))"
                                     true="Adc Hw Trigger API is switched off! Cannot configure any groups in HW triggered mode!"/>
                              <a:tst expr="((../../../../../../AdcGeneral/AdcEnableStartStopGroupApi = 'false') and (. = 'ADC_TRIGG_SRC_SW'))"
                                     true="Adc_StartStopGroup API is switched off! Cannot configure any groups in SW triggered mode!"/>
                              <a:tst expr="((. = 'ADC_TRIGG_SRC_HW') and not(node:exists(../AdcHwTrigSrc)))"
                                     true="Please enable AdcHwTrigSrc!"/>
                              <a:tst expr="((node:fallback(../../../../../../AutosarExt/AdcOptimizeOneShotHwTriggerConversions,'false') = 'true') and (.='ADC_TRIGG_SRC_SW'))"
                                     true="Software triggered groups cannot be configured if Adc/AutosarExt/AdcOptimizeOneShotHwTriggerConversions is enabled."/>                              
                            </a:a>
                            <a:da name="RANGE">
                              <a:v>ADC_TRIGG_SRC_HW</a:v>
                              <a:v>ADC_TRIGG_SRC_SW</a:v>
                            </a:da>
                          </v:var>

                          <!-- AdcHwTrigSignal -->
                          <v:var name="AdcHwTrigSignal" type="ENUMERATION">
                            <a:a name="DESC">
                              <a:v><![CDATA[EN:<html><p>Configures on which edge of the hardware trigger signal the driver should reach, i.e. start the conversion.</p></html>]]></a:v>
                            </a:a>
                            <a:a name="POSTBUILDVARIANTMULTIPLICITY" value="true"/>
                            <a:a name="POSTBUILDVARIANTVALUE" value="true"/> 
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v class="PostBuild">VariantPostBuild</icc:v>
                              <icc:v class="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="LABEL" value="Adc Group Trigger Signal"/>
                            <a:a name="OPTIONAL" value="true"/>
                            <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:52c43528-a85b-4dcc-b5b5-7ab3e18e67ac"/>
                            <a:da name="DEFAULT" value="ADC_HW_TRIG_RISING_EDGE"/>
                            <a:a name="EDITABLE" type="XPath">
                            <a:tst expr="(../../../../../../AdcGeneral/AdcHwTriggerApi = 'true') and (../AdcGroupTriggSrc = 'ADC_TRIGG_SRC_HW')"/>
                            </a:a>
                            <a:da name="RANGE">
                              <a:v>ADC_HW_TRIG_FALLING_EDGE</a:v>
                              <a:v>ADC_HW_TRIG_RISING_EDGE</a:v>
                              <a:v>ADC_HW_TRIG_BOTH_EDGES</a:v>
                            </a:da>
                          </v:var>

                          <!-- AdcHwTrigTimer -->
                          <v:var name="AdcHwTrigTimer" type="INTEGER">
                            <a:a name="DESC">
                              <a:v><![CDATA[EN:<html><p>Reload value of the ADC module embedded timer. This parameter is not used by the current implementation.</p></html>]]></a:v>
                            </a:a>
                            <a:a name="POSTBUILDVARIANTMULTIPLICITY" value="true"/>
                            <a:a name="POSTBUILDVARIANTVALUE" value="true"/> 
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v class="PostBuild">VariantPostBuild</icc:v>
                              <icc:v class="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="OPTIONAL" value="true"/>
                            <a:a name="LABEL" value="Adc Group Trigger Timer"/>
                            <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:5fe66517-3dfa-49cf-b1cd-a111b7baaefe"/>
                            <a:da name="DEFAULT" value="0"/>
                            <a:da name="READONLY" value="true"/>
                            <a:da name="INVALID" type="Range">
                              <a:tst expr="&lt;=18446744073709551615"/>
                              <a:tst expr="&gt;=0"/>
                            </a:da>
                          </v:var>

                          <!-- AdcNotification -->
                          <!-- /** @implements AdcNotification_Object */ -->
                          <v:var name="AdcNotification" type="FUNCTION-NAME">
                            <a:a name="DESC">
                              <a:v><![CDATA[EN:<html><p>Callback function for each group. This function pointer is called everytime when the conversion of this group is completed.</p></html>]]></a:v>
                            </a:a>
                            <a:a name="POSTBUILDVARIANTMULTIPLICITY" value="true"/>
                            <a:a name="POSTBUILDVARIANTVALUE" value="true"/> 
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v class="PostBuild">VariantPostBuild</icc:v>
                              <icc:v class="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="OPTIONAL" value="true"/>
                            <a:a name="LABEL" value="Adc Group Notification"/>
                            <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:aa328ce2-6361-49fa-8ba2-ca8904101cfd"/>
                            <a:da name="DEFAULT" value="NULL_PTR"/>
                            <a:a name="EDITABLE" type="XPath">
                            <a:tst expr="../../../../../../AdcGeneral/AdcGrpNotifCapability = 'true'"/>
                            </a:a>
                          </v:var>

                          <!-- AdcStreamingBufferMode -->
                          <v:var name="AdcStreamingBufferMode" type="ENUMERATION">
                            <a:a name="DESC">
                              <a:v><![CDATA[EN:<html><p>Select the streaming buffer as linear buffer (i.e. the ADC Driver stops the conversion as soon as the stream buffer is full) or as ring buffer (wraps around if the end of the stream buffer is reached).</p></html>]]></a:v>
                            </a:a>
                            <a:a name="POSTBUILDVARIANTVALUE" value="true"/> 
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v vclass="PostBuild">VariantPostBuild</icc:v>
                              <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="LABEL" value="Adc Group Streaming Buffer Mode"/>
                            <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:572a24d6-27ac-4f8c-85b9-1cefae44cb8c"/>
                            <a:da name="DEFAULT" value="ADC_STREAM_BUFFER_LINEAR"/>
                            <a:a name="EDITABLE" type="XPath">
                              <a:tst expr="../AdcGroupAccessMode = 'ADC_ACCESS_MODE_STREAMING'"/>
                            </a:a>
                            <a:a name="INVALID" type="XPath">
                              <a:tst expr="(../AdcGroupAccessMode = 'ADC_ACCESS_MODE_SINGLE' and .='ADC_STREAM_BUFFER_CIRCULAR')" true ="For Single Access the Buffer must be Linear."/>
                            </a:a>
                            <a:da name="RANGE">
                              <a:v>ADC_STREAM_BUFFER_CIRCULAR</a:v>
                              <a:v>ADC_STREAM_BUFFER_LINEAR</a:v>
                            </a:da>
                          </v:var>

                          <!-- @implements AdcEnableDoubleBuffering_Object -->
                          <v:var name="AdcEnableDoubleBuffering" type="BOOLEAN">
                            <a:a name="DESC">
                              <a:v><![CDATA[EN:<html><p>
                                            Enable/ Disable the Double Buffering feature for Adc group conversions. this Parameter can be configured only for groups configured with ADC_ACCESS_MODE_STREAMING Access Mode, and only if ADC_DMA is configured as the transfer method for the Adc Unit.
                                            When this parameter is Disabled, normal functionlaity shall be executed.
                                            Note: This is an Implementation Specific Parameter. This feature supported only for Groups which is configured as hardware trigger</p></html>]]>
                              </a:v>
                            </a:a>
                            <a:a name="POSTBUILDVARIANTVALUE" value="true"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v vclass="PostBuild">VariantPostBuild</icc:v>
                              <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="LABEL" value="Adc Group Enable Double Buffering"/>
                            <a:a name="ORIGIN" value="NXP"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:3ca7b97c-36e2-4d2a-a199-37c07804cb65"/>
                            <a:da name="DEFAULT" value="false"/>
                            <a:da name="READONLY" value="false"/>
                            <a:da name="INVALID" type="XPath">
                              <a:tst expr="(.='true') and (node:fallback(../AdcGroupAccessMode, 'ADC_ACCESS_MODE_SINGLE') = 'ADC_ACCESS_MODE_SINGLE')" true="Only groups configured with ADC_ACCESS_MODE_STREAMING Access Mode can have enabled the Double Buffering feature!"/>
                              <a:tst expr="((.='true') and (node:fallback(../../../AdcTransferType, 'ADC_INTERRUPT') = 'ADC_INTERRUPT'))"
                                     true="AdcEnableDoubleBuffering can be enabled only if ADC_DMA transfer is configured."/>
                            </a:da>
                            <a:da name="EDITABLE" type="XPath" expr="node:fallback(../../../../../../AutosarExt/AdcEnableDoubleBufferingOptimization,'false') = 'true'"/>
                          </v:var>

                          <!-- AdcEnableHalfInterrupt -->
                          <v:var name="AdcEnableHalfInterrupt" type="BOOLEAN">
                            <a:a name="DESC">
                              <a:v><![CDATA[EN:<html><p>
                                          Enable/ Disable the interrupt when half sample complete for double bufferring feature. Double buffering must be enable for configure this feature. </p></html>]]>
                              </a:v>
                            </a:a>
                            <a:a name="POSTBUILDVARIANTVALUE" value="true"/>    
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS"
                                 type="IMPLEMENTATIONCONFIGCLASS">
                               <icc:v vclass="PostBuild">VariantPostBuild</icc:v>
                               <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="LABEL" value="Adc Group Enable Half Interrupt"/>
                            <a:a name="ORIGIN" value="NXP"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:c08c3abb-86b5-4f8f-be15-672bb9fdf90c"/>
                            <a:da name="DEFAULT" value="false"/>
                            <a:da name="READONLY" value="false"/>
                            <a:da name="EDITABLE" type="XPath" expr="../AdcEnableDoubleBuffering = 'true'"/>
                            <a:da name="INVALID" type="XPath">
                              <a:tst expr="(.='true') and (node:fallback(../AdcEnableDoubleBuffering, '0') = 'false')" true="Double buffering must be enable for configure this feature"/>
                          </a:da>
                          </v:var>
                        
                          <!-- AdcStreamingNumSamples -->
                          <v:var name="AdcStreamingNumSamples" type="INTEGER">
                            <a:a name="DESC">
                              <a:v><![CDATA[EN:<html><p>Number of ADC values to be acquired per channel in streaming access mode.</p></html>]]></a:v>
                            </a:a>
                            <a:a name="POSTBUILDVARIANTVALUE" value="true"/> 
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v vclass="PostBuild">VariantPostBuild</icc:v>
                              <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="LABEL" value="Adc Group Streaming Number Samples"/>
                            <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:1862f873-395e-407f-82e6-1cb911c5faa4"/>
                            <a:da name="DEFAULT" value="1"/>
                            <a:da name="INVALID" type="Range">
                              <a:tst expr="&lt;=255"/>
                              <a:tst expr="&gt;=1"/>
                            </a:da>
                            <a:da name="RANGE" type="XPath">
                              <a:tst expr="../AdcGroupAccessMode = 'ADC_ACCESS_MODE_SINGLE' and ../AdcStreamingNumSamples != 1" true="AdcStreamingNumSamples must be 1 for ADC_ACCESS_MODE_SINGLE."/>
                            </a:da>
                          </v:var>

                          <!-- AdcHwTrigSrc -->
                          <!-- /** @implements AdcHwTrigSrc_Object */ -->
                          <v:var name="AdcHwTrigSrc" type="ENUMERATION">
                            <a:a name="DESC">
                              <a:v><![CDATA[EN:<html><p>
                                    Selects the source for the eQADC trigger inputs (bits TSEL4_7 in SIU_ISEL register).
                                    SIU_ISEL select registers [4:5] are used to select a trigger source for command FIFOs in eQADC_A 
                                    SIU_ISEL select registers [6:7] are used to select a trigger source for command FIFOs in eQADC_B 
                                    Note: This is an Implementation Specific Parameter.
                                    </p></html>]]>
                              </a:v>
                            </a:a>
                            <a:a name="POSTBUILDVARIANTVALUE" value="true"/> 
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v class="PostBuild">VariantPostBuild</icc:v>
                              <icc:v class="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="LABEL" value="Adc Group Trigger Source"/>
                            <a:a name="OPTIONAL" value="true"/>
                            <a:a name="ORIGIN" value="NXP"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:c904ad1f-ea97-46c8-9263-13c638e22165"/>
                            <a:da name="EDITABLE" type="XPath" expr="../AdcGroupTriggSrc='ADC_TRIGG_SRC_HW'"/>
                            <a:da name="DEFAULT" type="XPath" expr="ecu:list(concat('Adc.AdcConfigSet.AdcHwUnit.AdcGroup.Fifo',substring-after(string(node:fallback(../AdcGroupFifo, 'ADC_FIFO_0')),'ADC_FIFO_'),'.AdcHwTrigSrc'))[position()-1=node:fallback(node:current()/../@index,0)]"/>
                            <a:da name="RANGE" type="XPath" expr="ecu:list(concat('Adc.AdcConfigSet.AdcHwUnit.AdcGroup.Fifo',substring-after(string(node:fallback(../AdcGroupFifo, '')),'ADC_FIFO_'),'.AdcHwTrigSrc'))"/>
                          </v:var>

                          <!-- AdcGroupFifo -->
                          <v:var name="AdcGroupFifo" type="ENUMERATION">
                            <a:a name="DESC">
                              <a:v><![CDATA[EN:<html><p>Selects the FIFO on which the channels belongs to the group converted.
                              ADC_FIFO_0 to ADC_FIFO_2 is used for unit0 and unit2 while ADC_FIFO_3 to ADC_FIFO_5 is used for unit1 and unit3
                              by eQADC_A and eQADC_B
                              Note:- This is an Implementation Specific Parameter.</p></html>]]></a:v>
                            </a:a>
                            <a:a name="POSTBUILDVARIANTVALUE" value="true"/> 
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v class="PostBuild">VariantPostBuild</icc:v>
                              <icc:v class="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="LABEL" value="ADC Group FIFO"/>
                            <a:a name="OPTIONAL" value="true"/>
                            <a:a name="ORIGIN" value="NXP"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:d3d368be-d30b-4bd6-adcd-26c34727816a"/>
                            <a:da name="DEFAULT" value="ADC_FIFO_0"/>
                            <a:da name="RANGE">
                              <a:v>ADC_FIFO_0</a:v>
                              <a:v>ADC_FIFO_1</a:v>
                              <a:v>ADC_FIFO_2</a:v>
                              <a:v>ADC_FIFO_3</a:v>
                              <a:v>ADC_FIFO_4</a:v>
                              <a:v>ADC_FIFO_5</a:v>
                            </a:da>
                          </v:var>
                          
                          <!-- /** @implements AdcWithoutInterrupts_Object */ -->
                          <v:var name="AdcWithoutInterrupts" type="BOOLEAN">
                            <a:a name="DESC">
                              <a:v><![CDATA[EN:<html><p>
                                            Enable/ Disable the occuring of ADC Interrupts and Reading of the group conversion results periodically without interrupts.
                                            A) When this parameter is enabled, interrupts are disabled .
                                            The conversion will run without software intervention (no interrupt generated anymore) and application can read the results
                                            by calling Adc_ReadGroup().
                                            B) When this parameter is enabled, the result buffer is no longer to be used to read the results as the results will be directly read from HW registers.
                                            When this parameter is Disabled, normal functionlaity shall be executed.
                                            On Cobra55, this feature only support for group with only one channel.
                                            Note: This is an Implementation Specific Parameter.</p></html>]]>
                              </a:v>
                            </a:a>
                            <a:a name="POSTBUILDVARIANTVALUE" value="true"/> 
                            <a:a name="SCOPE" value="LOCAL"/>
                            <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                 type="IMPLEMENTATIONCONFIGCLASS">
                              <icc:v vclass="PostBuild">VariantPostBuild</icc:v>
                              <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                            </a:a>
                            <a:a name="LABEL" value="Adc Group Without Interrupts"/>
                            <a:a name="ORIGIN" value="NXP"/>
                            <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                            <a:a name="UUID" value="ECUC:2dbb0804-e88c-4f64-8bf9-b70ce22e5b71"/>
                            <a:da name="DEFAULT" value="false"/>
                            <a:da name="INVALID" type="XPath">
                              <a:tst expr="(.= 'true') and (count(../AdcGroupDefinition/*) > 1) and (../../../AdcTransferType = 'ADC_INTERRUPT')"
                                     true="Without interrupts feature is not supported for group with more than one channel."/>
                              <a:tst expr="(.= 'true') and (../AdcGroupTriggSrc = 'ADC_TRIGG_SRC_HW')"
                                     true="Without interrupts feature is not supported for hardware triggered group."/>
                              <a:tst expr="(.= 'true') and (../AdcGroupConversionMode = 'ADC_CONV_MODE_CONTINUOUS')"
                                     true="Without interrupts feature is not supported for continuous conversion mode."/>
                            </a:da>
                          </v:var>
                          
                          <!-- AdcGroupDefinition -->
                          <!-- /** @implements AdcGroupDefinition_Object */ -->
                          <v:lst name="AdcGroupDefinition">
                            <a:da name="MIN" value="1"/>
                            <a:da name="INVALID" type="XPath">
                              <a:tst expr="num:i(count(node:refs(./*)/AdcChannelLimitCheck[.='true'])) &gt; 1"
                              true="ADC channels with limit checking feature enabled have to be assigned to ADC groups which consist exactly of one limit checking enabled ADC channel."/>
                              <a:tst expr="(../../../../../../AdcGeneral/AdcEnableLimitCheck = 'true') and (num:i(count(node:current()/*)) &gt; 1) and (num:i(count(node:refs(./*)/AdcChannelLimitCheck[.='true'])) = 1)"
                              true="ADC Channel group must contain exactly one ADC Channel if the global limit checking feature is enabled and a channel with specific limit checking is into the group."/>
                            </a:da>
                            <!-- /** @requirements ADC098, ADC277 */ -->
                            <v:ref name="AdcGroupDefinition" type="REFERENCE">
                              <a:a name="DESC">
                                <a:v><![CDATA[EN:<html><p>Assignment of channels to a AdcGroups. For each AdcChannel that should belong to the group, a reference needs to be defined.</p></html>]]></a:v>
                              </a:a>
                              <a:a name="POSTBUILDVARIANTMULTIPLICITY" value="true"/>
                              <a:a name="POSTBUILDVARIANTVALUE" value="true"/> 
                              <a:a name="SCOPE" value="LOCAL"/>
                              <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                                   type="IMPLEMENTATIONCONFIGCLASS">
                                <icc:v class="PostBuild">VariantPostBuild</icc:v>
                                <icc:v class="PreCompile">VariantPreCompile</icc:v>
                              </a:a>
                              <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                              <a:a name="UUID" value="ECUC:26fd14c8-d5af-4316-acc3-ddf94411ff8c"/>
                              <a:da name="REF" value="ASPathDataOfSchema:/AUTOSAR/EcucDefs/Adc/AdcConfigSet/AdcHwUnit/AdcChannel"/>
                              <a:da name="INVALID" type="XPath">
                                <a:tst expr=".=''" true="Select an ADC channel for the configured group."/>
                                <a:tst expr="contains(., ../../../../@name)" false="The ADC channel must be mapped on the same Hw Unit Group."/>
                              </a:da>
                            </v:ref>
                          </v:lst>
                        </v:ctr>
                      </v:lst>
                    </v:ctr>
                  </v:lst>
                  <v:ctr name="AdcDigitalFilterLength" type="IDENTIFIABLE">
                    <a:a name="DESC">
                    <a:v><![CDATA[EN:<html><p>
                                Digital Filter Length (DFL bits in EQADC_ETDFR register).
                                Specifies the minimum number of system clocks that must the digital filter counter count
                                to recognize a logic state change on EQADC trigger input.
                                <br>DFL  --------- Minimum number of system clocks</br>
                                <br>0    ---------      2</br>
                                <br>1    ---------      3</br>
                                <br>2    ---------      5</br>
                                <br>3    ---------      9</br>
                                <br>4    ---------     17</br>
                                <br>5    ---------     33</br>
                                <br>6    ---------     65</br>
                                <br>7    ---------    129</br>
                                <br>8    ---------    257</br>
                                <br>9    ---------    513</br>
                                <br>10   ---------   1025</br>
                                <br>11   ---------   2049</br>
                                <br>12   ---------   4097</br>
                                <br>13   ---------   8193</br>
                                <br>14   ---------  16385</br>
                                <br>15   ---------  32769</br>
                                Note: This is an Implementation Specific Parameter.</p></html>]]>
                    </a:v>
                    </a:a>
                    <a:a name="UUID" value="ECUC:5d3d9066-300f-4ba4-9d89-42717f28d942"/>
                    <!-- AdcDigitalFilterLength0 -->
                    <v:var name="AdcDigitalFilterLength0" type="INTEGER">
                    <a:a name="DESC">
                        <a:v><![CDATA[EN:<html><p>
                                Digital Filter Length (DFL bits in EQADC_ETDFR register) for EQADCA.</p></html>]]>
                        </a:v>
                    </a:a>
                    <a:a name="POSTBUILDVARIANTVALUE" value="true"/> 
                    <a:a name="SCOPE" value="LOCAL"/>
                    <a:a name="IMPLEMENTATIONCONFIGCLASS" type="IMPLEMENTATIONCONFIGCLASS">
                      <icc:v vclass="PostBuild">VariantPostBuild</icc:v>
                      <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                    </a:a>
                    <a:a name="LABEL" value="ADC Digital Filter Length for EQADCA"/>
                    <a:a name="ORIGIN" value="NXP"/>
                    <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                    <a:a name="UUID" value="ECUC:31fef1c1-2760-43e8-847f-6c3428e4a102"/>
                    <a:da name="DEFAULT" value="5"/>
                    <a:da name="INVALID" type="Range">
                      <a:tst expr="&lt;=15"/>
                      <a:tst expr="&gt;=0"/>
                    </a:da>
                    </v:var>
                    <!-- AdcDigitalFilterLength1 -->
                    <v:var name="AdcDigitalFilterLength1" type="INTEGER">
                    <a:a name="DESC">
                        <a:v><![CDATA[EN:<html><p>
                                Digital Filter Length (DFL bits in EQADC_ETDFR register) for EQADCB.</p></html>]]>
                        </a:v>
                    </a:a>
                    <a:a name="POSTBUILDVARIANTVALUE" value="true"/> 
                    <a:a name="SCOPE" value="LOCAL"/>
                    <a:a name="IMPLEMENTATIONCONFIGCLASS" type="IMPLEMENTATIONCONFIGCLASS">
                      <icc:v vclass="PostBuild">VariantPostBuild</icc:v>
                      <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                    </a:a>
                    <a:a name="LABEL" value="ADC Digital Filter Length for EQADCB"/>
                    <a:a name="ORIGIN" value="NXP"/>
                    <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                    <a:a name="UUID" value="ECUC:31fef1c1-2420-43e8-847f-6c3538e4a102"/>
                    <a:da name="DEFAULT" value="5"/>
                    <a:da name="INVALID" type="Range">
                      <a:tst expr="&lt;=15"/>
                      <a:tst expr="&gt;=0"/>
                    </a:da>
                  </v:var>
                  </v:ctr>
                </v:ctr>

              <!-- AdcGeneral Big Container -->
              <!-- /** @implements AdcGeneral_Object */ -->
              <v:ctr name="AdcGeneral" type="IDENTIFIABLE">
                <a:a name="DESC">
                  <a:v><![CDATA[EN:<html><p>General configuration (parameters) of the ADC Driver software module.</p></html>]]></a:v>
                </a:a>
                <a:a name="UUID" value="ECUC:5d3d9066-300f-4ba4-9d89-02717f28d967"/>

                <!-- AdcDeInitApi -->
                <v:var name="AdcDeInitApi" type="BOOLEAN">
                  <a:a name="DESC">
                    <a:v><![CDATA[EN:<html><p>Adds/removes the service Adc_DeInit() from the code.</p></html>]]></a:v>
                  </a:a>
                  <a:a name="POSTBUILDVARIANTVALUE" value="false"/> 
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                    <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="LABEL" value="Adc_DeInit API"/>
                  <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:c2a39725-ca66-4165-9aa8-dc51d263ef72"/>
                  <a:da name="DEFAULT" value="true"/>
                </v:var>

                <!-- AdcDevErrorDetect -->
                <v:var name="AdcDevErrorDetect" type="BOOLEAN">
                  <a:a name="DESC">
                    <a:v><![CDATA[EN:<html><p>Enable/Disable Development Error Detection.</p></html>]]></a:v>
                  </a:a>
                  <a:a name="POSTBUILDVARIANTVALUE" value="false"/>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                    <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="LABEL" value="Adc Development Error Detection"/>
                  <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:ab29d43a-e9a4-4eed-9f4d-8559b4e39e89"/>
                  <a:da name="DEFAULT" value="true"/>
                </v:var>

                <!-- AdcEnableLimitCheck -->
                <v:var name="AdcEnableLimitCheck" type="BOOLEAN">
                  <a:a name="DESC">
                    <a:v><![CDATA[EN:<html><p>Enable/disable limit checking feature in the ADC driver.</p></html>]]></a:v>
                  </a:a>
                  <a:a name="POSTBUILDVARIANTVALUE" value="false"/>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                    <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="LABEL" value="Adc Enable Limit Check"/>
                  <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:1f75320a-0500-4767-b096-d9f9b2a372e6"/>
                  <a:da name="DEFAULT" value="true"/>
                </v:var>

                <!-- AdcEnableQueuing -->
                <v:var name="AdcEnableQueuing" type="BOOLEAN">
                  <a:a name="DESC">
                    <a:v><![CDATA[EN:<html><p>Enable/Disable the Queue. Note that if AdcPriorityImplementation=ADC_PRIORITY_HW_SW this field is always enabled.</p></html>]]></a:v>
                  </a:a>
                  <a:a name="POSTBUILDVARIANTVALUE" value="false"/>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                    <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="LABEL" value="Adc Queue"/>
                  <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:30a4f3cf-e092-4deb-8353-a92a1738229d"/>
                  <a:da name="DEFAULT" value="true"/>
                  <a:a name="EDITABLE" type="XPath">
                    <a:tst expr="../AdcPriorityImplementation = 'ADC_PRIORITY_NONE'"/>
                  </a:a>
                </v:var>

                <!-- AdcEnableStartStopGroupApi -->
                <v:var name="AdcEnableStartStopGroupApi" type="BOOLEAN">
                  <a:a name="DESC">
                    <a:v><![CDATA[EN:<html><p>Adds / removes the services Adc_StartGroupConversion() and Adc_StopGroupConversion from the code.</p></html>]]></a:v>
                  </a:a>
                  <a:a name="POSTBUILDVARIANTVALUE" value="false"/>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                    <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="LABEL" value="Adc_StartStopGroup API"/>
                  <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:e72dfb05-6a85-4661-8a6b-2aded1691995"/>
                  <a:da name="DEFAULT" value="true"/>
                  <a:a name="INVALID" type="XPath">
                    <a:tst expr="(. = 'false') and (../AdcHwTriggerApi = 'false')"
                           true="At least one of 2 parameters AdcEnableStartStopGroupApi or AdcHwTriggerApi has to be enabled in order to be able to use the ADC driver."/>
                  </a:a>
                </v:var>

                <!-- AdcGrpNotifCapability -->
                <v:var name="AdcGrpNotifCapability" type="BOOLEAN">
                  <a:a name="DESC">
                    <a:v><![CDATA[EN:<html><p>Determines, if the group notification mechanism (the functions to enable and disable the notifications) is available at runtime.</p></html>]]></a:v>
                  </a:a>
                  <a:a name="POSTBUILDVARIANTVALUE" value="false"/>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                    <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="LABEL" value="Adc Notification Capability"/>
                  <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:0b3ecae2-f557-4f90-94f0-5452e9c03659"/>
                  <a:da name="DEFAULT" value="true"/>
                </v:var>

                <!-- AdcHwTriggerApi -->
                <v:var name="AdcHwTriggerApi" type="BOOLEAN">
                  <a:a name="DESC">
                    <a:v><![CDATA[EN:<html><p>Adds / removes the services Adc_EnableHardwareTrigger() and Adc_DisableHardwareTrigger() from the code.</p></html>]]></a:v>
                  </a:a>
                  <a:a name="POSTBUILDVARIANTVALUE" value="false"/>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                    <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="LABEL" value="Adc Hw Trigger  API"/>
                  <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:e2930cb1-2824-42e0-84fd-4e72fb180f7d"/>
                  <a:da name="DEFAULT" value="false"/>
                </v:var>

                <!-- AdcReadGroupApi -->
                <v:var name="AdcReadGroupApi" type="BOOLEAN">
                  <a:a name="DESC">
                    <a:v><![CDATA[EN:<html><p>Adds / removes the service Adc_ReadGroup() from the code.</p></html>]]></a:v>
                  </a:a>
                  <a:a name="POSTBUILDVARIANTVALUE" value="false"/>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                    <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="LABEL" value="Adc_ReadGroup API"/>
                  <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:b30e7432-c589-413d-bb14-fa157c615067"/>
                  <a:da name="DEFAULT" value="true"/>
                </v:var>

                <!-- AdcVersionInfoApi -->
                <v:var name="AdcVersionInfoApi" type="BOOLEAN">
                  <a:a name="DESC">
                    <a:v><![CDATA[EN:<html><p>Adds / removes the service Adc_GetVersionInfo() from the code.</p></html>]]></a:v>
                  </a:a>
                  <a:a name="POSTBUILDVARIANTVALUE" value="false"/>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                    <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="LABEL" value="Adc_VersionInfo API"/>
                  <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:6dde8f53-d250-4c27-bb2b-3c64b3d20df9"/>
                  <a:da name="DEFAULT" value="true"/>
                </v:var>
                
                <!-- AdcPriorityImplementation -->
                <v:var name="AdcPriorityImplementation" type="ENUMERATION">
                  <a:a name="DESC">
                    <a:v><![CDATA[EN:<html><p>Select the Priority mechanism. In this version the ADC_PRIORITY_HW isn't used.</p></html>]]></a:v>
                  </a:a>
                  <a:a name="POSTBUILDVARIANTVALUE" value="false"/>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                    <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="LABEL" value="Adc Priority Mechanism"/>
                  <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:58a45c6e-7392-4d34-8d22-7ff2cdb40fab"/>
                  <a:da name="DEFAULT" value="ADC_PRIORITY_NONE"/>
                  <a:da name="RANGE">
                    <a:v>ADC_PRIORITY_HW</a:v>
                    <a:v>ADC_PRIORITY_HW_SW</a:v>
                    <a:v>ADC_PRIORITY_NONE</a:v>
                  </a:da>
                  <a:da name="INVALID" type="XPath">
                    <a:tst expr=".='ADC_PRIORITY_HW'"
                    true="Priority Hardware mechanism is not supported."/>
                  </a:da>
                </v:var>

                <!-- AdcResultAlignment -->
                <v:var name="AdcResultAlignment" type="ENUMERATION">
                  <a:a name="DESC">
                    <a:v><![CDATA[EN:<html><p>Alignment of ADC raw results in ADC result buffer (left/right alignment).</p></html>]]></a:v>
                  </a:a>
                  <a:a name="POSTBUILDVARIANTVALUE" value="false"/>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                    <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="LABEL" value="Adc Result Alignment"/>
                  <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:e842717e-7446-417d-97d4-b3bd7232b2ab"/>
                  <a:da name="DEFAULT" value="ADC_ALIGN_RIGHT"/>
                  <a:da name="READONLY" value="true"/>
                  <a:da name="RANGE">
                    <a:v>ADC_ALIGN_LEFT</a:v>
                    <a:v>ADC_ALIGN_RIGHT</a:v>
                  </a:da>
                </v:var>

                <!-- ADC-Timeout -->
                <v:var name="AdcTimeout" type="INTEGER">
                  <a:a name="DESC">
                    <a:v><![CDATA[EN:<html><p>This timeout is used to wait until the FIFO status is updated when EOQ flag is set
                        or Result fifo is cleared or fifo is disabled.
                        <br>If the Status is not updated then after this timeout the ADC_E_TIMEOUT
                        production error will be reported and the rest of the functionality will be skipped.</br></p></html>]]>
                    </a:v>
                  </a:a>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                    <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="LABEL" value="Adc Timeout:"/>
                  <a:a name="ORIGIN" value="NXP"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false" />
                  <a:a name="UUID" value="ECUC:3a07e4c9-908b-4a38-ab20-877acc8148a7" />
                  <a:da name="DEFAULT" value="65535" />
                  <a:da name="INVALID" type="Range">
                    <a:tst expr="&lt;=4294967295" />
                    <a:tst expr="&gt;=1000" />
                  </a:da>
                </v:var>
                
                <!-- AdcConvTimeout -->
                <v:var name="AdcConvTimeout" type="INTEGER">
                  <a:a name="DESC">
                    <a:v><![CDATA[EN:<html><p>This timeout is used to wait until the all the conversions pending in the CBuffer are done.
                                              If the Status is not updated within this timeout the ADC_E_TIMEOUT production error will
                                              be reported and the rest of the functionality will be skipped.
                            </p></html>]]>
                    </a:v>
                  </a:a>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                    <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="ORIGIN" value="NXP"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false" />
                  <a:a name="LABEL" value="Adc Conversion Timeout:"/>
                  <a:a name="UUID" value="ECUC:227c9750-f44e-4373-b847-e0cec414d1a7" />
                  <a:da name="DEFAULT" value="65535" />
                  <a:da name="INVALID" type="Range">
                    <a:tst expr="&lt;=4294967295" />
                    <a:tst expr="&gt;=1000" />
                  </a:da>
                </v:var>
                
                  <!-- AdcPriorityQueueMaxDepth -->
                  <v:var name="AdcPriorityQueueMaxDepth" type="INTEGER">
                    <a:a name="DESC">
                      <a:v><![CDATA[EN:<html><p>Maximum depth of queue used for queuing of incoming conversion requests when hardware unit is busy.</p></html>]]></a:v>
                    </a:a>
                    <a:a name="SCOPE" value="LOCAL"/>
                    <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                         type="IMPLEMENTATIONCONFIGCLASS">
                      <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                      <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                    </a:a>
                    <a:a name="LABEL" value="Adc Max Queue Depth"/>
                      <a:a name="ORIGIN" value="NXP"/>
                    <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                    <a:a name="UUID" value="ECUC:66aa4b95-cf28-4be4-a243-d0dd6b0c648b"/>
                    <a:da name="DEFAULT" value="1"/>
                    <a:da name="INVALID" type="Range">
                      <a:tst expr="&lt;=65535"/>
                      <a:tst expr="&gt;=1"/>
                    </a:da>
                    <a:da name="RANGE" type="XPath">
                      <a:tst expr="../AdcPriorityImplementation = 'ADC_PRIORITY_NONE' and ../AdcEnableQueuing = 'false' and . !=1" true="The depth must be 1"/>
                    </a:da>
                  </v:var>             
                <!-- /** @implements AdcLowPowerStatesSupport_Object */ -->
                <v:var name="AdcLowPowerStatesSupport" type="BOOLEAN">
                  <a:a name="DESC">
                    <a:v><![CDATA[EN:<html><p>Adds / removes all power state management related APIs (Adc_SetPowerState, Adc_GetCurrentPowerState, Adc_GetTargetPowerState, Adc_PreparePowerState, Adc_Main_PowerTransitionManager), indicating if the HW offers low power state management. This parameter is disabled, there is no power management support implemented for this platform.</p></html>]]></a:v>
                  </a:a>
                  <a:a name="POSTBUILDVARIANTVALUE" value="false"/>
                  <a:a name="POSTBUILDVARIANTMULTIPLICITY" value="false"/>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v class="PreCompile">VariantPostBuild</icc:v>
                    <icc:v class="PreCompile">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="LABEL" value="Adc Low Power States Support"/>
                  <a:a name="OPTIONAL" value="true"/>
                  <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:e2930cb1-2824-42e0-84fd-4e72fb180e7d"/>
                  <a:da name="READONLY" value="true"/>
                  <a:da name="DEFAULT" value="false"/>
                </v:var>

                <!-- /** @implements AdcPowerStateAsynchTransitionMode_Object */ -->
                <v:var name="AdcPowerStateAsynchTransitionMode" type="BOOLEAN">
                  <a:a name="DESC">
                    <a:v><![CDATA[EN:<html><p>Enables / disables support of the ADCDriver to the asynchronous power state transition. This feature is not implemented on this platform.</p></html>]]></a:v>
                  </a:a>
                  <a:a name="POSTBUILDVARIANTVALUE" value="false"/>
                  <a:a name="POSTBUILDVARIANTMULTIPLICITY" value="false"/>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v class="PreCompile">VariantPostBuild</icc:v>
                    <icc:v class="PreCompile">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="LABEL" value="Adc Power State Asynch Transition Mode"/>
                  <a:a name="OPTIONAL" value="true"/>
                  <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:c20b0644-70bf-435d-ace6-8626ec469675"/>
                  <a:da name="DEFAULT" value="false"/>
                  <a:da name="EDITABLE" type="XPath" expr="node:exists(AdcLowPowerStatesSupport) and (../AdcLowPowerStatesSupport = 'true')"/>
                </v:var>
                <!-- /** @implements AdcPowerStateConfig_Object */ -->
                <v:lst name="AdcPowerStateConfig" type="MAP">
                  <a:da name="EDITABLE"  type="XPath" expr="(../AdcPowerStateAsynchTransitionMode = 'true' )"/>
                  <v:ctr name="AdcPowerStateConfig" type="IDENTIFIABLE">
                    <a:a name="DESC">
                        <a:v><![CDATA[EN:<html><p>Each instance of this parameter defines a power state and the callback to be called when this power state is reached.</p></html>]]></a:v>
                    </a:a>
                    <a:a name="POSTBUILDVARIANTMULTIPLICITY" value="false"/>
                    <a:a name="IMPLEMENTATIONCONFIGCLASS" type="IMPLEMENTATIONCONFIGCLASS">
                        <icc:v mclass="PreCompile">VariantPostBuild</icc:v>
                        <icc:v mclass="PreCompile">VariantPreCompile</icc:v>
                    </a:a>
                    <a:a name="UUID" value="ECUC:66904f78-ff07-4ed3-878e-401a3430cd38"/>
               
                    <!-- /** @implements AdcPowerState_Object */ -->
                    <v:var name="AdcPowerState" type="INTEGER">
                      <a:a name="DESC">
                        <a:v><![CDATA[EN:<html><p>Each instance of this parameter describes a different power state 
                             supported by the ADC HW. It should be defined by the HW supplier and 
                             used by the ADCDriver to reference specific HW configurations which set 
                             the ADC HW module in the referenced power state. At least the power mode
                             corresponding to full power state shall be always configured.
                             This parameter shall only be configured if the parameter AdcLowPowerStatesSupport is set to true.</p></html>]]>
                        </a:v>
                      </a:a>
                      <a:a name="POSTBUILDVARIANTVALUE" value="false"/>
                      <a:a name="IMPLEMENTATIONCONFIGCLASS" type="IMPLEMENTATIONCONFIGCLASS">
                        <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                        <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                      </a:a>
                      <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                      <a:a name="SCOPE" value="LOCAL"/>
                      <a:a name="SYMBOLICNAMEVALUE" value="true"/>
                      <a:a name="UUID"  value="ECUC:41902199-e783-4afe-bef3-41c69e08b32d"/>
                      <a:da name="DEFAULT" value="0"/>
                      <a:da name="INVALID" type="Range">
                        <a:tst expr="&lt;=18446744073709551615"/>
                        <a:tst expr="&gt;=0"/>
                      </a:da>
                    </v:var>
               
                    <!-- /** @implements AdcPowerStateReadyCbkRef_Object */ -->
                    <v:var name="AdcPowerStateReadyCbkRef" type="FUNCTION-NAME">
                      <a:a name="DESC">
                        <a:v><![CDATA[EN:<html><p>Each instance of this parameter contains a reference to a power mode callback defined in a CDD or IoHwAbs component.
                             This parameter shall only be configured if the parameter AdcLowPowerStatesSupport is set to true</p></html>]]>
                        </a:v>
                      </a:a>
                      <a:a name="POSTBUILDVARIANTVALUE" value="false"/>
                      <a:a name="IMPLEMENTATIONCONFIGCLASS" type="IMPLEMENTATIONCONFIGCLASS">
                        <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                        <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                      </a:a>
                      <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                      <a:a name="SCOPE" value="LOCAL"/>
                      <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                      <a:a name="UUID" value="ECUC:b9c222fc-6b92-40e9-922e-f73addaf2320"/>
                      <a:da name="DEFAULT" value="NULL_PTR"/>
                    </v:var>
                  </v:ctr>
                </v:lst>
              </v:ctr>

              <!-- /** @implements AdcPublishedInformation_Object */ -->
              <v:ctr name="AdcPublishedInformation" type="IDENTIFIABLE">
                <a:a name="DESC">
                  <a:v><![CDATA[EN:<html><p>Additional published parameters not covered by CommonPublishedInformation container.
                    Note that these parameters do not have any configuration class setting, since they are published information.</p></html>]]></a:v>
                </a:a>
                <a:a name="UUID" value="ECUC:3e265978-346e-4de7-be8c-c406a7ef02e0"/>

                <!-- AdcChannelValueSigned */ -->
                <v:var name="AdcChannelValueSigned" type="BOOLEAN_LABEL">
                  <a:a name="DESC">
                    <a:v><![CDATA[EN:<html><p>Information whether the result value of the ADC driver has sign information (true) or not (false). If the result shall be interpreted as signed value it shall apply to C-language rules.</p></html>]]></a:v>
                  </a:a>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PublishedInformation">VariantPostBuild</icc:v>
                    <icc:v vclass="PublishedInformation">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="LABEL" value="Adc Channel Value Signed"/>
                  <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:acb88fcc-ebdd-4232-b93f-d6c818ced64e"/>
                  <a:da name="DEFAULT" value="false"/>
                </v:var>

                <!--  AdcGroupFirstChannelFixed */ -->
                <v:var name="AdcGroupFirstChannelFixed" type="BOOLEAN_LABEL">
                  <a:a name="DESC">
                    <a:v><![CDATA[EN:<html><p>Information whether the first channel of an ADC Channel group can be configured (false) or is fixed (true) to a value determined by the ADC HW Unit.</p></html>]]></a:v>
                  </a:a>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PublishedInformation">VariantPostBuild</icc:v>
                    <icc:v vclass="PublishedInformation">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="LABEL" value="Adc Group First Channel Fixed"/>
                  <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:d70338f5-2be1-4d89-9cdf-d012ba5db883"/>
                  <a:da name="DEFAULT" value="false"/>
                </v:var>

                <!--  AdcMaxChannelResolution */ -->
                <v:var name="AdcMaxChannelResolution" type="INTEGER_LABEL">
                  <a:a name="DESC">
                    <a:v><![CDATA[EN:<html><p>Maximum Channel resolution in bits (does not specify accuracy).</p></html>]]></a:v>
                  </a:a>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PublishedInformation">VariantPostBuild</icc:v>
                    <icc:v vclass="PublishedInformation">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="LABEL" value="Adc Max Channel Resolution"/>
                  <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:dbe4e009-1c76-47ef-861c-9a4ea2871965"/>
                  <a:da name="DEFAULT" value="12"/>
                  <a:da name="INVALID" type="Range">
                    <a:tst expr="&lt;=63"/>
                    <a:tst expr="&gt;=1"/>
                  </a:da>
                </v:var>
              </v:ctr>

              <!--  @implements CommonPublishedInformation_Object  -->
              <v:ctr name="CommonPublishedInformation" type="IDENTIFIABLE">
                <a:a name="DESC">
                  <a:v><![CDATA[EN:<html><p>
                      Common container, aggregated by all modules. It contains published information about vendor and versions.
                  </p></html>]]></a:v>
                </a:a>
                <a:a name="UUID" value="ECUC:8a492572-bd3e-4c18-b2b3-4923f25b9b1e"/>
                <!--   ArReleaseMajorVersion   -->
                <v:var name="ArReleaseMajorVersion" type="INTEGER_LABEL">
                  <a:a name="DESC">
                      <a:v><![CDATA[EN:<html><p>
                      Major version number of AUTOSAR specification on which the appropriate implementation is based on.
                      </p></html>]]></a:v>
                  </a:a>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PublishedInformation">VariantPostBuild</icc:v>
                    <icc:v vclass="PublishedInformation">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="ORIGIN" value="NXP"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:e7e9d572-8eef-4b6c-9433-8aad276eec7c"/>
                  <a:da name="DEFAULT" value="4"/>
                  <a:da name="INVALID" type="Range">
                    <a:tst expr="&gt;=4"/>
                    <a:tst expr="&lt;=4"/>
                  </a:da>
                </v:var>
                <!--  ArReleaseMinorVersion   -->
                <v:var name="ArReleaseMinorVersion" type="INTEGER_LABEL">
                  <a:a name="DESC">
                      <a:v><![CDATA[EN:<html><p>
                      Minor version number of AUTOSAR specification on which the appropriate implementation is based on.
                      </p></html>]]></a:v>
                  </a:a>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PublishedInformation">VariantPostBuild</icc:v>
                    <icc:v vclass="PublishedInformation">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="ORIGIN" value="NXP"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:3d870209-be10-47c3-9857-538e620076c9"/>
                  <a:da name="DEFAULT" value="3"/>
                  <a:da name="INVALID" type="Range">
                    <a:tst expr="&gt;=3"/>
                    <a:tst expr="&lt;=3"/>
                  </a:da>                    
                </v:var>
                <!--  ArReleaseRevisionVersion   -->
                <v:var name="ArReleaseRevisionVersion" type="INTEGER_LABEL">
                  <a:a name="DESC">
                      <a:v><![CDATA[EN:<html><p>
                      Revision version number of AUTOSAR specification on which the appropriate implementation is based on.
                      </p></html>]]></a:v>
                  </a:a>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PublishedInformation">VariantPostBuild</icc:v>
                    <icc:v vclass="PublishedInformation">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="ORIGIN" value="NXP"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:a83e5ff1-972e-4db3-8da8-0bbbc7689ec2"/>
                  <a:da name="DEFAULT" value="1"/>
                  <a:da name="INVALID" type="Range">
                    <a:tst expr="&gt;=1"/>
                    <a:tst expr="&lt;=1"/>
                  </a:da>                    
                </v:var>
                <!--   ModuleId   -->
                <v:var name="ModuleId" type="INTEGER_LABEL">
                  <a:a name="DESC">
                      <a:v><![CDATA[EN:<html><p>
                      Module ID of this module from Module List.
                      </p></html>]]></a:v>
                  </a:a>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PublishedInformation">VariantPostBuild</icc:v>
                    <icc:v vclass="PublishedInformation">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="ORIGIN" value="NXP"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:dace0d32-017d-481a-844b-ca56c5fe5d98"/>
                  <a:da name="DEFAULT" value="123"/>
                  <a:da name="INVALID" type="Range">
                    <a:tst expr="&gt;=123"/>
                    <a:tst expr="&lt;=123"/>
                  </a:da>                    
                </v:var>
                <!--   SwMajorVersion   -->
                <v:var name="SwMajorVersion" type="INTEGER_LABEL">
                  <a:a name="DESC">
                      <a:v><![CDATA[EN:<html><p>
                      Major version number of the vendor specific implementation of the module. The numbering is vendor specific.
                      </p></html>]]></a:v>
                  </a:a>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PublishedInformation">VariantPostBuild</icc:v>
                    <icc:v vclass="PublishedInformation">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="ORIGIN" value="NXP"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:931ea035-fc4a-451a-a9d6-8a45883e4cf1"/>
                  <a:da name="DEFAULT" value="1"/>
                  <a:da name="INVALID" type="Range">
                    <a:tst expr="&gt;=1"/>
                    <a:tst expr="&lt;=1"/>
                  </a:da>                    
                </v:var>
                <!--   SwMinorVersion  -->
                <v:var name="SwMinorVersion" type="INTEGER_LABEL">
                  <a:a name="DESC">
                    <a:v><![CDATA[EN:<html><p>
                    Minor version number of the vendor specific implementation of the module. The numbering is vendor specific.
                    </p></html>]]></a:v>
                  </a:a>
                  <a:a name="SCOPE" value="LOCAL"/>                  
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PublishedInformation">VariantPostBuild</icc:v>
                    <icc:v vclass="PublishedInformation">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="ORIGIN" value="NXP"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:bc6133b1-3991-449e-8584-49b11eff3a7f"/>
                  <a:da name="DEFAULT" value="0"/>
                  <a:da name="INVALID" type="Range">
                    <a:tst expr="&gt;=0"/>
                    <a:tst expr="&lt;=0"/>
                  </a:da>                    
                </v:var>
                <!--   SwPatchVersion  -->
                <v:var name="SwPatchVersion" type="INTEGER_LABEL">
                  <a:a name="DESC">
                    <a:v><![CDATA[EN:<html><p>
                    Patch level version number of the vendor specific implementation of the module. The numbering is vendor specific.
                    </p></html>]]></a:v>
                  </a:a>
                  <a:a name="SCOPE" value="LOCAL"/>                  
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PublishedInformation">VariantPostBuild</icc:v>
                    <icc:v vclass="PublishedInformation">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="ORIGIN" value="NXP"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:7f523334-ef23-4b15-b142-694a9d63fab9"/>
                  <a:da name="DEFAULT" value="0"/>
                  <a:da name="INVALID" type="Range">
                    <a:tst expr="&gt;=0"/>
                    <a:tst expr="&lt;=0"/>
                  </a:da>                    
                </v:var>
                <!--   VendorApiInfix   -->
                <v:var name="VendorApiInfix" type="STRING_LABEL">
                  <a:a name="DESC">
                      <a:v><![CDATA[EN:<html><p>
                      In driver modules which can be instantiated several times on a single ECU, BSW00347 requires that the name of APIs is extended by the VendorId and a vendor specific name. 
                      This parameter is used to specify the vendor specific name. In total, the implementation specific name is generated as follows:
                      &lt;ModuleName&gt;_&gt;VendorId&gt;_&lt;VendorApiInfix&gt;&lt;Api name from SWS&gt;.
                      E.g.  assuming that the VendorId of the implementor is 123 and the implementer chose a VendorApiInfix of &quot;v11r456&quot; a api name Can_Write defined in the SWS will translate to Can_123_v11r456Write. 
                      This parameter is mandatory for all modules with upper multiplicity &gt; 1. It shall not be used for modules with upper multiplicity =1.</p></html>]]></a:v>
                  </a:a>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v class="PublishedInformation">VariantPostBuild</icc:v>
                    <icc:v class="PublishedInformation">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="ORIGIN" value="NXP"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:36a6319a-24af-44aa-bde8-4119ca8e61fd"/>
                  <a:da name="DEFAULT" value=""/>
                  <a:a name="OPTIONAL" value="true"/>
                  <a:da name="READONLY" value="true"/>
                </v:var>
                <!--   VendorId  -->
                <v:var name="VendorId" type="INTEGER_LABEL">
                    <a:a name="DESC">
                        <a:v><![CDATA[EN:<html><p>
                          Vendor ID of the dedicated implementation of this module according to the AUTOSAR vendor list.
                        </p></html>]]></a:v>
                    </a:a>
                    <a:a name="SCOPE" value="LOCAL"/>
                    <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PublishedInformation">VariantPostBuild</icc:v>
                    <icc:v vclass="PublishedInformation">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="ORIGIN" value="NXP"/>
                    <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                    <a:a name="UUID" value="ECUC:4fec8752-a2fc-44db-811a-3ee2a51d5ae1"/>
                  <a:da name="DEFAULT" value="43"/>
                    <a:da name="INVALID" type="Range">
                    <a:tst expr="&gt;=43"/>
                    <a:tst expr="&lt;=43"/>
                    </a:da>                    
                </v:var>
              </v:ctr>

              <!-- AUTOSAR EXTENSION Big Container -->              
              <v:ctr name="AutosarExt" type="IDENTIFIABLE">
                <a:a name="DESC">
                  <a:v><![CDATA[EN:<html><p>Autosar Extension API settings.</p></html>]]></a:v>
                </a:a>
                <a:a name="UUID" value="ECUC:a840d02b-4967-4e98-8e41-b89fd1272780"/>

                <!-- @implements AdcEnableGroupDependentChannelNames_Object -->
                <v:var name="AdcEnableGroupDependentChannelNames" type="BOOLEAN">
                  <a:a name="DESC">
                  <a:v><![CDATA[EN:<html><p>This is used to generate ADC symbolic names, that depend also on the ADC group 
                        to which each ADC channel is mapped. The generated symbolic name will be something 
                        like:
                        #define &quotADC_GroupName&quot_&quotADC_ChannelName&quot  &quotChannel index value&quot,
                        where &quotChannel index value&quot is the channel index in the current group.
                        Channel indexes in each group are generated to allow result buffer access by symbolic names.</p></html>]]></a:v>
                  </a:a>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                    <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                  </a:a>
                  <a:a name="LABEL" value="Adc Channel Indexes Symbolic Names"/>
                  <a:a name="ORIGIN" value="NXP"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false" />
                  <a:a name="UUID" value="ECUC:cf08470c-77d7-4326-a615-90a0e35c390f" />
                  <a:da name="DEFAULT" value="false"/>
                </v:var>

                <!-- @implements AdcEnableCalibration_Object -->
                <v:var name="AdcEnableCalibration" type="BOOLEAN">
                  <a:a name="DESC">
                    <a:v><![CDATA[EN:<html><p>
                          If this parameter has been configured to &quot;TRUE&quot;, the Autosar Extension function &quot;Adc_Calibrate()&quot;  shall be accessible, otherwise this function shall be removed from the code.
                          This functionality is not available for this platform (not supported by HW).
                          <h1>Note</h1>This is an Implementation Specific Parameter.</p></html>]]>
                    </a:v>
                  </a:a>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                    <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                  </a:a>
                  <a:a name="LABEL" value="Adc Enable Calibration Api"/>
                  <a:a name="ORIGIN" value="NXP"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:00118f07-32be-429d-8b41-3f7dc39d1848"/>
                  <a:da name="DEFAULT" value="false"/>
                </v:var>
                                
                <!-- @implements AdcDisableDemReportErrorStatus_Object -->
                <v:var name="AdcDisableDemReportErrorStatus" type="BOOLEAN">
                  <a:a name="DESC">
                  <a:v><![CDATA[EN:<html><p>Enable/Disable Dem error reporting.</p></html>]]></a:v>
                  </a:a>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                    <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                  </a:a>
                  <a:a name="LABEL" value="Adc Disable Production Error Reporting"/>
                  <a:a name="ORIGIN" value="NXP"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false" />
                  <a:a name="UUID" value="ECUC:8436de9b-c7e1-4720-9e80-145e3870a2cb" />
                  <a:da name="DEFAULT" value="false" />
                  <a:a name="EDITABLE" type="XPath">
                    <a:tst expr="node:exists(../../AdcDemEventParameterRefs)"/>
                  </a:a>  
                </v:var>
                
                <v:var name="AdcEnableDualClockMode" type="BOOLEAN">
                  <a:a name="DESC">
                  <a:v><![CDATA[EN:<html><p>
                        The Adc driver shall provide an optional API and configuration parameters for changing the base clock of the controlled hardware. 
                        This shall comprise the conversion timing registers of the ADC as well.
                        Per default this optional functionality and configuration parameters shall be disabled..</p></html>]]></a:v>
                  </a:a>
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                    <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                  </a:a>
                  <a:a name="LABEL" value="Adc_Enable_Dual_Clock_Mode"/>
                  <a:a name="ORIGIN" value="NXP"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false" />
                  <a:a name="UUID" value="ECUC:00118f07-32be-429d-8b41-3f7dc79d1848" />
                  <a:da name="DEFAULT" value="false" /> 
                </v:var>
                
                 <!--  @implements AdcEnableDoubleBufferingOptimization_Object  -->
                <v:var name="AdcEnableDoubleBufferingOptimization" type="BOOLEAN">
                  <a:a name="DESC">
                    <a:v>
                    <![CDATA[EN:<html><p> Implementation Specific Parameter.
                         Enable/Disable The Adc driver double buffering optimization for Streaming access.</p></html>]]>
                    </a:v>
                  </a:a>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS" type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v class="PreCompile">VariantPreCompile</icc:v>
                    <icc:v class="PreCompile">VariantPostBuild</icc:v>
                  </a:a>
                  <a:a name="LABEL" value="Adc Enable Double Buffering Optimization"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:6d78d92b-c387-4656-ba8c-8113fdef7247"/>
                  <a:da name="DEFAULT" value="false"/>
                  <a:a name="ORIGIN" value="NXP"/>
                  <a:da name="INVALID" type="XPath">
                    <a:tst expr="(.= 'true') and (node:fallback(../../AdcConfigSet/*/AdcHwUnit/*/AdcTransferType, 'ADC_INTERRUPT') = 'ADC_INTERRUPT')"
                    true="AdcEnableDoubleBufferingOptimization can be enabled only if ADC_DMA transfer is configured for all of hardware units in all configsets"/>
                  </a:da>
                </v:var>                

                <!--  @implements AdcOptimizeOneShotHwTriggerConversions_Object  -->
                <v:var name="AdcOptimizeOneShotHwTriggerConversions" type="BOOLEAN">
                  <a:a name="DESC">
                    <a:v>
                    <![CDATA[EN:<html><p> Implementation Specific Parameter.
                         Enable/Disable The Adc driver optimization for HW Triggered groups, OneShot, Single access.
                         If Enabled, other types of groups cannot be configured in ADC driver and the code for interrupt routine / Dma notification will be optimized for speed.</p></html>]]>
                    </a:v>
                  </a:a>  
                  <a:a name="SCOPE" value="LOCAL"/>
                  <a:a name="IMPLEMENTATIONCONFIGCLASS"
                       type="IMPLEMENTATIONCONFIGCLASS">
                    <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                    <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                  </a:a>
                  <a:a name="LABEL" value="Adc Optimize OneShot HwTrigger Conversions"/>
                  <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                  <a:a name="UUID" value="ECUC:6d78d92b-c387-4656-ba8c-8113fdef7243"/>
                  <a:da name="DEFAULT" value="false"/>
                  <a:a name="ORIGIN" value="NXP"/>
                  <a:da name="INVALID" type="XPath">
                    <a:tst expr="(.= 'true') and (../AdcEnableDoubleBufferingOptimization = 'true')"
                    true="AdcEnableDoubleBufferingOptimization and AdcOptimizeOneShotHwTriggerConversions cannot be enabled simultaneous"/>
                  </a:da>
                </v:var>

                <!--  @implements AdcEnableUserModeSupport_Object  -->
                <v:var name="AdcEnableUserModeSupport" type="BOOLEAN">
                    <a:a name="DESC">
                        <a:v>
                            <![CDATA[EN:<html>
                                When this parameter is enabled, the Adc module will adapt to run from User Mode, with the following measures:<p/>
                                by using 'call trusted function' stubs for all internal function calls that access registers requiring supervisor mode.<p/>
                                for more information, please see chapter 5.7 User Mode Support in IM <p/>
                                Note: Implementation Specific Parameter.
                            </html>]]>
                        </a:v>
                    </a:a>
                    <a:a name="SCOPE" value="LOCAL"/>
                    <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                         type="IMPLEMENTATIONCONFIGCLASS">
                        <icc:v vclass="PreCompile">VariantPreCompile</icc:v>
                        <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                    </a:a>
                    <a:a name="LABEL" value="AdcEnableUserModeSupport"/>
                    <a:a name="ORIGIN" value="NXP"/>
                    <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                    <a:a name="UUID" value="ECUC:84a3553a-7f99-48a2-be06-5d97ebbc2eff"/>
                    <a:da name="EDITABLE" value="false"/>
                    <a:da name="DEFAULT" value="false"/>
                </v:var>                
              </v:ctr>
              
              <!-- AdcDemEventParameterRefs Big Container -->
              <!--  @implements AdcDemEventParameterRefs_Object  -->
              <v:ctr name="AdcDemEventParameterRefs" type="IDENTIFIABLE">
                <a:a name="LABEL" value="Adc Dem Event Parameter Refs" />
                <a:a name="DESC">
                    <a:v><![CDATA[EN:<html><p>
                          Container for the references to DemEventParameter elements which shall be invoked using the Dem_ReportErrorStatus API in case the corresponding error occurs. The EventId is taken from the referenced DemEventParameter&apos;s DemEventId value. The standardized errors are provided in the container and can be extended by vendor specific error references.</p></html>]]>
                    </a:v>
                </a:a>
                <a:a name="OPTIONAL" value="true"/>
                <a:a name="UUID" value="ECUC:89409b54-221f-496a-9d8a-e7c524795d8f"/>
                <a:a name="IMPLEMENTATIONCONFIGCLASS" 
                     type="IMPLEMENTATIONCONFIGCLASS">
                  <icc:v mclass="PreCompile">VariantPostBuild</icc:v>
                  <icc:v mclass="PreCompile">VariantPreCompile</icc:v>
                </a:a>
                <v:ref name="ADC_E_TIMEOUT" type="SYMBOLIC-NAME-REFERENCE">
                    <a:a name="LABEL" value="Adc Timeout Dem Error" />
                    <a:a name="DESC">
                      <a:v><![CDATA[EN:<html><p>
                            Reference to configured DEM event to report &quot;Timeout failure&quot;.</p></html>]]>
                      </a:v>
                    </a:a>
                    <a:a name="SCOPE" value="LOCAL"/>
                    <a:a name="IMPLEMENTATIONCONFIGCLASS" type="IMPLEMENTATIONCONFIGCLASS">
                        <icc:v class="PreCompile">VariantPostBuild</icc:v>
                        <icc:v class="PreCompile">VariantPreCompile</icc:v>
                    </a:a>
                    <a:a name="ORIGIN" value="NXP"/>
                    <a:a name="UUID" value="ECUC:43e34850-f886-4b31-a12c-e1c8094b9390"/>
                    <a:a name="OPTIONAL" value="true"/>
                    <a:da name="REF" value="ASPathDataOfSchema:/AUTOSAR/EcucDefs/Dem/DemConfigSet/DemEventParameter"/>
                </v:ref>
              </v:ctr>
              
              <d:ref type="REFINED_MODULE_DEF" value="ASPath:/AUTOSAR/EcucDefs/Adc"/>
            </v:ctr>
          </d:chc>
          <d:chc name="Adc_EcuParameterDefinition" 
                 type="AR-ELEMENT" value="ECU_PARAMETER_DEFINITION">
            <d:ctr type="AR-ELEMENT">
              <a:a name="UUID" value="ECUC:67590c1f-f952-4b87-b78c-94f327edc863"/>
              <a:a name="DEF" 
                   value="ASPath:/AR_PACKAGE_SCHEMA/ECU_PARAMETER_DEFINITION"/>
              <d:lst name="MODULE_REF">
                <d:ref type="MODULE_REF" value="ASPath:/TS_T2D41M10I0R0/Adc"/>
              </d:lst>
            </d:ctr>
          </d:chc>
          <d:chc name="Adc_ModuleDescription" 
                 type="AR-ELEMENT" value="BSW_MODULE_DESCRIPTION">
            <d:ctr type="AR-ELEMENT">
              <a:a name="DEF" 
                   value="ASPath:/AR_PACKAGE_SCHEMA/BSW_MODULE_DESCRIPTION"/>
              <d:var name="MODULE_ID" type="INTEGER" >
                <a:a name="EDITABLE" value="false"/>
                <a:a name="IMPORTER_INFO" value="@DEF"/>
              </d:var>
              <d:ref type="RECOMMENDED_CONFIGURATION" >
                <a:a name="EDITABLE" value="false"/>
                <a:a name="IMPORTER_INFO" value="@DEF"/>
              </d:ref>
              <d:ref type="PRE_CONFIGURED_CONF" >
                <a:a name="EDITABLE" value="false"/>
                <a:a name="IMPORTER_INFO" value="@DEF"/>
              </d:ref>
              <d:ref type="VENDOR_SPECIFIC_MODULE_DEF" 
                     value="ASPath:/TS_T2D41M10I0R0/Adc"/>
            </d:ctr>
          </d:chc>
        </d:lst>
      </d:ctr>
    </d:lst>
  </d:ctr>

</datamodel>
