Dient zur Rückgabe der Nutzdaten einer positiven Diagnose-Antwort ohne Service-ID bei Download-Operationen.
Kontext
Die Struktur ara::diag::DownloadService::OperationOutput ist ein spezialisierter Datentyp des Diagnosemoduls innerhalb der AUTOSAR Adaptive Platform und wird über die Header-Datei ara/diag/download.h bereitgestellt ([SWS_DM_00785]). Ihre primäre Rolle besteht darin, die Nutzdaten einer positiven Diagnose-Antwortnachricht für Download-Dienste zu kapseln (AUTOSAR_AP_SWS_Diagnostics §8.14.2 „Struct: OperationOutput“). Innerhalb der Diagnosearchitektur fungiert die Struktur als Datentransportbehälter zwischen der konkreten Service-Implementierung in der adaptiven Anwendung und der zugrunde liegenden Diagnose-Laufzeitumgebung (ara::diag), welche wiederum mit dem externen Diagnose-Client (Tester) interagiert (AUTOSAR_AP_SWS_Diagnostics §7 „API Specification“).
Das einzige enthaltene Mitglied ist das öffentliche Feld responseData vom Typ ara::core::Vector<std::uint8_t> ([SWS_DM_00786]). Es transportiert die reinen Nutz- und Payload-Bytes, die bei einer erfolgreichen Bearbeitung einer Download-Operation an den Diagnose-Tester zurückzusenden sind.
Lebenszyklus
Als reine Datenstruktur (struct) besitzt OperationOutput keine internen Zustandsmaschinen oder eigene Methoden ([SWS_DM_00785]). Ihr Lebenszyklus ist kurzlebig und direkt an die synchrone oder asynchrone Bearbeitung einer einzelnen Diagnoseanfrage gekoppelt:
- Erzeugung: Die Struktur wird von der Anwendung instanziiert, sobald eine Download-Operation erfolgreich abgeschlossen werden konnte und Antwortdaten vorliegen. Die Erzeugung dürfte typischerweise auf dem Stack oder innerhalb einer Callback- bzw. Future-Kette erfolgen. Frage (offen)
- Befüllung und Übergabe: Die Anwendung befüllt den Vektor
responseData mit den berechneten Bytes ([SWS_DM_00786]). Mit der Rückgabe an das Diagnose-Management geht die Verantwortung für die Daten an die Plattform über.
- Zerstörung: Sobald die Plattformschicht die Daten serialisiert und den UDS-Frame versendet hat, wird die Instanz freigegeben.
Hinsichtlich der Nebenläufigkeit ist zu beachten, dass OperationOutput als passives Wertobjekt nicht thread-sicher ist. Werden Operationen in nebenläufigen Worker-Threads der Anwendung verarbeitet, muss sichergestellt werden, dass keine konkurrierenden Zugriffe auf responseData stattfinden, bevor das Objekt an ara::diag übergeben wird.
Nutzungspfad
Die typische Verwendung von OperationOutput erfolgt im Rahmen der Abarbeitung diagnostischer Download-Anfragen. Ein externer Diagnose-Tester sendet eine Anfrage an das Fahrzeug, welche von der Plattform entgegengenommen und an die passende Methode der DownloadService-Schnittstelle in der adaptiven Anwendung weitergeleitet wird (AUTOSAR_AP_SWS_Diagnostics §7 „API Specification“). Nach erfolgreicher interner Verarbeitung erzeugt die Anwendung eine Instanz von OperationOutput und übergibt die Antwortdaten.
Sequenzdiagramm: Zusammenspiel von Diagnose-Client, Plattformlaufzeit und Anwendung bei der Bereitstellung positiver Antwortdaten über OperationOutput. Quellen: [SWS_DM_00785], [SWS_DM_00786], AUTOSAR_AP_SWS_Diagnostics §8.14.2 „Struct: OperationOutput“.
Beim Befüllen von responseData muss beachtet werden, dass die Nutzdaten ohne die Service-ID (SID) bereitgestellt werden müssen ([SWS_DM_00786]). Die Plattform ergänzt die protokollspezifische SID sowie eventuelle Header-Informationen selbstständig. Zudem hängt die genaue inhaltliche Struktur von der aufgerufenen Operation ab: Bei DownloadData oder RequestDownloadExit unterscheidet sich die semantische Erwartung an den Beginn und Aufbau der Antwortdaten im Vektor ([SWS_DM_00786]).
Fehlerszenarien
Da OperationOutput explizit für positive Antwortnachrichten spezifiziert ist (AUTOSAR_AP_SWS_Diagnostics §8.14.2 „Struct: OperationOutput“), existieren innerhalb der Datenstruktur keine Felder für Fehlercodes oder negative Rückmeldungen. Tritt bei der Ausführung der Download-Operation ein Fehler auf (z. B. ungültige Adressbereiche, falsche Blockreihenfolge oder abgebrochene Übertragungen), wird OperationOutput vermutlich nicht ausgewertet; die Anwendung signalisiert das Scheitern stattdessen über Fehlerkanäle der Plattform, woraufhin ein negativer Antwortcode (NRC) generiert wird. Frage (offen)
Ein anwendungsseitiger Fehler bei der Nutzung von OperationOutput liegt vor, wenn die Service-ID versehentlich in responseData eingefügt wird. Dies widerspricht der Spezifikation [SWS_DM_00786] und dürfte zu einer fehlerhaften Frame-Formatierung führen. Frage (offen) Ebenso führt eine falsche Byte-Reihenfolge oder unvollständige Datenmenge je nach spezifischer Operation zu Protokollfehlern auf Seiten des Testers ([SWS_DM_00786]).
Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive Platform Release R25-11 und wurde automatisiert erstellt.
gemini-3.8-flash-medium· 2026-10-13