Generate Invariant ECU Extract

An invariant ECU extract contains no variation points. It is already fully resolved, meaning all configuration decisions have been applied and the extract represents a specific, fixed ECU setup.

Unlike variant ECU extracts, an invariant extract does not require an EVS. It can be used directly with EcuC Derive, as it already reflects a complete and unambiguous configuration.

Generate an Invariant ECU Extract

To generate an invariant ECU extract follow the steps below to create the extract correctly.

  1. Navigate into installation path of the DaVinci Configurator Classic into the folder EcuXPro. By adding all files and the output folder which shall contain the generated ECU Extract to be generated later, you will be provided as a result of this command a suggestion of commands. If legacy files are input as well, then you need to install the Legacy Converter tool, or you will have to provide its path using the option -c. Depending on the shell type you want, you must specify the output format you want, using the option --output-format. Currently, you can choose between shell_cmd (for Windows Command Line) and shell_bash (for Linux Shell Bash). Setting a value for the option save-script will save the generated commands into a script file instead of printing them to the console." Below is an example command structure:

    Analyze Command
    ecuxpro analyze -f file1.arxml,file2.arxml,file3.ldf,file4.arxml,file5.dbc -o="Path\To\Generated\Ecu\Extract" -c="Path\To\Legacy\Converter" --output-format=shell_cmd --save-script="Path\To\Save\ScriptFile.bat"

The input file order is relevant, because a strict order of processing is applied to the files in case of the merge command, which is suggested as a result of the analysis of several input files. So changing the order of input files might change the result of the merge. Only for legacy communication files that might be used grouped together with several DBC, LDF, FIBEX files, we would assume for the converted ARXML the file order of the first legacy communication file in the list.

  1. The result of this command will be a script file containing a set of ready-to-run commands that you can use to generate your ECU extract. Before running the script, you might need to set some variables in the script file, especially the ECU Instance Names.

  2. If you haven’t provided the option --save-script, then you have to copy suggested ready-to-run commands in the console output to generate an ECU Extract out of your input files. In this case, paste the ready-to-use commands from the console into your terminal or build task script and execute it to generate your ECU extract.

    Ready-to-use Commands
    ecuxpro merge -i="D:\DEV\Workspaces\VectorDemo\Input\OEMInput\Preprocessing\EthernetCluster.arxml" -i="D:\DEV\Workspaces\VectorDemo\Input\OEMInput\Preprocessing\DiagnosticData.arxml" -i="D:\DEV\Workspaces\VectorDemo\Input\OEMInput\Preprocessing\MyECU_LdCom_PW_Transformer.arxml" D:\DEV\Workspaces\MyProject\InvariantMerged.arxml

In both cases, the result is a generated ECU Extract which is now available in the specified output folder.

How does the input file order affect the suggested merge command result?

Considering the above Analyze Command example, the suggested merge command would look like this:

ecuxpro merge -i="file1.arxml" -i="file2.arxml" -i="file3.ldf" -i="file4.arxml" "Path\To\Generated\Ecu\Extract\InvariantMerged.arxml"

This means that the first ARXML file is considered as the base file, and the elements of the following files are merged into these base elements. Also, all legacy communication files are converted together and merged into the first legacy communication file in the list, which in turn is merged into the first ARXML file in the list. If the first legacy communication file is the first file in the list, then the converted ARXML of this legacy communication file is considered as the base file for the merge of all other files. Therefore, changing the order of input files might change the result of the merge, as there are four special elements which are allowed to exist only once in an ECU Extract model:

  • System

  • ECU-Instance

  • Root-Sw-Component-Prototype

  • Composition-Sw-Component-Type