DEENESPTFRRUARHIKOZHNL

struct ara::diag::GenericRoutine::OperationOutput

[SWS_DM_00551] Upstream: RS_Diag_04169, RS_Diag_04224

struct OperationOutput {...};

Response data of positive respose message.

Header-Datei#include "ara/diag/generic_routine.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopeclass ara::diag::GenericRoutine

User GuideKI-GENERIERT

Dient der Aufnahme und Rückgabe von Nutzdaten bei erfolgreichen Antworten generischer Routine-Dienste.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: d9df3888892f Herkunft Offene Fragen (3)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Dient der Aufnahme und Rückgabe von Nutzdaten bei erfolgreichen Antworten generischer Routine-Dienste.

Die Struktur ara::diag::GenericRoutine::OperationOutput dient als Rückgabestruktur für positive Antwortnachrichten generischer Routine-Dienste in AUTOSAR Adaptive [SWS_DM_00633]. Nach erfolgreicher Ausführung einer Routine instanziiert die Anwendung die Struktur und befüllt das Mitglied responseData mit den Nutzdaten des Ergebnisses SWS Diagnostics S. 80. Wesentliche Randbedingung ist, dass der Vektor responseData ausschließlich die reinen Ergebnisdaten enthält und der RoutineIdentifier explizit nicht enthalten sein darf [SWS_DM_00633].

Kontext

Die Struktur ara::diag::GenericRoutine::OperationOutput dient im Diagnosemodul von AUTOSAR Adaptive als dedizierter Datenbehälter für positive Antwortnachrichten generischer Routine-Dienste [SWS_DM_00633]. Sie ist über den Header ara/diag/generic_routine.h verfügbar [SWS_DM_00633] und kapselt die Nutzdaten, die eine adaptive Diagnose-Anwendung nach der erfolgreichen Abarbeitung einer Routine an das Diagnose-Management (ara::diag) zurückliefert. An der Interaktion sind primär drei Instanzen beteiligt: der externe Diagnose-Tester als Sender von Routine-Anfragen, das Plattform-Framework ara::diag zur Protokollabwicklung und die anwendungsspezifische Implementierung von GenericRoutine, welche die fachliche Logik ausführt und das Ergebnis bereitstellt SWS Diagnostics S. 80. Die Kernaufgabe von OperationOutput besteht darin, die reinen Ausgabedaten der Routine strukturiert bereitzustellen, wobei der RoutineIdentifier ausdrücklich nicht Teil dieser Datenstruktur ist [SWS_DM_00633].

Lebenszyklus

Als leichtgewichtige Datenstruktur (struct) besitzt OperationOutput einen einfachen Werte-Lebenszyklus. Die Instanziierung erfolgt bedarfsgesteuert durch die adaptive Diagnose-Anwendung, sobald ein an die Routine gerichteter Befehl (beispielsweise Start, Stopp oder Ergebnisabfrage) positiv abgeschlossen werden konnte. Das einzige Datenelement ist responseData vom Typ ara::core::Vector<std::uint8_t> [SWS_DM_00633]. Die Anwendung allokiert den Vektor, befüllt ihn mit den anwendungsspezifischen Rückgabedaten und übergibt die fertige Struktur an das Diagnose-Subsystem. Die Rückgabe an das Diagnose-Framework dürfte typischerweise asynchron über Result- oder Future-Typen von ara::core erfolgen (Interpretation: asynchrone Schnittstellenkonvention der Adaptive Platform). Frage Q-e672dfb8b9ff416a (offen) Nach der Übergabe geht die Verantwortung für die Serialisierung auf ara::diag über. Sobald die Daten übertragen oder in interne Puffer übernommen wurden, wird die Struktur beim Verlassen des jeweiligen Gültigkeitsbereichs wieder zerstört. Hinsichtlich der Nebenläufigkeit ist zu beachten, dass OperationOutput für den Kontext einer einzelnen Operationsausführung erzeugt wird; ein geteilter, ungeschützter Zugriff über mehrere Threads hinweg findet regulär nicht statt.

Nutzungspfad

Der reguläre Ablauf zur Nutzung von OperationOutput umfasst mehrere aufeinanderfolgende Phasen:

  • Anfrageempfang: Ein Diagnose-Client sendet eine UDS-RoutineControl-Anfrage, die von der Diagnose-Schicht an die zuständige GenericRoutine-Instanz weitergeleitet wird SWS Diagnostics S. 84.
  • Ausführung: Die adaptive Anwendung führt die angeforderte Routine aus und verarbeitet die Eingabeparameter.
  • Ergebniserzeugung: Nach erfolgreicher Ausführung erzeugt die Anwendung ein Exemplar von OperationOutput und befüllt responseData mit den resultierenden Byte-Werten [SWS_DM_00633].
  • Antwortübergabe: Die Struktur wird als positives Operationsergebnis an ara::diag zurückgegeben.
  • Antwortübertragung: Das Diagnose-Management übernimmt vermutlich die automatische Voranstellung des RoutineIdentifier vor das responseData-Feld beim Zusammenbau der UDS-Antwort (Interpretation: Protokollheader-Ergänzung durch den Daemon) und sendet das Gesamtpaket an den Client [SWS_DM_00633]. Frage Q-ccdd2867b87d00d1 (offen)
Bereitstellung positiver Antwortdaten über OperationOutputDiagnose-Clientara::diagGenericRoutineRoutineControl RequestRoutine ausführenOperationOutput instanziierenresponseData befüllenOperationOutput zurückgebenPositive Response (mit responseData)

Sequenzdiagramm: Typischer Ablauf der Datenbereitstellung über OperationOutput bei erfolgreicher Routine-Ausführung. Quellen: [SWS_DM_00633], SWS Diagnostics S. 80.

Fehlerszenarien

Tritt während der Abarbeitung der Routine ein Fehler auf oder sind die übergebenen Eingabedaten ungültig, wird der Nutzungspfad von OperationOutput abgebrochen. Im Fehlerfall dürfte die Anwendung anstelle von OperationOutput einen Fehlercode an das Diagnose-Management übermitteln, wodurch eine negative UDS-Antwort ausgelöst wird (Interpretation: Fehlerpfad via Result/Error-Domain). Frage (offen) Als wesentliche Vorbedingung für die Verwendung von OperationOutput gilt somit, dass die Routine-Operation vollständig und fehlerfrei beendet wurde. Als Nachbedingung garantiert die Anwendung, dass responseData ausschließlich die reinen Nutzdaten der positiven Antwortnachricht enthält und keine Protokoll-Präfixe wie der RoutineIdentifier enthalten sind [SWS_DM_00633]. Sollte eine Routine zwar erfolgreich beendet worden sein, aber keine zusätzlichen Rückgabedaten erzeugen, verbleibt der Vektor responseData leer SWS Diagnostics S. 70.

Dieser Leitfaden basiert auf der AUTOSAR-Adaptive-Spezifikation für das Modul Diagnostics (R25-11). Erläuterungen stützen sich auf den Spezifikationsauszug und unterliegen dem dokumentierten Annahmenrahmen.

UML-Klassendiagramm

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

G nara__diag__GenericRoutine__OperationOutput174 «struct» OperationOutput + responseData

Konstanten

responseData variable

Content of positive respose message (without RoutineIdentifier)

Dokumentation der Konstanten / Variablen

variable responseData [SWS_DM_00633] Upstream: RS_AP_00137, RS_Diag_04169, RS_Diag_04224

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

Content of positive respose message (without RoutineIdentifier)

Header-Datei#include "ara/diag/generic_routine.h"
Scopestruct ara::diag::GenericRoutine::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_00633
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00633@rel:R25-11#85d41a6a
Content hash
85d41a6a
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00633
Status: valid/unmigrated Version: rel:R25-11#05a25446 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_00633@rel:R25-11#05a25446
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#85d41a6a2026-09-30
  • R20-11rel:R20-11#bfdc6f692026-10-14
  • R21-11rel:R21-11#bfdc6f692026-10-14
  • R22-11rel:R22-11#816f129b2026-10-14
  • R23-11rel:R23-11#4c6a51d42026-10-14
  • R24-11rel:R24-11#4c6a51d42026-10-14
  • R25-11rel:R25-11#05a254462026-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