DEENESPTFRRUARHIKOZHNL

struct ara::diag::DownloadService::OperationOutput

[SWS_DM_00785] Upstream: RS_Diag_04033

struct OperationOutput {...};

Response data of positive response message.

Header-Datei#include "ara/diag/download.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopeclass ara::diag::DownloadService

User GuideKI-GENERIERT

Dient zur Rückgabe der Nutzdaten einer positiven Diagnose-Antwort ohne Service-ID bei Download-Operationen.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: c06f480862f4 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Dient zur Rückgabe der Nutzdaten einer positiven Diagnose-Antwort ohne Service-ID bei Download-Operationen.

Die Datenstruktur ara::diag::DownloadService::OperationOutput dient als Transportbehälter für die Nutzdaten positiver Diagnose-Antworten bei Download-Diensten ([SWS_DM_00785]). Die adaptive Anwendung befüllt hierbei das Feld responseData mit den Ergebnisbytes und übergibt die Struktur an das Diagnose-Management ([SWS_DM_00786]). Wesentliche Randbedingung ist, dass responseData die Nutzdaten zwingend ohne Service-ID enthalten muss und je nach Operation wie DownloadData oder RequestDownloadExit unterschiedliche Inhalte erwartet werden ([SWS_DM_00786]).

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.

Ablauf der Bereitstellung von Antwortdaten über OperationOutputDiagnose-Clientara::diag (DCM)DownloadService (Anwendung)Download-Anfrage (UDS)Aufruf der Download-OperationVerarbeitet DatenblockErzeugt OperationOutputBefüllt responseData (ohne SID)Rückgabe OperationOutput {responseData}Fügt SID / Header hinzuPositive UDS-Antwortnachricht

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.

UML-Klassendiagramm

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

G nara__diag__DownloadService__OperationOutput45 «struct» OperationOutput + responseData

Konstanten

responseData variable

Content of positive response message (without SID) Depending on the operation (e.g.: DownloadData, RequestDownloadExit) the expectation, what responseData shall contain (where it starts in the positive response) might differ. See doc of corresponding operation.

Dokumentation der Konstanten / Variablen

variable responseData [SWS_DM_00786] Upstream: RS_Diag_04033

ara::core::Vector<std::uint8_t> responseData;

Content of positive response message (without SID) Depending on the operation (e.g.: DownloadData, RequestDownloadExit) the expectation, what responseData shall contain (where it starts in the positive response) might differ. See doc of corresponding operation.

Header-Datei#include "ara/diag/download.h"
Scopestruct ara::diag::DownloadService::OperationOutput
SymbolresponseData
Typara::core::Vector< std::uint8_t >

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

Record
AUTOSAR/AP/record/SWS_DM_00786
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00786@rel:R25-11#a830c82b
Content hash
a830c82b
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00786
Status: valid/unmigrated Version: rel:R25-11#9ee381a9 Versionshistorie & Revisions (1 transition, 7 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_00786@rel:R25-11#9ee381a9
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#a830c82b2026-09-30
  • R20-11rel:R20-11#5fbb8d5c2026-10-14
  • R21-11rel:R21-11#bfa9d5ae2026-10-14
  • R22-11rel:R22-11#ef7d58082026-10-14
  • R23-11rel:R23-11#0f456ef02026-10-14
  • R24-11rel:R24-11#0f456ef02026-10-14
  • R25-11rel:R25-11#9ee381a92026-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