Ecu Configuration Access

Post-build loadable

IEcucModuleConfiguration is the base interface of all module configuration wrappers. It provides the following method(s):

The getConfigurationVariant() method returns the modules configuration variant.

This method never returns null. If the module has no value specified, this method returns a default value as follows:

  • EEcucConfigurationVariant.VARIANT_PRE_COMPILE, if it is contained in the supported config variants of the related module definition
  • otherwise EEcucConfigurationVariant.VARIANT_LINK_TIME, if it is contained in the supported config variants of the related module definition
  • otherwise EEcucConfigurationVariant.VARIANT_POST_BUILD_LOADABLE, if it is contained in the supported config variants of the related module definition
  • otherwise EEcucConfigurationVariant.VARIANT_PRE_COMPILE, even if not contained in the supported config variants of the related module definition or if the definition is not available

Remark about AUTOSAR versions: Prior to AUTOSAR 4.2.1 the module configurations implementation config variant defined if this module implements post-build loadable and/or selectable. With AUTOSAR 4.2.1 the implementation config variant defines only if the module implements post-build loadable. The post-build selectable aspect has been separated from this definition. This method handles the loadable semantic, independent of the AUTOSAR version.

This is for post-build loadable only!

The setConfigurationVariant(EEcucConfigurationVariant) method sets the specified implementation configuration variant.

This is for post-build loadable only!

Supported values are

  • EEcucConfigurationVariant.VARIANT_PRE_COMPILE
  • EEcucConfigurationVariant.VARIANT_LINK_TIME
  • EEcucConfigurationVariant.VARIANT_POST_BUILD_LOADABLE

Remarks concerning AUTOSAR versions:

  • If the modules definition has schema version 4.2.1 or higher, the specified value is being written directly to the model
  • If the modules definition has a schema version lower than 4.2.1, the modules implementation configuration variant in the MDF model encodes both, post-build loadable and post-build selectable. The following behavior is being implemented in this case:
  • Current model value Parameter Result in the model
    PRE_COMPILE PRE_COMPILE PRE_COMPILE
    LINK_TIME LINK_TIME
    POST_BUILD_LOADABLE POST_BUILD_LOADABLE
    LINK_TIME PRE_COMPILE PRE_COMPILE
    LINK_TIME LINK_TIME
    POST_BUILD_LOADABLE POST_BUILD_LOADABLE
    POST_BUILD_LOADABLE PRE_COMPILE PRE_COMPILE
    LINK_TIME LINK_TIME
    POST_BUILD_LOADABLE POST_BUILD_LOADABLE
    POST_BUILD_SELECTABLE PRE_COMPILE POST_BUILD_SELECTABLE
    LINK_TIME POST_BUILD_SELECTABLE
    POST_BUILD_LOADABLE POST_BUILD
    POST_BUILD PRE_COMPILE POST_BUILD_SELECTABLE
    LINK_TIME POST_BUILD_SELECTABLE
    POST_BUILD_LOADABLE POST_BUILD

IEcucContainer is the base interface of all container wrappers. It provides the following method(s): The getEffectiveMultiplicityConfigurationClass() method walks up the model tree to find the related module configuration. Then it uses the module implementation configuration variant to return the selected configuration class as specified in the container definition.

This method never returns null. In case the detection of the configuration class fails (e.g. if the related module configuration cannot be detected), this method returns EEcucConfigurationClass.PRE_COMPILE by default. It also never returns EEcucConfigurationClass.LINK.

This method is for post-build loadable only!

The getEffectiveMultiplicityConfigurationClass(DefRef) method walks up the model tree to find the related module configuration. Then it uses the module implementation configuration variant to return the selected configuration class of the specified parameter definition.

This method never returns null. In case the detection of the configuration class fails (e.g. if the related module configuration cannot be detected), this method returns EEcucConfigurationClass.PRE_COMPILE by default. It also never returns EEcucConfigurationClass.LINK.

This method is for post-build loadable only!

The getEffectiveValueConfigurationClass(DefRef) method walks up the model tree to find the related module configuration. Then it uses the module implementation configuration variant to return the selected configuration class of the specified parameter definition.

This method never returns null. In case the detection of the configuration class fails (e.g. if the related module configuration cannot be detected), this method returns EEcucConfigurationClass.PRE_COMPILE by default. It also never returns EEcucConfigurationClass.LINK.

This method is for post-build loadable only!

IEcucParameter is the base interface of all parameter and reference wrappers. It provides the following method(s): The getEffectiveMultiplicityConfigurationClass() method walks up the model tree to find the related module configuration. Then it uses the module implementation configuration variant to return the selected configuration class as specified in the parameter definition.

This method never returns null. In case the detection of the configuration class fails (e.g. if the related module configuration cannot be detected), this method returns EEcucConfigurationClass.PRE_COMPILE by default.

This is for post-build loadable only!

The getEffectiveValueConfigurationClass() method walks up the model tree to find the related module configuration. Then it uses the module implementation configuration variant to return the selected configuration class as specified in the parameter definition.

This method never returns null. In case the detection of the configuration class fails (e.g. if the related module configuration cannot be detected), this method returns EEcucConfigurationClass.PRE_COMPILE by default.

This is for post-build loadable only!

Post-build selectable

The supportsPostBuildVariance() method returns true if this module configuration supports post-build selectable.

This is for post-build selectable only!

What this method actually does:

  • It checks if the related definition specifies post-build selectable as supported
  • It checks if the module configuration implements post-build variance. That's true in the following cases
    • If the modules definition has schema version 4.4 or higher: Check if the PostBuildVariantUsed is true
    • If the modules definition has schema version 4.2.1 or higher: Check if the modules ADMIN-DATA flag "postBuildVariantSupport" is true (false is default if this flag is missing)
    • If the modules definition has a schema version lower than 4.2.1: Check if the modules implementation configuration variant contains one of the following values VARIANT_POST_BUILD_SELECTABLE or VARIANT_POST_BUILD
It returns true if both conditions are true.

The setPostBuildVarianceSupport(boolean) method sets the post-build support flag in the module configuration.

This is for post-build selectable only!

Remarks concerning AUTOSAR versions:

  • If the modules definition has schema version 4.4.0 or higher, this method sets the PostBuildVariantUsed to the specified value.
  • If the modules definition has schema version 4.2.1 or higher but less than 4.4.0, this method sets the modules ADMIN-DATA flag "postBuildVariantSupport" to the specified value.
  • If the modules definition has a schema version lower than 4.2.1, the modules implementation configuration variant in the MDF model encodes both, post-build loadable and post-build selectable. The following behavior is being implemented in this case:
    Current model value Parameter Result in the model
    PRE_COMPILE true POST_BUILD_SELECTABLE
    false PRE_COMPILE
    LINK_TIME true POST_BUILD_SELECTABLE
    false LINK_TIME
    POST_BUILD_LOADABLE true POST_BUILD
    false POST_BUILD_LOADABLE
    POST_BUILD_SELECTABLE true POST_BUILD_SELECTABLE
    false PRE_COMPILE
    POST_BUILD true POST_BUILD
    false POST_BUILD_LOADABLE

The supportsVariantMultiplicity() method returns true if the related module configuration supports variance and this containers definition support variant multiplicity. If true is returned this means that different variants may contain different number of instances of this container.

If the container has no definition, this method returns false.

This method is for post-build selectable only!

The supportsVariantMultiplicity() method returns true if the related module configuration supports variance and this parameters definition support variant multiplicity. If true is returned this means that different variants may contain different number of instances of this parameter.

If the parameter has no definition, this method returns false.

This is for post-build selectable only!

The supportsVariantValue() method returns true if the related module configuration supports variance and this parameters definition support variant values. If true is returned this means that different variants may contain different values in instances of this parameter.

If the parameter has no definition, this method returns false.

This is for post-build selectable only!