DEENESPTFRRUARHIKOZHNL

命名空间 <RoutineInterface-Namespace>

用户指南人工智能生成

定义用于在自适应应用程序中封装和执行诊断例程的标准化接口。
AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 3d8f355dc636 来源 未决问题(3)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

定义用于在自适应应用程序中封装和执行诊断例程的标准化接口。

该命名空间提供用于在 Adaptive Platform 的 diag 模块内封装和执行应用程序特定诊断例程的接口。主要任务推测在于为诊断管理系统提供诸如启动、停止和结果查询等例程操作的抽象层。 问题 (未决)例程执行的控制通常可能与上层诊断协议栈的生命周期相耦合。作为一项重要的边界条件,实现必须确保所要求的线程安全以及异步调用时的确定性行为。

上下文

命名空间 namespace <RoutineInterface-Namespace> 是 AUTOSAR Adaptive Platform R25-11 版本中功能集群 diag(Diagnostic Management)的一部分。在该命名空间内,接口类 <RoutineInterface> 被定义为 DiagnosticRoutineInterface。该命名空间的主要作用是提供一个标准化框架,用于封装由车内应用程序软件组件执行的诊断例程。

类 <RoutineInterface> 可能用作平台的诊断管理系统与车辆特定例程流程之间的抽象层。 问题 Q-03b9b94f9c2849b0 (未决)上层诊断管理处理外部诊断请求(例如根据 ISO 14229-1 和 UDS RoutineControl),并将其转发给已注册的应用程序例程。应用程序通过接口的实现提供实际的控制、测试和检查逻辑,而不直接依赖于传输协议层或网络拓扑。

生命周期

接口类 <RoutineInterface> 的实例的生命周期可能与关联诊断服务的提供状态紧密耦合。 问题 Q-32a86efa16843445 (未决)实例化通常发生在自适应应用程序的初始化阶段,然后才向诊断管理器注册该接口并针对外部请求启用。在此过程中,应用程序承担对象创建和提供所需执行上下文的责任。

在运行阶段,接口实例保持活动状态并接收传入的控制命令。由于外部测试仪的诊断调用可能与常规应用程序任务并发到达,因此实现必须确保所要求的线程安全。在应用程序终止或服务停用时,需要进行有序注销,以确保没有正在运行的例程留在未定义状态,并确定性地释放分配的资源。

使用路径

诊断例程的典型使用路径分为诊断管理系统与应用逻辑之间结构化的交互步骤序列。该流程推测可能包含以下阶段: 问题 Q-da2cd4e1ceb5b3b8 (未决)

  1. 初始化与注册:应用程序实例化类 <RoutineInterface>,并将接口对象注册到模块 diag 的诊断管理中。
  2. 启动例程:在接收到相应的诊断请求时,系统调用接口的启动方法。由此触发应用程序特定的逻辑,例如执行器测试、校准运行或计算周期。
  3. 状态与结果查询:在执行期间或操作完成后,可以通过相应的接口调用查询中间状态或最终结果,并传递给管理系统。
  4. 终止或提前中止:例程要么在成功处理后常规结束,要么根据需要在诊断基础设施的显式停止请求下受控中止。

错误场景

在例程执行范围内可能出现各种错误条件,需要一致的错误处理。如果在执行诊断例程期间出现意外的运行状态(例如供电电压不足、不允许的车辆状态或资源瓶颈),接口必须对此进行指示。错误的输入参数或执行中止必须通过定义的错误代码反馈给诊断管理。这使平台能够向外部诊断测试仪传输符合标准的否定响应码(NRC),并保持安全的车辆状态。

本段文本由 AI 基于 R25-11 版本的 AUTOSAR 规范元数据生成。

类

DiagnosticRoutineInterface class

类图

Abgerundete Rahmen = Namespace- bzw. Klassen-Scopes; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = namespace-fremde bzw. externe Basisklassen. Klicken öffnet die jeweilige Klassen- bzw. cppreference-Seite.

G cluster_ns <RoutineInterface-Namespace> cluster_c0 <RoutineInterface-Namespace>::<RoutineInterface> n_RoutineInterface_Namespace____RoutineInterface_ <RoutineInterface> n_RoutineInterface_Namespace____RoutineInterface____RoutineInterface6_StartOutput «struct» <RoutineInterface6>StartOutput n_RoutineInterface_Namespace____RoutineInterface____RoutineInterface9_StopOutput «struct» <RoutineInterface9>StopOutput n_RoutineInterface_Namespace____RoutineInterface____RoutineInterface_RequestResultOutput «struct» <RoutineInterface>RequestResultOutput