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 GuideAI-GENERATED

Serves to accommodate and return payload data for positive responses of generic routine services.
AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: d9df3888892f Provenance Open questions (3)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Serves to accommodate and return payload data for positive responses of generic routine services.

The structure ara::diag::GenericRoutine::OperationOutput serves as a return structure for positive response messages of generic routine services in AUTOSAR Adaptive [SWS_DM_00633]. After successful execution of a routine, the application instantiates the structure and populates the member responseData with the payload data of the result SWS Diagnostics p. 80. An essential constraint is that the vector responseData contains exclusively the pure result data and that the RoutineIdentifier must explicitly not be contained [SWS_DM_00633].

Context

In the Diagnostics module of AUTOSAR Adaptive, the structure ara::diag::GenericRoutine::OperationOutput serves as a dedicated data container for positive response messages of generic routine services [SWS_DM_00633]. It is available via the header ara/diag/generic_routine.h [SWS_DM_00633] and encapsulates the payload data that an adaptive diagnostic application returns to Diagnostic Management (ara::diag) after successful execution of a routine. Three entities are primarily involved in the interaction: the external diagnostic tester as the sender of routine requests, the platform framework ara::diag for protocol handling, and the application-specific implementation of GenericRoutine, which executes the business logic and provides the result SWS Diagnostics p. 80. The core task of OperationOutput is to provide the pure output data of the routine in a structured manner, where the RoutineIdentifier is explicitly not part of this data structure [SWS_DM_00633].

Lifecycle

As a lightweight data structure (struct), OperationOutput possesses a simple value lifecycle. Instantiation is performed on demand by the adaptive diagnostic application as soon as a command directed to the routine (for example, start, stop, or request results) could be completed positively. The only data element is responseData of type ara::core::Vector<std::uint8_t> [SWS_DM_00633]. The application allocates the vector, populates it with the application-specific return data, and passes the finished structure to the diagnostic subsystem. The return to the diagnostic framework is likely to take place asynchronously via Result or Future types of ara::core (Interpretation: asynchronous interface convention of the Adaptive Platform). Question Q-e672dfb8b9ff416a (open) After handover, responsibility for serialization transfers to ara::diag. As soon as the data has been transmitted or taken over into internal buffers, the structure is destroyed again upon leaving the respective scope. Regarding concurrency, it should be noted that OperationOutput is created for the context of a single operation execution; shared, unprotected access across multiple threads does not regularly take place.

Usage Path

The regular sequence for using OperationOutput comprises several consecutive phases:

  • Request reception: A diagnostic client sends a UDS RoutineControl request that is forwarded by the diagnostic layer to the responsible GenericRoutine instance SWS Diagnostics p. 84.
  • Execution: The adaptive application executes the requested routine and processes the input parameters.
  • Result generation: After successful execution, the application creates an instance of OperationOutput and populates responseData with the resulting byte values [SWS_DM_00633].
  • Response handover: The structure is returned to ara::diag as a positive operation result.
  • Response transmission: Diagnostic Management presumably handles the automatic prepending of the RoutineIdentifier before the responseData field when assembling the UDS response (Interpretation: protocol header completion by the daemon) and sends the complete packet to the client [SWS_DM_00633]. Question Q-ccdd2867b87d00d1 (open)
Provision of positive response data via OperationOutputDiagnostic clientara::diagGenericRoutineRoutineControl RequestExecute routineOperationOutput instanziierenPopulate responseDataReturn OperationOutputPositive response (with responseData)

Sequence diagram: Typical sequence of data provision via OperationOutput upon successful routine execution. Sources: [SWS_DM_00633], SWS Diagnostics p. 80.

Error Scenarios

If an error occurs during execution of the routine or if the passed input data is invalid, the usage path of OperationOutput is aborted. In the event of an error, the application is likely to transmit an error code to Diagnostic Management instead of OperationOutput, thereby triggering a negative UDS response (Interpretation: error path via Result/Error domain). Question (open) Thus, an essential precondition for using OperationOutput is that the routine operation has been completed entirely and without errors. As a postcondition, the application guarantees that responseData contains exclusively the pure payload data of the positive response message and that no protocol prefixes such as the RoutineIdentifier are included [SWS_DM_00633]. If a routine was indeed successfully completed but produces no additional return data, the vector responseData remains empty SWS Diagnostics p. 70.

This guide is based on the AUTOSAR Adaptive specification for the module Diagnostics (R25-11). Explanations are based on the specification excerpt and are subject to the documented framework of assumptions.

UML class diagram

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

G nara__diag__GenericRoutine__OperationOutput174 «struct» OperationOutput + responseData

Constants

responseData variable

Content of positive respose message (without RoutineIdentifier)

Documentation of constants / variables

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