DEENESPTFRRUARHIKOZHNL

结构体 ara::diag::SovdProximityChallengeType

[SWS_DM_01482] Upstream: RS_Diag_04262

struct SovdProximityChallengeType {...};

Holds the data returned by the SovdProximityChallenge::GetChallenge()

Header-Datei#include "ara/diag/sovd_proximity_challenge.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopenamespace ara::diag

用户指南人工智能生成

为 SOVD 邻近性检查提供质询字节和有效时间段。
AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 3ac9286258b1 来源 未决问题(3)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

为 SOVD 邻近性检查提供质询字节和有效时间段。

数据结构 ara::diag::SovdProximityChallengeType 用作 SovdProximityChallenge::GetChallenge() 的返回类型,并捆绑了 SOVD 邻近性检查所需的数据 [SWS_DM_01482]。它以 ara::core::Span 的形式向 SOVD 客户端提供质询字节序列以及关联的有效时间点 valid_until [SWS_DM_01492]。客户端必须在该时间点到达之前解决质询,而在整个使用期间,被引用的缓冲区在内存中必须保持有效。

上下文

在 AUTOSAR Adaptive Platform 的诊断模块(ara::diag)内,数据结构 ara::diag::SovdProximityChallengeType 用作安全与邻近性(Proximity)检查的标准化返回容器 [SWS_DM_01482]。具体而言,该结构体接收方法调用 SovdProximityChallenge::GetChallenge() 的结果数据 AUTOSAR_AP_SWS_Diagnostics §8.56.3 “Struct: SovdProximityChallengeType”。该结构体的主要任务是向 SOVD(Service-Oriented Vehicle Diagnostics)客户端提供所有必需的参数,客户端可借助这些参数提供车辆物理邻近性(Proximity)的证明 [SWS_DM_01492]。

在交互中,SovdProximityChallengeType 充当提供服务的诊断实例 SovdProximityChallenge 与发起请求的 SOVD 客户端 [SWS_DM_01482] 之间的纯传输对象。该结构体捆绑了两个基本属性:质询序列 challenge 以及绝对失效日期 valid_until AUTOSAR_AP_SWS_Diagnostics §8.56.3.1 “Public Member Variables”。解释:结构体本身不封装业务逻辑,而是作为纯 Plain Old Data(POD)值对象(Value Object)用于无状态的参数传递。 问题 Q-d2f4870d4cfaf724 (未决)

生命周期

SovdProximityChallengeType 实例的生命周期始于由发起调用的诊断接口 SovdProximityChallenge::GetChallenge() AUTOSAR_AP_SWS_Diagnostics §8.56.3 “Struct: SovdProximityChallengeType” 对其进行的创建。该结构体具有值语义(Value Semantics),从而在调用后通过复制或移动(Move)传递给调用方。

关于所有权关系,成员变量需注意一项重要区别:

  • 数据元素 challenge 被定义为 ara::core::Span<ara::core::Byte> [SWS_DM_01492]。ara::core::Span 是对内存中连续字节序列的非拥有视图(Non-owning View)。推测该 span 所指向的内存区域必须由底层诊断组件管理,并且其有效期的保持时间至少应与访问该 span 的时间一样长。 问题 (未决)
  • 数据元素 valid_until 存储类型为 std::chrono::system_clock::time_point 的绝对时间戳 [SWS_DM_01491]。该时间戳直接定义了质询在整个系统中的业务有效时间段。

结构体的销毁在离开调用方作用域(Scope)时根据常规 C++ 规则自动发生。由于结构体本身不分配动态内存,其销毁操作十分简单,但需要注意 span [SWS_DM_01492] 底层数据缓冲区的生命周期。

使用路径

SOVD 邻近性检查上下文中的典型使用路径分为获取、评估和提供证明的固定序列:

  1. 诊断应用程序或 SOVD 服务触发邻近性检查并调用 SovdProximityChallenge::GetChallenge() AUTOSAR_AP_SWS_Diagnostics §8.56.3 “Struct: SovdProximityChallengeType”。
  2. 作为返回值生成 SovdProximityChallengeType 的实例,其中填充了生成的质询字节和失效时间点 [SWS_DM_01482]。
  3. 接收方将 challenge 作为字节 span 读取,以便将待解决的任务传达给 SOVD 客户端 [SWS_DM_01492]。
  4. 与此同时评估时间戳 valid_until,以确定用于提供证明的时间窗口 [SWS_DM_01491]。
  5. SOVD 客户端解决质询并在达到 valid_until 所标记的时间点之前提交证明 [SWS_DM_01491]、[SWS_DM_01492]。
接近度质询的提供与评估流程SOVD-ClientSovdProximityChallengeSovdProximityChallengeTypeAnforderung Proximity-Challenge执行 GetChallenge()使用 challenge (Span) 和 valid_until 进行实例化返回 SovdProximityChallengeType读取 challenge 和 valid_until在 valid_until 到期前解决质询

时序图:SOVD 邻近性检查框架下质询查询和评估的典型流程。来源:[SWS_DM_01482]、[SWS_DM_01491]、[SWS_DM_01492]、AUTOSAR_AP_SWS_Diagnostics §8.56.3 “Struct: SovdProximityChallengeType”。

错误场景

在使用 SovdProximityChallengeType 时,尤其需要考虑两个对故障至关重要的边界条件:

  • 超时(Timeout):系统时间一旦达到 valid_until 中指定的时间戳 std::chrono::system_clock::time_point [SWS_DM_01491],质询便失效。解释:SOVD 客户端在 valid_until 过期之后到达的求解尝试大概会被验证诊断实例视为无效而拒绝,从而需要重新调用 SovdProximityChallenge::GetChallenge()。 问题 Q-ab9b44a73c189384 (未决)
  • 悬垂内存引用(Dangling Span):由于 challenge 实现为非拥有的 ara::core::Span<ara::core::Byte> [SWS_DM_01492],因此在底层缓冲区被销毁或重新分配后访问这些字节会导致未定义行为。调用方必须确保被引用的字节缓冲区在 span 的整个使用期间在内存中保持有效。

本指南基于 Adaptive Platform 的 AUTOSAR 规范(Release R25-11),并将结构体 ara::diag::SovdProximityChallengeType 描述为用于 SOVD 邻近性检查的数据容器。

UML 类图

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

G nara__diag__SovdProximityChallengeType366 «struct» SovdProximityChallengeType + challenge + valid_until

常量

challenge 变量

Challenge which has to be solved by the SOVD client to prove proximity.

The time until the challenge is valid.

常量 / 变量文档

变量 challenge [SWS_DM_01492] Upstream: RS_Diag_04262

ara::core::Span<ara::core::Byte> challenge;

Challenge which has to be solved by the SOVD client to prove proximity.

Header-Datei#include "ara/diag/sovd_proximity_challenge.h"
Scopestruct ara::diag::SovdProximityChallengeType
Symbolchallenge
Typara::core::Span< ara::core::Byte >

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01492
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01492@rel:R25-11#00233fe5
Content hash
00233fe5
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01492
Status: valid/unmigrated Version: rel:R25-11#e253ee2f Versionshistorie & Revisions (1 transition, 5 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_01492@rel:R25-11#e253ee2f
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#497a67862026-09-30
  • R22-11rel:R22-11#ee00d0182026-10-14
  • R23-11rel:R23-11#e253ee2f2026-10-14
  • R24-11rel:R24-11#e253ee2f2026-10-14
  • R25-11rel:R25-11#e253ee2f2026-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

变量 valid_until [SWS_DM_01491] Upstream: RS_Diag_04262

std::chrono::system_clock::time_point valid_until;

The time until the challenge is valid.

Header-Datei#include "ara/diag/sovd_proximity_challenge.h"
Scopestruct ara::diag::SovdProximityChallengeType
Symbolvalid_until
Typstd::chrono::system_clock::time_point

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01491
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01491@rel:R25-11#009674bf
Content hash
009674bf
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01491
Status: valid/unmigrated Version: rel:R25-11#486011a8 Versionshistorie & Revisions (1 transition, 5 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_01491@rel:R25-11#486011a8
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#c6564b8a2026-09-30
  • R22-11rel:R22-11#721ac4e82026-10-14
  • R23-11rel:R23-11#486011a82026-10-14
  • R24-11rel:R24-11#486011a82026-10-14
  • R25-11rel:R25-11#486011a82026-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