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

Encapsulates the payload data of a positive UDS response without service identifier for handover to Diagnostic Management.
AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: e0f4adf446cb Provenance Open questions (3)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Encapsulates the payload data of a positive UDS response without service identifier for handover to Diagnostic Management.

The structure ara::diag::GenericUDSService::OperationOutput serves in module diag as an output structure for the payload data of positive UDS response messages [SWS_DM_00632]. After successful execution of a generic UDS service, an application populates the byte variable responseData and hands the instance over to Diagnostic Management. Here, the UDS Service Identifier (SID) must not be contained in responseData, as it is automatically added by the platform [SWS_DM_00632]. The structure is not intended for error scenarios and negative responses.

Context

Within the AUTOSAR Adaptive Platform in module diag, the data structure ara::diag::GenericUDSService::OperationOutput serves as a standardized output channel for generic UDS services [SWS_DM_00632]. It is defined in the header file #include "ara/diag/generic_uds_service.h" and functions as an encapsulation for the payload data of a successful UDS service execution [SWS_DM_00632]. The essential interaction partners are the application-specific implementation of the generic UDS service handler as well as the platform's higher-level Diagnostic Management AUTOSAR_AP_SWS_Diagnostics p. 80. While Diagnostic Management handles coordination with the external diagnostic tester, protocol validation, and the framework, OperationOutput provides the isolated payload for the positive UDS response message [SWS_DM_00632].

Lifecycle

Instances of ara::diag::GenericUDSService::OperationOutput exhibit a strongly focused and short-lived lifecycle. The structure is instantiated by the service application in the local context of an incoming UDS request. Via the single public member variable responseData of type ara::core::Vector<std::uint8_t>, the structure assumes complete ownership of the payload data bytes [SWS_DM_00632].

Interpretation: The lifetime of OperationOutput is transient and bound to the duration of the respective request processing; after being populated, the instance is likely handed over to Diagnostic Management by means of return value or move semantics and destroyed again after serialization into the UDS response frame. Question Q-c736182a9518978a (open) Because it is a pure data transfer object (DTO) without internal state logic, no state transitions exist. With regard to concurrency, OperationOutput offers no inherent thread safety; however, because instantiation and population occur isolated per request within the processing context, no external synchronization is required in regular service application.

Usage Path

The regular sequence during the processing of a diagnostic request is divided into the following steps:

  • Reception: Diagnostic Management receives a UDS request from an external diagnostic tester and forwards it to the corresponding instance of GenericUDSService AUTOSAR_AP_SWS_Diagnostics p. 81.
  • Service execution: The application interprets the received parameters and executes the internal diagnostic function.
  • Result provision: Upon successful processing, the application instantiates an object of type OperationOutput and assigns the payload data of the response to field responseData [SWS_DM_00632]. Here, the specification mandatorily dictates that responseData may exclusively contain the data bytes without the Service Identifier (SID) [SWS_DM_00632].
  • Handover: The application hands OperationOutput over to Diagnostic Management. Interpretation: The handover typically takes place as a synchronous return value or embedded in an asynchronous future value such as ara::core::Future. Question Q-2dcf40060cca29a1 (open)
  • Message dispatch: Diagnostic Management automatically prepends the positive SID, completes the UDS telegram, and transmits the response to the diagnostic tester.
Sequence of UDS response processing via OperationOutputDiagnosetesterDiagnostic ManagementGenericUDSServiceUDS-Anfrage sendenExecute service callOperationOutput instanziierenPopulate responseData without SIDReturn OperationOutputPrepend SID and generate UDS framePositive UDS-Antwort senden

Sequence diagram: Sequence of UDS response generation and handover via OperationOutput. Sources: [SWS_DM_00632], AUTOSAR_AP_SWS_Diagnostics p. 81

Error Scenarios

When using the structure, essential constraints and behavior patterns in the event of an error must be observed:

  • Exclusion of negative responses: According to the specification, OperationOutput explicitly and exclusively represents the content of positive response messages [SWS_DM_00632]. Interpretation: If a service request cannot be processed successfully (e.g., as a result of impermissible parameters or invalid preconditions), no OperationOutput is likely to be created; instead, the application signals a Negative Response Code (NRC) to Diagnostic Management. Question Q-09abb9092c1dc167 (open)
  • Erroneous SID inclusion: If the Service Identifier is mistakenly inserted into responseData, an incorrectly formatted UDS telegram results, as Diagnostic Management independently prepends the SID for positive responses [SWS_DM_00632].
  • Memory allocation: Because responseData is declared as a dynamic vector (ara::core::Vector), potential memory bottlenecks must be taken into account when assigning very large amounts of payload data [SWS_DM_00632].

This guide is based on the AUTOSAR Adaptive Platform Release R25-11 specification and was created automatically.

UML class diagram

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

G nara__diag__GenericUDSService__OperationOutput107 «struct» OperationOutput + responseData

Constants

responseData variable

Content of positive respose message (without SID)

Documentation of constants / variables

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