DEENESPTFRRUARHIKOZHNL

struct ara::diag::UploadService::OperationOutput

[SWS_DM_00795] Upstream: RS_Diag_04033

struct OperationOutput {...};

Response data of positive respose message.

Header-Datei#include "ara/diag/upload.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopeclass ara::diag::UploadService

User GuideAI-GENERATED

Accommodates the payload data of a positive response message for diagnostic upload operations.
AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 6cf26bd1a154 Provenance Open questions (2)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Accommodates the payload data of a positive response message for diagnostic upload operations.

The structure ara::diag::UploadService::OperationOutput serves as an output parameter for returning payload data of a positive diagnostic response in upload services [SWS_DM_00796]. The application software instantiates the object after successful execution of an upload operation and populates member responseData with the data bytes to be sent [SWS_DM_00796]. Here, the content of responseData must not contain a Service Identifier (SID) and must conform to the operation-specific specifications of services such as UploadData or RequestUploadExit. Interpretation: In the event of an error, the structure is not used, and a negative response status is signaled instead. Question Q-52a8538825bc0a30 (open)

Context

The structure ara::diag::UploadService::OperationOutput functions as a data container for the payload data of a successful diagnostic operation within the scope of the vehicle-side upload service [SWS_DM_00796]. Its primary responsibility is to encapsulate the data for a positive response message and forward it to the platform [SWS_DM_00796].

In the overall system, three components interact here: the external diagnostic client (tester), the diagnostic runtime environment of the Adaptive system (ara::diag), and the application-specific implementation of UploadService [SWS_DM_00796]. As soon as the tester requests a UDS service operation, ara::diag delegates processing to the responsible service provider of the application, which returns the result via OperationOutput to the platform layer [SWS_DM_00796].

OperationOutputContext client Diagnostic client aradiag ara::diag client->aradiag UDS request aradiag->client Positive Antwort app UploadService Provider aradiag->app Dienstaufruf app->aradiag OperationOutput

Context diagram: Interplay of diagnostic client, runtime environment ara::diag, and UploadService during the provision of response data. Sources: [SWS_DM_00796], AUTOSAR_AP_SWS_Diagnostics, p. 74.

Lifecycle

The structure OperationOutput is designed as a pure data transfer object without internal state logic and is provided via the header #include "ara/diag/upload.h" [SWS_DM_00796]. Its lifecycle is divided into the following phases:

  • Creation: Instantiation is performed application-side within the executing diagnostic operation as soon as the requested upload data has been successfully assembled. Interpretation: The object is presumably created locally on the stack of the service application. Question (open)
  • Population: The application logic assigns the payload data to be provided to the public member responseData of type ara::core::Vector<std::uint8_t> [SWS_DM_00796].
  • Ownership transfer: The object is passed to ara::diag as an operation result. Interpretation: This handover is likely to occur by value or move semantics, whereby responsibility for the data transfers to the platform. Question (open)
  • Destruction: After serialization of the payload data into the UDS response message, the structure is released by the runtime environment.

Regarding concurrency, OperationOutput offers no internal synchronization. However, because instances are created dedicatedly per operation invocation and processed thread-locally, no shared state management is required.

Usage Path

The regular sequence for providing response data via OperationOutput comprises a fixed sequence of interaction steps:

  1. An external tester sends an upload request (such as UploadData or RequestUploadExit) to the ECU [SWS_DM_00796].
  2. Diagnostic Management ara::diag processes the protocol header and invokes the corresponding operation of the application instance of UploadService [SWS_DM_00796].
  3. The application processes the request, creates an instance of OperationOutput, and populates responseData with the payload data [SWS_DM_00796]. In doing so, responseData must exclusively contain the payload data without the Service Identifier (SID) [SWS_DM_00796]. Depending on the operation, the required content as well as the initial position of the data in the positive response message varies [SWS_DM_00796].
  4. The structure is returned to ara::diag.
  5. The platform layer generates the complete UDS response message and transmits it to the tester [SWS_DM_00796].
Call sequence for providing response data via OperationOutputDiagnostic clientara::diagUploadService ProviderUDS-Upload-Anfrage (z. B. UploadData)Dienstaufruf an UploadServiceInstantiate OperationOutput and populate responseDataReturn of OperationOutputPositive UDS response (payload without SID)

Sequence diagram: Invocation sequence for returning diagnostic data using OperationOutput. Sources: [SWS_DM_00796], AUTOSAR_AP_SWS_Diagnostics, p. 74.

Error Scenarios

The structure OperationOutput is specified exclusively for successful executions and positive response messages [SWS_DM_00796]. If an operation fails (for example, due to invalid address ranges or sequence errors in UploadData), OperationOutput is not used. Interpretation: Erroneous sequences are presumably reported via separate diagnostic error codes (NRCs) to ara::diag, so that creating or populating the output structure is omitted. Question Q-fa3daf3152f7131c (open)

As a precondition for the return, responseData must comprise exactly the bytes requested by the respective service operation and must not contain any prepended protocol identifiers [SWS_DM_00796]. As a postcondition, Diagnostic Management takes over the data to finalize the bus communication [SWS_DM_00796].

This guide is based on the requirements of the AUTOSAR Adaptive Platform R25-11.

UML class diagram

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

G nara__diag__UploadService__OperationOutput307 «struct» OperationOutput + responseData

Constants

responseData variable

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

Documentation of constants / variables

variable responseData [SWS_DM_00796] Upstream: RS_Diag_04033

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

Content of positive response message (without SID) Depending on the operation (e.g.: UploadData, RequestUploadExit) 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/upload.h"
Scopestruct ara::diag::UploadService::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_00796
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00796@rel:R25-11#53370279
Content hash
53370279
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00796
Status: valid/unmigrated Version: rel:R25-11#891d111d Versionshistorie & Revisions (1 transition, 4 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_00796@rel:R25-11#891d111d
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#533702792026-09-30
  • R23-11rel:R23-11#c101ec302026-10-14
  • R24-11rel:R24-11#c101ec302026-10-14
  • R25-11rel:R25-11#891d111d2026-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