DEENESPTFRRUARHIKOZHNL

结构体 ara::diag::SovdOperationExecution::GetStatusResponse

[SWS_DM_02200] Upstream: RS_Diag_04262

struct GetStatusResponse {...};

Get Status response .

Header-Datei#include "ara/diag/generic_diagnostic_sovd_operation.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopeclass ara::diag::SovdOperationExecution

用户指南人工智能生成

用作向 Diagnostic Management 进行 SOVD 操作异步状态查询的返回结构。
AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: b16aa086639a 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用作向 Diagnostic Management 进行 SOVD 操作异步状态查询的返回结构。

数据结构 GetStatusResponse 用作 SOVD 操作异步状态查询([SWS_DM_02200])的返回容器。它由 SovdOperationExecution 实例通过 ara::core::Future 传递给 Diagnostic Management,后者由此为 ASAM SOVD 响应派生出属性 status 和 parameters([SWS_DM_02181])。提供的前提条件是邻近性验证成功以及调用的无错异步执行。

上下文

结构 ara::diag::SovdOperationExecution::GetStatusResponse 是 Adaptive Platform([SWS_DM_02200])的一种响应数据结构,在 SOVD 操作(面向服务的车辆诊断,Service-Oriented Vehicle Diagnostics)的状态查询中用作标准化返回容器(AUTOSAR_AP_SWS_Diagnostics §8.62.6 “Struct: GetStatusResponse”)。在模块 diag 内部,该结构充当诊断守护程序 Diagnostic Management (DM) 与实现接口 SovdOperationExecution 的应用特定诊断服务之间的接口元素。当 Diagnostic Management 接收到用于查询操作状态的外部 SOVD 调用(“Read the Status of an operation”)时,DM 会将此请求转发至负责的实例([SWS_DM_02180])。GetStatusResponse 封装了所确定的状态和结果数据,并使 DM 能够构建符合 ASAM SOVD 标准的响应([SWS_DM_02181])。

生命周期

作为数据结构(struct GetStatusResponse),一旦虚方法 SovdOperationExecution::GetStatus 被调用以进行处理,实例通常在服务应用程序的上下文中被实例化。该对象作为值嵌入在 ara::core::Future<GetStatusResponse> 中,后者规定了作为返回类型的异步方法签名(AUTOSAR_AP_SWS_Diagnostics §8.62 “GetStatus”)。解释:GetStatusResponse 应该被设计为纯值传递对象,其生命周期与关联的 Future 和 Promise 对紧密耦合。 问题 Q-e5e2b31a97df0af4 (未决)一旦应用特定的确定完成且 Future 得到满足,数据访问权限即转移给调用方 Diagnostic Management。在读取属性以组合 SOVD 响应([SWS_DM_02181])之后,该结构的生命周期结束,并被常规销毁。

使用路径

查询操作状态时的常规流程包括多个组件的相互协作:

  1. 外部 SOVD 客户端向 DM 发送带有特定 execution-id 的“Read the Status of an operation”方法([SWS_DM_02180])。
  2. DM 检查请求,并在需要时执行邻近质询(Proximity Challenge)验证([SWS_DM_02173])。
  3. 验证成功后,DM 根据 execution-id 寻址对应的 SovdOperationExecution 实例([SWS_DM_02177]),并调用其方法 GetStatus(meta_info, cancellation_handler)([SWS_DM_02180]、AUTOSAR_AP_SWS_Diagnostics §8.62 “GetStatus”)。
  4. 应用程序确定执行状态,用状态值(status)和输出参数(来自 DiagnosticSovdContentData 的 Parameters)填充 GetStatusResponse,并通过 ara::core::Future 提供该对象([SWS_DM_02181])。
  5. DM 从提供的 GetStatusResponse 中提取数据,将字段 capability 设置为 execute,并向客户端返回符合 ASAM SOVD 的响应体([SWS_DM_02181])。
SOVD 操作的状态查询流程SOVD-Client诊断管理SovdOperationExecutionRead the Status of an operation (execution-id)opt需要进行接近度检查proximity_challenge validieren [SWS_DM_02173]GetStatus(meta_info, cancellation_handler)Status & Parameters ermittelnGetStatusResponse erzeugenFuture<GetStatusResponse>SOVD Response (status, parameters, capability)

时序图:通过 GetStatusResponse 查询操作状态时的协作。来源:[SWS_DM_02180]、[SWS_DM_02181]、AUTOSAR_AP_SWS_Diagnostics §8.62 “GetStatus”、[SWS_DM_02173]

错误场景

GetStatusResponse 的处理和成功交换取决于多个前置条件和错误路径:

  • 如果要求的邻近质询失败([SWS_DM_02173]),DM 根本不会调用方法 GetStatus([SWS_DM_02180]);在这种情况下完全无需实例化或评估 GetStatusResponse。
  • 方法 SovdOperationExecution::GetStatus 被声明为 noexcept(AUTOSAR_AP_SWS_Diagnostics §8.62 “GetStatus”)。因此,状态确定过程中的错误不得通过 C++ 异常传播,而是必须通过 ara::core::Future 的错误路径进行异步信号通知。
  • 如果方法的执行未成功(未满足“succeeded”条件),则不会常规组合 SOVD 成功响应([SWS_DM_02181])。
  • 通过传递的对象 ara::diag::CancellationHandler,可以通知正在运行的操作中止请求(AUTOSAR_AP_SWS_Diagnostics §8.62 “GetStatus”)。

本指南由 AI 创建,基于 AUTOSAR 规范 R25-11。