DEENESPTFRRUARHIKOZHNL

struct ara::diag::SovdSwUpdate::SubProgress

[SWS_DM_01896] Upstream: RS_Diag_04265

struct SubProgress {...};

Definition of Sovd Progress type.

Header-Datei#include "ara/diag/sovd_sw_update.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopeclass ara::diag::SovdSwUpdate

User GuideAI-GENERATED

Captures status, percentage progress, and error code of a sub-entity during SOVD-based software updates.
AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 86b478c2c357 Provenance Open 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.

The structure defines four public member variables (AUTOSAR_AP_SWS_Diagnostics §8.58.3.1 “Public Member Variables”):

  • 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]).

Progress update of a software update sub-stepUpdate-LogikSubProgressSovdSwUpdateInstantiate with entity and initial statusExecute partial updateUpdate status and progress (in percent)SubProgress bereitstellenaltFailure during partial updateSet status to failed and populate errorTransmit SubProgress with error code

Sequence diagram: Typical sequence of progress reporting and error handling for a sub-update step. Sources: [SWS_DM_01896], [SWS_DM_01898], [SWS_DM_01899], [SWS_DM_01900], [SWS_DM_01901].

Error Scenarios

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.

Member map

Class diagram

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__diag__SovdSwUpdate__SubProgress643 «struct» SubProgress + entity + error + progress + status

Detail view

Select an entry in the outline.

Constants

entity variable

Specifies the entity that is currently being updated.

error variable

Specifies the error if status is failed.

progress variable

Specifies the Update progress in percent.

status variable

Specifies the Update Status.

Documentation of constants / variables

variable entity [SWS_DM_01898] Upstream: RS_Diag_04265

ara::core::String entity;

Specifies the entity that is currently being updated.

Header-Datei#include "ara/diag/sovd_sw_update.h"
Scopestruct ara::diag::SovdSwUpdate::SubProgress
Symbolentity
Typara::core::String

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01898
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01898@rel:R25-11#df033395
Content hash
df033395
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01898
Status: valid/unmigrated Version: rel:R25-11#ae29483e Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01898@rel:R25-11#ae29483e
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#df0333952026-09-30
  • R23-11rel:R23-11#ae29483e2026-10-14
  • R24-11rel:R24-11#ae29483e2026-10-14
  • R25-11rel:R25-11#ae29483e2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

variable error [SWS_DM_01901] Upstream: RS_Diag_04265

ara::core::ErrorCode error;

Specifies the error if status is failed.

Header-Datei#include "ara/diag/sovd_sw_update.h"
Scopestruct ara::diag::SovdSwUpdate::SubProgress
Symbolerror
Typara::core::ErrorCode

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01901
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01901@rel:R25-11#00555222
Content hash
00555222
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01901
Status: valid/unmigrated Version: rel:R25-11#dc82b576 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01901@rel:R25-11#dc82b576
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#005552222026-09-30
  • R23-11rel:R23-11#dc82b5762026-10-14
  • R24-11rel:R24-11#dc82b5762026-10-14
  • R25-11rel:R25-11#dc82b5762026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

variable progress [SWS_DM_01900] Upstream: RS_Diag_04265

ara::core::Optional<std::uint8_t> progress;

Specifies the Update progress in percent.

Header-Datei#include "ara/diag/sovd_sw_update.h"
Scopestruct ara::diag::SovdSwUpdate::SubProgress
Symbolprogress
Typara::core::Optional< std::uint8_t >

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01900
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01900@rel:R25-11#33476bd6
Content hash
33476bd6
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01900
Status: valid/unmigrated Version: rel:R25-11#28ed7b01 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01900@rel:R25-11#28ed7b01
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#33476bd62026-09-30
  • R23-11rel:R23-11#28ed7b012026-10-14
  • R24-11rel:R24-11#28ed7b012026-10-14
  • R25-11rel:R25-11#28ed7b012026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

variable status [SWS_DM_01899] Upstream: RS_Diag_04265

SovdUpdateStatus status;

Specifies the Update Status.

Header-Datei#include "ara/diag/sovd_sw_update.h"
Scopestruct ara::diag::SovdSwUpdate::SubProgress
Symbolstatus
TypSovdUpdateStatus

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01899
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01899@rel:R25-11#74900940
Content hash
74900940
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01899
Status: valid/unmigrated Version: rel:R25-11#2a27d32e Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01899@rel:R25-11#2a27d32e
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#749009402026-09-30
  • R23-11rel:R23-11#2a27d32e2026-10-14
  • R24-11rel:R24-11#2a27d32e2026-10-14
  • R25-11rel:R25-11#2a27d32e2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill