DEENESPTFRRUARHIKOZHNL

结构体 ara::diag::GenericDiagnosticSovdOperation::StartAsynchronousExecutionResponse

[SWS_DM_02209] Upstream: RS_Diag_04262

struct StartAsynchronousExecutionResponse {...};

Start Execution response in case of asynchronous operation .

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

用户指南人工智能生成

用作启动异步执行的 SOVD 诊断操作时的返回结构。
AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 7a6a4cc07e9b 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用作启动异步执行的 SOVD 诊断操作时的返回结构。

结构 ara::diag::GenericDiagnosticSovdOperation::StartAsynchronousExecutionResponse 在 AUTOSAR Adaptive Platform 中用作启动异步运行的 SOVD 诊断操作时的响应类型 [SWS_DM_02209]。当某个操作在后台继续执行时,它由应用程序实例化并作为 ara::core::Future 内的变体返回给 Diagnostic Management AUTOSAR_AP_SWS_Diagnostics §8.62 “StartExecution”。在调用之前,任何所需的邻近质询(Proximity Challenge)检查必须已成功完成。随后,Diagnostic Management 基于该反馈生成发送给 SOVD 客户端的异步响应。

上下文

数据结构 ara::diag::GenericDiagnosticSovdOperation::StartAsynchronousExecutionResponse 在功能集群 Diagnostic Management(DM)中用作异步启动 SOVD 诊断操作的返回类型 [SWS_DM_02209]。对于每个类型为 DiagnosticSovdOperationStart 的已配置操作,Diagnostic Server 实例都会根据 ASAM SOVD 提供用于启动操作的 SOVD 方法 [SWS_DM_01396]。一旦客户端通过 SOVD 协议请求执行操作,Diagnostic Management 就会将此调用转发给接口 ara::diag::GenericDiagnosticSovdOperation::StartExecution [SWS_DM_02174]。

在此流程中,StartAsynchronousExecutionResponse 用作应用程序特定诊断处理程序发送给 Diagnostic Management 的响应对象。虽然同步操作通过 StartSynchronousExecutionResponse 进行应答 [SWS_DM_02176],但返回 StartAsynchronousExecutionResponse 表明实际的诊断处理作为后台任务继续进行,并且发送给 SOVD 客户端的直接反馈仅确认已成功启动 AUTOSAR_AP_SWS_Diagnostics §7.3.3.5.5.5 “Operations – Start execution of an operation”。

生命周期

StartAsynchronousExecutionResponse 的创建由服务接口的具体实现在执行 StartExecution 时完成 AUTOSAR_AP_SWS_Diagnostics §8.62 “StartExecution”。如果处理程序决定所请求的操作应异步处理,则会实例化该结构体并将其封装在 ara::core::Variant<StartSynchronousExecutionResponse, StartAsynchronousExecutionResponse> 中。

该变体通过 ara::core::Promise 进行解析,并作为 ara::core::Future 传递给 Diagnostic Management AUTOSAR_AP_SWS_Diagnostics §8.62 “StartExecution”。随着 Future 的解析,结构的所有权转移给 Diagnostic Management。解释:一旦生成发送给外部客户端的 SOVD 响应报文并完成发送,Diagnostic Management 在对 StartAsynchronousExecutionResponse 的实例进行评估后大概会将其丢弃。 问题 Q-3977fae99e62957e (未决)诊断任务的进一步处理在应用程序上下文中并发继续运行。

使用路径

常规流程始于 Diagnostic Server 接收到用于启动操作的 SOVD 请求 [SWS_DM_01396]。在成功完成预检查后,Diagnostic Management 调用已注册处理程序的方法 StartExecution [SWS_DM_02174]。在此过程中,将传递操作名称、输入数据、元信息以及一个 ara::diag::CancellationHandler AUTOSAR_AP_SWS_Diagnostics §8.62 “StartExecution”。

处理程序启动异步后台进程,创建结构 StartAsynchronousExecutionResponse [SWS_DM_02209],并在 ara::core::Future 中将其返回。Diagnostic Management 提取该对象并将反馈转换为符合标准的发送给客户端的异步 SOVD 响应。

异步启动 SOVD 操作SOVD-Client诊断管理GenericDiagnosticSovdOperationStart Execution of an OperationProximity Challenge validierenStartExecution(name, data, meta, handler)启动异步进程StartAsynchronousExecutionResponse erzeugenFuture<Variant<..., StartAsynchronousExecutionResponse>>SOVD-Antwort (asynchroner Start)

时序图:通过 StartAsynchronousExecutionResponse 异步启动 SOVD 操作。来源:[SWS_DM_01396]、[SWS_DM_02174]、[SWS_DM_02209]、AUTOSAR_AP_SWS_Diagnostics §8.62 “StartExecution”。

错误场景

该方法调用的一个核心前提条件是授权:如果需要,在调用 StartExecution 之前必须已成功通过邻近质询(Proximity Challenge)的验证 [SWS_DM_02174]。如果验证失败,则不会调用处理程序,也不会生成 StartAsynchronousExecutionResponse。

为了在持续执行期间处理取消,系统提供了 ara::diag::CancellationHandler AUTOSAR_AP_SWS_Diagnostics §8.62 “StartExecution”。如果在返回 Future 之前处理程序中发生错误,应用程序可以使 Future 带有错误状态结束,从而不会继续处理有效的响应结构。

本类指南基于 AUTOSAR 版本 R25-11 自动生成。