Erfasst Status, prozentualen Fortschritt und Fehlercode einer Teilentität bei SOVD-basierten Software-Updates.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 86b478c2c357HerkunftOffene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Erfasst Status, prozentualen Fortschritt und Fehlercode einer Teilentität bei SOVD-basierten Software-Updates.
Die Struktur ara::diag::SovdSwUpdate::SubProgress kapselt den aktuellen Fortschritt, den Status und eventuelle Fehler einer spezifischen Entität während eines SOVD-basierten Software-Updates ([SWS_DM_01896]). Update-Routinen erfassen darin die zu aktualisierende Komponente, führen den prozentualen Fortschritt nach und übermitteln den Gesamtzustand an die Diagnoseverwaltung. Schlägt die Aktualisierung fehl, spezifiziert das Feld error den aufgetretenen Fehlercode, während es bei regulärem Ablauf unberücksichtigt bleibt ([SWS_DM_01901]). Da SubProgress ein reiner Datenwerttyp ohne interne Synchronisation ist, erfordert die nebenläufige Modifikation eine anwendungsseitige Absicherung.
Kontext
Die Struktur ara::diag::SovdSwUpdate::SubProgress ist Teil der C++-Schnittstelle für SOVD-basierte Software-Aktualisierungen im Modul diag der AUTOSAR Adaptive Platform ([SWS_DM_01896], AUTOSAR_AP_SWS_Diagnostics §8.58.3 „Struct: SubProgress“). Im Rahmen von Service-Oriented Vehicle Diagnostics (SOVD) können Aktualisierungsvorgänge aus mehreren parallelen oder sequenziellen Teilschritten bestehen. SubProgress übernimmt die Verantwortung, den Verarbeitungszustand einer spezifischen Teilkomponente während der Aktualisierung abzubilden. Zu den Interaktionspartnern gehören diagnoseinterne Update-Routinen, die Teilaktualisierungen durchführen, sowie übergeordnete Kontrollinstanzen, welche den Gesamtfortschritt eines Updates koordinieren und an externe Diagnosetools melden.
entity: Ein ara::core::String, der die Entität benennt, die gegenwärtig aktualisiert wird ([SWS_DM_01898]).
status: Ein Wert vom Typ SovdUpdateStatus, welcher den gegenwärtigen Status der Aktualisierung darstellt ([SWS_DM_01899]).
progress: Ein optionaler Wert vom Typ ara::core::Optional<std::uint8_t> für den Fortschritt in Prozent ([SWS_DM_01900]).
error: Ein Fehlercode vom Typ ara::core::ErrorCode zur Spezifikation aufgetretener Fehler im Fehlerfall ([SWS_DM_01901]).
Lebenszyklus
Als struct konzipiert besitzt SubProgress Wertsemantik (AUTOSAR_AP_SWS_Diagnostics §8.58.3.1 „Public Member Variables“). Eine Instanz wird typischerweise auf dem Stack oder innerhalb eines übergeordneten Zustandsbehälters erzeugt, sobald ein neuer Teilschritt innerhalb der Update-Verarbeitung beginnt. Die verwaltende Komponente weist der Instanz zu Beginn die Kennung der Zielentität über entity zu ([SWS_DM_01898]) und setzt den Anfangsstatus in status ([SWS_DM_01899]).
Während des Ablaufs werden der prozentuale Fortschritt sowie Statusänderungen fortlaufend in der Struktur aktualisiert. Nach Abschluss oder Abbruch der Teilaktualisierung wird die Struktur übergeben oder ausgelesen und schließlich mit dem Verlassen des Gültigkeitsbereichs automatisch zerstört. Da die Spezifikation keine eigenen Methoden oder Synchronisationsprimitive vorgibt, dürfte die Struktur als reiner Datenhalter ohne eigene Thread-Sicherheit fungieren (Interpretation). Frage Q-92b3fcc698f7bab8 (offen) Ein nebenläufiger Zugriff mehrerer Threads erfordert daher eine anwendungsseitige Synchronisation.
Nutzungspfad
Der reguläre Ablauf zur Fortschrittsmeldung gliedert sich in eine feste Folge von Schritten:
Zunächst instanziiert die ausführende Aktualisierungslogik ein Objekt vom Typ SubProgress und setzt den Bezeichner der betreffenden Entität in entity ([SWS_DM_01898]). Gleichzeitig wird der Startwert für status gesetzt, beispielsweise um den Beginn der Verarbeitung zu signalisieren ([SWS_DM_01899]). Bei kontinuierlichen Schritten schreibt die Logik periodisch den Fortschritt in Prozent in das Feld progress ([SWS_DM_01900], AUTOSAR_AP_SWS_Diagnostics §8.58.3.1.3 „progress“). Da progress als ara::core::Optional deklariert ist, bleibt das Feld leer, solange der Fortschritt noch unbestimmt ist. Abschließend wird die Struktur an die zentrale Schnittstelle SovdSwUpdate übergeben, damit externe SOVD-Clients den Status abfragen können ([SWS_DM_01896]).
Im Falle von Unregelmäßigkeiten oder Fehlern während der Bearbeitung einer Teilentität greift das Fehlerszenario der Struktur. Tritt ein Fehler auf, wechselt der Wert in status auf einen Fehlerzustand ([SWS_DM_01899]). Gemäß [SWS_DM_01901] spezifiziert die Variable error den genauen Fehlercode nur dann, wenn der Status fehlgeschlagen ist („Specifies the error if status is failed“). Dies stellt eine verbindliche logische Kopplung zwischen status und error dar: Empfänger der Struktur dürfen das Feld error nur dann als signifikant auswerten, wenn status tatsächlich einen fehlgeschlagenen Zustand meldet; andernfalls bleibt der Inhalt vermutlich unberücksichtigt oder stellt einen Standardwert dar (Interpretation). Frage Q-3caa7622672dcb8e (offen)
Ein weiteres Fehlerszenario betrifft unbestimmte Fortschritte: Kann die verarbeitende Entität keinen konkreten Prozentwert ermitteln oder bricht die Berechnung vorzeitig ab, bleibt das optionale Feld progress ohne Wert (ara::core::nullopt), was verhindert, dass ungültige Zahlenwerte fälschlich als Prozentangabe interpretiert werden ([SWS_DM_01900]).
Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive Platform Release R25-11 und fasst die Anforderungen an die Struktur ara::diag::SovdSwUpdate::SubProgress zusammen.
gemini-3.8-flash-medium· 2026-10-13