There is the situation that a tool is connecting to a device and need to create an individual update for this device solution, which may include just a subset of elements.

image077.png

Figure B.14: Update sequence for a modular device using a solution package.

Steps of the workflow:

  1. Connect to the device via the UA server.
  2. The client finds the entry point of the modular device, that can happen by:
  3. Knowing the structure such as UADI:DeviceType or UAFX:AssetType
  4. Finding the object with software class “Solution” behind,
  5. In cases of a sever hosting multiple devices, the user selects the right one or the client knows the identification of the target device.
  6. Browse the references CanUpdate of the “Solution” object to know devices can be updated via a solution package. Afterwards read the identification of the linked modules.
  7. Check the flag “UnsignedPackagesAllowed” to know if a solution package is required to be signed.
  8. User selects the FW version or config/application and modules/targets that should be updated.
  9. Client creates a new solution package with the selected content. It includes:
  10. Creating of the solution package and pack the sub-packages into it.
  11. Creating a package metadata file that contains the assignment information.
  12. Optionally sign the solution package with a customer provided certificate or service.
  13. Client downloads the solution package to the device.
  14. Device is doing an overall check on the package level if its valid and intended for this device.
  15. Optional checking the package signature
  16. Client calls ValidateFiles to trigger a check of the metadata data about assignments
  17. For the successful matched elements, the sub-packages are copied or linked to the SoftwareUpdate instances of each device into the PendingVersion.
  18. Server is returning the info which elements are ready for update and which are not supported
  19. Client tiggers the installation process by calling InstallSoftwareFiles. This triggers the real installation process on the device side.
  20. Device is installing the selected version. That can happen in parallel or sequential or combined way depending on the device capabilities. This is up to the devices.
  21. Client is subscribing to [a] or/and [b] to get progress and status of the installation process.
  22. A global event (aggregates all progress and status updates via the module and update ID, so that the client can see the details on module is referred)
  23. Each individual module
  24. Device is sending the progress and status information.
  25. After client received the message for end of installation, he is reading the module identification with software revision to check if installation was really successful.