DEENESPTFRRUARHIKOZHNL

struct ara::diag::GenericUDSService::OperationOutput

[SWS_DM_00578] Upstream: RS_Diag_04169, RS_Diag_04172

struct OperationOutput {...};

Response data of positive respose message.

Header-Datei#include "ara/diag/generic_uds_service.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopeclass ara::diag::GenericUDSService

User GuideKI-GENERIERT

Kapselt die Nutzdaten einer positiven UDS-Antwort ohne Service-Identifier für die Übergabe an das Diagnostic Management.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: e0f4adf446cb Herkunft Offene Fragen (3)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Kapselt die Nutzdaten einer positiven UDS-Antwort ohne Service-Identifier für die Übergabe an das Diagnostic Management.

Die Struktur ara::diag::GenericUDSService::OperationOutput dient im Modul diag als Ausgabestruktur für die Nutzdaten positiver UDS-Antwortnachrichten [SWS_DM_00632]. Eine Anwendung befüllt nach erfolgreicher Ausführung eines generischen UDS-Dienstes die Byte-Variable responseData und übergibt die Instanz an das Diagnostic Management. Dabei darf der UDS Service-Identifier (SID) nicht in responseData enthalten sein, da dieser automatisch durch die Plattform ergänzt wird [SWS_DM_00632]. Für Fehlerszenarien und negative Antworten ist die Struktur nicht vorgesehen.

Kontext

Die Datenstruktur ara::diag::GenericUDSService::OperationOutput dient innerhalb der AUTOSAR Adaptive Platform im Modul diag als standardisierter Ausgabekanal für generische UDS-Dienste [SWS_DM_00632]. Sie ist in der Header-Datei #include "ara/diag/generic_uds_service.h" definiert und fungiert als Kapselung für die Nutzdaten einer erfolgreichen UDS-Dienstausführung [SWS_DM_00632]. Die wesentlichen Interaktionspartner sind die anwendungsspezifische Implementierung des generischen UDS-Service-Handlers sowie das übergeordnete Diagnostic Management der Plattform AUTOSAR_AP_SWS_Diagnostics S. 80. Während das Diagnostic Management die Koordination mit dem externen Diagnosetester, die Protokollvalidierung und das Rahmenwerk übernimmt, stellt OperationOutput die isolierte Nutzlast für die positive UDS-Antwortnachricht bereit [SWS_DM_00632].

Lebenszyklus

Instanzen von ara::diag::GenericUDSService::OperationOutput weisen einen stark fokussierten und kurzlebigen Lebenszyklus auf. Die Struktur wird durch die Dienstanwendung im lokalen Kontext einer eingehenden UDS-Anfrage instanziiert. Über die einzige öffentliche Elementvariable responseData vom Typ ara::core::Vector<std::uint8_t> übernimmt die Struktur den vollständigen Besitz der Nutzdatenbytes [SWS_DM_00632].

Interpretation: Die Lebensdauer von OperationOutput ist flüchtig und an die Dauer der jeweiligen Anfragebearbeitung gebunden; die Instanz dürfte nach ihrer Befüllung mittels Rückgabewert oder Verschiebesemantik an das Diagnostic Management übergeben und nach der Serialisierung in den UDS-Antwortframe wieder zerstört werden. Frage Q-c736182a9518978a (offen) Da es sich um ein reines Datenübertragungsobjekt (DTO) ohne interne Zustandslogik handelt, existieren keine Zustandsübergänge. Hinsichtlich der Nebenläufigkeit bietet OperationOutput keine inhärente Thread-Sicherheit; da die Instanziierung und Befüllung jedoch pro Anfrage isoliert innerhalb des Bearbeitungskontexts erfolgt, ist bei regulärer Dienstanwendung keine externe Synchronisation erforderlich.

Nutzungspfad

Der reguläre Ablauf bei der Verarbeitung einer Diagnoseanforderung gliedert sich in folgende Schritte:

  • Empfang: Das Diagnostic Management empfängt eine UDS-Anfrage von einem externen Diagnosetester und leitet sie an die entsprechende Instanz von GenericUDSService weiter AUTOSAR_AP_SWS_Diagnostics S. 81.
  • Dienstausführung: Die Anwendung interpretiert die empfangenen Parameter und führt die interne Diagnosefunktion aus.
  • Ergebnisbereitstellung: Bei erfolgreicher Verarbeitung instanziiert die Anwendung ein Objekt vom Typ OperationOutput und weist dem Feld responseData die Nutzdaten der Antwort zu [SWS_DM_00632]. Hierbei schreibt die Spezifikation verbindlich vor, dass responseData ausschließlich die Datenbytes ohne den Service-Identifier (SID) enthalten darf [SWS_DM_00632].
  • Übergabe: Die Anwendung übergibt OperationOutput an das Diagnostic Management. Interpretation: Die Übergabe erfolgt typischerweise als synchroner Rückgabewert oder eingebettet in einen asynchronen Zukunftswert wie ara::core::Future. Frage Q-2dcf40060cca29a1 (offen)
  • Nachrichtenversand: Das Diagnostic Management stellt den positiven SID automatisch voran, komplettiert das UDS-Telegramm und übermittelt die Antwort an den Diagnosetester.
Ablauf der UDS-Antwortverarbeitung über OperationOutputDiagnosetesterDiagnostic ManagementGenericUDSServiceUDS-Anfrage sendenDienstaufruf ausführenOperationOutput instanziierenresponseData ohne SID befüllenOperationOutput zurückgebenSID voranstellen und UDS-Frame erzeugenPositive UDS-Antwort senden

Sequenzdiagramm: Ablauf der UDS-Antwortgenerierung und Übergabe über OperationOutput. Quellen: [SWS_DM_00632], AUTOSAR_AP_SWS_Diagnostics S. 81

Fehlerszenarien

Bei der Verwendung der Struktur sind wesentliche Randbedingungen und Verhaltensmuster im Fehlerfall zu beachten:

  • Ausschluss negativer Antworten: Gemäß Spezifikation repräsentiert OperationOutput explizit und ausschließlich den Inhalt positiver Antwortnachrichten [SWS_DM_00632]. Interpretation: Kann eine Dienstanforderung nicht erfolgreich bearbeitet werden (z. B. infolge unzulässiger Parameter oder ungültiger Vorbedingungen), dürfte kein OperationOutput erzeugt werden; stattdessen signalisiert die Anwendung einen Negative Response Code (NRC) an das Diagnostic Management. Frage Q-09abb9092c1dc167 (offen)
  • Fehlerhafte SID-Inklusion: Wird der Service-Identifier irrtümlich in responseData eingefügt, entsteht ein fehlerhaft formatiertes UDS-Telegramm, da das Diagnostic Management den SID bei positiven Antworten eigenständig voranstellt [SWS_DM_00632].
  • Speicherallokation: Da responseData als dynamischer Vektor (ara::core::Vector) deklariert ist, müssen bei der Zuweisung sehr großer Nutzdatenmengen mögliche Speicherengpässe berücksichtigt werden [SWS_DM_00632].

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__GenericUDSService__OperationOutput107 «struct» OperationOutput + responseData

Konstanten

responseData variable

Content of positive respose message (without SID)

Dokumentation der Konstanten / Variablen

variable responseData [SWS_DM_00632] Upstream: RS_Diag_04169, RS_Diag_04172

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

Content of positive respose message (without SID)

Header-Datei#include "ara/diag/generic_uds_service.h"
Scopestruct ara::diag::GenericUDSService::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_00632
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00632@rel:R25-11#42fda563
Content hash
42fda563
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00632
Status: valid/unmigrated Version: rel:R25-11#3466b277 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_00632@rel:R25-11#3466b277
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#42fda5632026-09-30
  • R20-11rel:R20-11#2f3f72b02026-10-14
  • R21-11rel:R21-11#14b5fdc12026-10-14
  • R22-11rel:R22-11#03c6c13a2026-10-14
  • R23-11rel:R23-11#8e6b999c2026-10-14
  • R24-11rel:R24-11#8e6b999c2026-10-14
  • R25-11rel:R25-11#3466b2772026-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