Captures status, percentage progress, and error code of a sub-entity during SOVD-based software updates.
AI-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 86b478c2c357ProvenanceOpen questions (2)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original
Captures status, percentage progress, and error code of a sub-entity during SOVD-based software updates.
The structure ara::diag::SovdSwUpdate::SubProgress encapsulates the current progress, status, and any errors of a specific entity during an SOVD-based software update ([SWS_DM_01896]). Update routines capture the component to be updated in it, track the percentage progress, and transmit the overall state to diagnostics management. If the update fails, field error specifies the error code that occurred, whereas it is ignored during regular execution ([SWS_DM_01901]). Because SubProgress is a pure data value type without internal synchronization, concurrent modification requires application-side protection.
Context
The structure ara::diag::SovdSwUpdate::SubProgress is part of the C++ interface for SOVD-based software updates in the diag module of the AUTOSAR Adaptive Platform ([SWS_DM_01896], AUTOSAR_AP_SWS_Diagnostics §8.58.3 “Struct: SubProgress”). In the context of Service-Oriented Vehicle Diagnostics (SOVD), update procedures can consist of multiple parallel or sequential sub-steps. SubProgress assumes responsibility for representing the processing state of a specific subcomponent during the update. Interaction partners include diagnostic-internal update routines that execute sub-updates, as well as higher-level control instances that coordinate the overall progress of an update and report it to external diagnostic tools.
entity: A ara::core::String naming the entity that is currently being updated ([SWS_DM_01898]).
status: A value of type SovdUpdateStatus representing the current status of the update ([SWS_DM_01899]).
progress: An optional value of type ara::core::Optional<std::uint8_t> for the progress in percent ([SWS_DM_01900]).
error: An error code of type ara::core::ErrorCode for specifying errors that occurred in the event of an error ([SWS_DM_01901]).
Lifecycle
Designed as a struct, SubProgress has value semantics (AUTOSAR_AP_SWS_Diagnostics §8.58.3.1 “Public Member Variables”). An instance is typically created on the stack or within a higher-level state container as soon as a new sub-step within update processing begins. At the beginning, the managing component assigns the identifier of the target entity to the instance via entity ([SWS_DM_01898]) and sets the initial status in status ([SWS_DM_01899]).
During the process, the percentage progress and status changes are continuously updated in the structure. After completion or cancellation of the sub-update, the structure is passed on or read out and finally destroyed automatically upon leaving scope. Since the specification does not prescribe any dedicated methods or synchronization primitives, the structure likely functions as a pure data holder without its own thread safety (interpretation). Question Q-92b3fcc698f7bab8 (open) Concurrent access by multiple threads therefore requires application-side synchronization.
Usage Path
The regular sequence for progress reporting is divided into a fixed sequence of steps:
First, the executing update logic instantiates an object of type SubProgress and sets the identifier of the entity concerned in entity ([SWS_DM_01898]). At the same time, the initial value for status is set, for example to signal the start of processing ([SWS_DM_01899]). For continuous steps, the logic periodically writes the progress in percent to field progress ([SWS_DM_01900], AUTOSAR_AP_SWS_Diagnostics §8.58.3.1.3 “progress”). Because progress is declared as ara::core::Optional, the field remains empty as long as the progress is still undetermined. Finally, the structure is passed to the central interface SovdSwUpdate so that external SOVD clients can query the status ([SWS_DM_01896]).
In the event of irregularities or errors during the processing of a sub-entity, the structure's error scenario applies. If an error occurs, the value in status changes to an error state ([SWS_DM_01899]). According to [SWS_DM_01901], variable error specifies the exact error code only if the status is failed ("Specifies the error if status is failed"). This represents a mandatory logical coupling between status and error: Receivers of the structure may evaluate field error as significant only if status actually reports a failed state; otherwise, the content is presumably ignored or represents a default value (interpretation). Question Q-3caa7622672dcb8e (open)
Another error scenario concerns undetermined progress: If the processing entity cannot determine a concrete percentage value or if the calculation aborts prematurely, the optional field progress remains without a value (ara::core::nullopt), which prevents invalid numerical values from being mistakenly interpreted as a percentage specification ([SWS_DM_01900]).
This guide is based on the AUTOSAR Adaptive Platform Release R25-11 specification and summarizes the requirements for the ara::diag::SovdSwUpdate::SubProgress structure.
gemini-3.8-flash-low· 2026-10-13 · German original