结构体 ara::diag::SovdOperationExecution::GetStatusResponse
struct GetStatusResponse {...};
Get Status response .
| Header-Datei | #include "ara/diag/generic_diagnostic_sovd_operation.h" |
|---|---|
| Forwarding-Header | #include "ara/diag/diag_fwd.h" |
| Scope | class ara::diag::SovdOperationExecution |
用户指南人工智能生成
用作向 Diagnostic Management 进行 SOVD 操作异步状态查询的返回结构。
用作向 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])之后,该结构的生命周期结束,并被常规销毁。
使用路径
查询操作状态时的常规流程包括多个组件的相互协作:
- 外部 SOVD 客户端向 DM 发送带有特定
execution-id的“Read the Status of an operation”方法([SWS_DM_02180])。 - DM 检查请求,并在需要时执行邻近质询(Proximity Challenge)验证([SWS_DM_02173])。
- 验证成功后,DM 根据
execution-id寻址对应的SovdOperationExecution实例([SWS_DM_02177]),并调用其方法GetStatus(meta_info, cancellation_handler)([SWS_DM_02180]、AUTOSAR_AP_SWS_Diagnostics §8.62 “GetStatus”)。 - 应用程序确定执行状态,用状态值(
status)和输出参数(来自DiagnosticSovdContentData的Parameters)填充GetStatusResponse,并通过ara::core::Future提供该对象([SWS_DM_02181])。 - DM 从提供的
GetStatusResponse中提取数据,将字段capability设置为execute,并向客户端返回符合 ASAM SOVD 的响应体([SWS_DM_02181])。
时序图:通过 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。
gemini-3.8-flash-low· 2026-10-13 · 德文原文