Convert Platform Functions to Sync Job Contracts

In DaVinci Configurator Classic Version 5, Platform Functions marked the parts of a platform configuration that customer projects took over. In DaVinci Configurator Classic Version 6, ECU Project Synchronization covers this use case. DaVinci Configurator Classic Version 5 can generate a sync job contract from each Platform Function, so you don’t have to write the contracts yourself.

Prerequisites
  • DaVinci Configurator Classic 5.31 SP10 or later, which provides the command-line option --syncContract of DVCfgCmd.exe.

  • The Version 5 project that contains the Platform Functions.

Steps
  1. Before you migrate the project, generate the contracts with the command-line tool of DaVinci Configurator Classic Version 5:

    $ DVCfgCmd.exe --project "C:\Path\To\Platform\Project\Platform.dpa" --exportDir "C:\Path\To\Export" --exportPlatformFunctions --syncContract

    For each Platform Function, the command writes two files into the export folder:

    • ExportedPlatformFunction.<function>.syncContract.json, the sync job contract. Its name is the name of the Platform Function, and its instances list every element assigned to the Platform Function.

    • ExportedPlatformFunction.<function>.arxml, the model elements of the Platform Function. Use this file as a reference to check which elements the contract covers. ECU Project Synchronization doesn’t use it, so you don’t need to copy it into the contract folder or the sync job data folder.

  2. Copy the .syncContract.json files into a contract folder that the publishing project and the consuming projects can access, for example SyncJobContracts in a shared repository. Because the file names end with .json, the commands find them in this folder.

  3. Migrate the publishing project and the consuming projects to DaVinci Configurator Classic Version 6, see Migrate from Version 5.

  4. Publish and synchronize the configuration as described in ECU Project Synchronization. Pass the contract folder with -l and the name of the Platform Function with -n, for example:

    $ dvcfg-b project publish -p="/Path/To/Platform/Platform.dvjson" -b="/Path/To/Platform/BSW" -d="/Path/To/SyncJobData" -l="/Path/To/SyncJobContracts" -n="<function>"
    $ dvcfg-b project sync -p="/Path/To/Customer/Customer.dvjson" -b="/Path/To/Customer/BSW" -d="/Path/To/SyncJobData" -l="/Path/To/SyncJobContracts" -n="<function>"
  5. Check the results. If a contract is reported as Skipped during publishing, or as Incomplete during synchronization, an instance path of the contract may no longer match the migrated project. Correct the path in the contract and publish again.

The generated contracts list every element on its own and can be large. You can maintain them like any other contract, for example replace the entries of a complete container with a single entry for the container and "includeSubElements": true, or add an origin. See Sync Job Contracts.