DEENESPTFRRUARHIKOZHNL

结构体 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

用户指南人工智能生成

封装不带服务标识符的正面 UDS 响应有效载荷数据,以便传递给 Diagnostic Management。
AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: e0f4adf446cb 来源 未决问题(3)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

封装不带服务标识符的正面 UDS 响应有效载荷数据,以便传递给 Diagnostic Management。

结构体 ara::diag::GenericUDSService::OperationOutput 在模块 diag 中用作正面 UDS 响应消息有效载荷数据的输出结构体 [SWS_DM_00632]。在通用 UDS 服务成功执行后,应用程序会填充字节变量 responseData 并将实例传递给 Diagnostic Management。在此过程中,UDS 服务标识符(SID)不得包含在 responseData 中,因为该标识符由平台自动补齐 [SWS_DM_00632]。该结构体不适用于错误场景和负面响应。

上下文

数据结构 ara::diag::GenericUDSService::OperationOutput 在 AUTOSAR Adaptive Platform 的模块 diag 中用作通用 UDS 服务的标准化输出通道 [SWS_DM_00632]。它在头文件 #include "ara/diag/generic_uds_service.h" 中定义,并用作成功执行 UDS 服务所得有效载荷数据的封装 [SWS_DM_00632]。核心交互方是通用 UDS 服务处理程序的特定于应用程序的实现以及平台的上层 Diagnostic Management AUTOSAR_AP_SWS_Diagnostics 第80页。Diagnostic Management 负责与外部诊断测试仪的协调、协议校验和框架机制,而 OperationOutput 则为正面 UDS 响应消息提供隔离的有效载荷 [SWS_DM_00632]。

生命周期

ara::diag::GenericUDSService::OperationOutput 的实例表现出高度聚焦且短暂的生命周期。该结构体由服务应用程序在传入 UDS 请求的本地上下文中进行实例化。通过类型为 ara::core::Vector<std::uint8_t> 的唯一公共成员变量 responseData,该结构体获得有效载荷数据字节的完全所有权 [SWS_DM_00632]。

解读:OperationOutput 的生命周期是瞬态的,并与对应请求处理的持续时间绑定;该实例在填充后应通过返回值或移动语义传递给 Diagnostic Management,并在序列化到 UDS 响应帧后被销毁。 问题 Q-c736182a9518978a (未决)由于它是一个没有内部状态逻辑的纯数据传输对象(DTO),因此不存在状态转换。在并发性方面,OperationOutput 不提供固有的线程安全性;然而,由于实例化和填充是在处理上下文中按请求隔离进行的,因此在常规服务应用程序中不需要外部同步。

使用路径

处理诊断请求的常规流程分为以下步骤:

  • 接收:Diagnostic Management 接收来自外部诊断测试仪的 UDS 请求,并将其转发给相应的 GenericUDSService 实例 AUTOSAR_AP_SWS_Diagnostics 第81页。
  • 服务执行:应用程序解析接收到的参数并执行内部诊断功能。
  • 结果提供:处理成功时,应用程序实例化一个类型为 OperationOutput 的对象,并将响应的有效载荷数据分配给字段 responseData [SWS_DM_00632]。在此,规范强制规定 responseData 必须仅包含数据字节,而不包含服务标识符(SID)[SWS_DM_00632]。
  • 传递:应用程序将 OperationOutput 传递给 Diagnostic Management。解读:传递通常作为同步返回值进行,或者嵌入在异步期望值(如 ara::core::Future)中。 问题 Q-2dcf40060cca29a1 (未决)
  • 消息发送:Diagnostic Management 自动添加正面 SID 前缀,补全 UDS 报文,并将响应传输给诊断测试仪。
通过 OperationOutput 进行 UDS 响应处理的流程Diagnosetester诊断管理GenericUDSServiceUDS-Anfrage senden执行服务调用OperationOutput instanziieren填充不含 SID 的 responseData返回 OperationOutput添加 SID 前缀并生成 UDS 帧Positive UDS-Antwort senden

时序图:通过 OperationOutput 生成 UDS 响应及传递的流程。来源:[SWS_DM_00632],AUTOSAR_AP_SWS_Diagnostics 第81页

错误场景

使用该结构体时,必须注意以下基本边界条件和错误情况下的行为模式:

  • 排除负面响应:根据规范,OperationOutput 明确且专门表示正面响应消息的内容 [SWS_DM_00632]。解读:如果无法成功处理服务请求(例如由于无效参数或无效先决条件),则不应生成 OperationOutput;取而代之的是,应用程序向 Diagnostic Management 发出否定响应码(NRC)信号。 问题 Q-09abb9092c1dc167 (未决)
  • 错误包含 SID:如果错误地将服务标识符插入 responseData 中,则会产生格式错误的 UDS 报文,因为 Diagnostic Management 会在正面响应中自行添加 SID 前缀 [SWS_DM_00632]。
  • 内存分配:由于 responseData 被声明为动态向量(ara::core::Vector),因此在分配极大量的有效载荷数据时必须考虑潜在的内存瓶颈 [SWS_DM_00632]。

本指南基于 AUTOSAR Adaptive Platform 规范版本 R25-11,由自动化工具生成。

UML 类图

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

G nara__diag__GenericUDSService__OperationOutput107 «struct» OperationOutput + responseData

常量

Content of positive respose message (without SID)

常量 / 变量文档

变量 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#14ba0bf0
Content hash
14ba0bf0
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