DEENESPTFRRUARHIKOZHNL

struct 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

User GuideKI-GENERIERT

Stellt die Challenge-Bytes und den Gültigkeitszeitraum für die SOVD-Näherungsprüfung bereit.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 3ac9286258b1 Herkunft Offene Fragen (3)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Stellt die Challenge-Bytes und den Gültigkeitszeitraum für die SOVD-Näherungsprüfung bereit.

Die Datenstruktur ara::diag::SovdProximityChallengeType dient als Rückgabetyp für SovdProximityChallenge::GetChallenge() und bündelt die zur SOVD-Näherungsprüfung erforderlichen Daten [SWS_DM_01482]. Sie stellt dem SOVD-Client eine Challenge-Bytefolge als ara::core::Span sowie den zugehörigen Gültigkeitszeitpunkt valid_until bereit [SWS_DM_01492]. Der Client muss die Challenge vor Erreichen dieses Zeitpunkts lösen, während der referenzierte Puffer während der gesamten Nutzungsdauer im Speicher gültig bleiben muss.

Kontext

Die Datenstruktur ara::diag::SovdProximityChallengeType dient innerhalb des Diagnosemoduls (ara::diag) der AUTOSAR Adaptive Platform als standardisierter Rückgabebehälter für Sicherheits- und Proximity-Prüfungen [SWS_DM_01482]. Konkret nimmt die Struktur die Ergebnisdaten des Methodenaufrufs SovdProximityChallenge::GetChallenge() auf AUTOSAR_AP_SWS_Diagnostics §8.56.3 „Struct: SovdProximityChallengeType“. Die wesentliche Aufgabe dieser Struktur besteht darin, dem SOVD-Client (Service-Oriented Vehicle Diagnostics) alle notwendigen Parameter bereitzustellen, mit denen dieser den physischen Nachweis der Fahrzeugnähe (Proximity) antreten kann [SWS_DM_01492].

In der Interaktion agiert SovdProximityChallengeType als reines Transferobjekt zwischen der bereitstellenden Diagnoseinstanz SovdProximityChallenge und dem anfragenden SOVD-Client [SWS_DM_01482]. Die Struktur bündelt zwei fundamentale Attribute: die Challenge-Sequenz challenge sowie das absolute Verfallsdatum valid_until AUTOSAR_AP_SWS_Diagnostics §8.56.3.1 „Public Member Variables“. Interpretation: Die Struktur selbst kapselt keine Geschäftslogik, sondern fungiert als reines Plain Old Data (POD) Value Object zur zustandslosen Parameterübergabe. Frage Q-d2f4870d4cfaf724 (offen)

Lebenszyklus

Der Lebenszyklus einer SovdProximityChallengeType-Instanz beginnt mit ihrer Erzeugung durch die aufrufende Diagnose-Schnittstelle SovdProximityChallenge::GetChallenge() AUTOSAR_AP_SWS_Diagnostics §8.56.3 „Struct: SovdProximityChallengeType“. Die Struktur besitzt Wertsemantik (Value Semantics), wodurch sie nach dem Aufruf durch Kopieren oder Verschieben (Move) an den Aufrufer übergeben wird.

Hinsichtlich der Besitzverhältnisse ist bei den Member-Variablen eine wichtige Differenzierung zu beachten:

  • Das Datenelement challenge ist als ara::core::Span<ara::core::Byte> definiert [SWS_DM_01492]. Ein ara::core::Span ist eine nicht-besitzende Sicht (Non-owning View) auf eine zusammenhängende Byte-Folge im Speicher. Vermutlich muss der Speicherbereich, auf den dieser Span verweist, von der zugrunde liegenden Diagnosekomponente verwaltet werden und mindestens so lange gültig bleiben, wie auf den Span zugegriffen wird. Frage (offen)
  • Das Datenelement valid_until speichert einen absoluten Zeitstempel vom Typ std::chrono::system_clock::time_point [SWS_DM_01491]. Dieser Zeitstempel definiert direkt den fachlichen Gültigkeitszeitraum der Challenge im Gesamtsystem.

Die Zerstörung des Structs erfolgt automatisch gemäß den regulären C++-Regeln beim Verlassen des Gültigkeitsbereichs (Scope) des Aufrufers. Da das Struct selbst keinen dynamischen Speicher alloziert, ist die Zerstörung trivial, erfordert jedoch die Beachtung der Lebensdauer des zugrunde liegenden Datenpuffers des Spans [SWS_DM_01492].

Nutzungspfad

Der typische Nutzungspfad im Kontext der SOVD-Näherungsprüfung gliedert sich in eine feste Abfolge von Abruf, Auswertung und Nachweiserbringung:

  1. Eine Diagnoseanwendung oder der SOVD-Dienst stößt die Proximity-Prüfung an und ruft SovdProximityChallenge::GetChallenge() auf AUTOSAR_AP_SWS_Diagnostics §8.56.3 „Struct: SovdProximityChallengeType“.
  2. Als Rückgabewert wird eine Instanz von SovdProximityChallengeType erzeugt, die mit den generierten Challenge-Bytes und dem Verfallszeitpunkt befüllt ist [SWS_DM_01482].
  3. Der Empfänger liest challenge als Byte-Span aus, um die zu lösende Aufgabe an den SOVD-Client zu übermitteln [SWS_DM_01492].
  4. Parallel dazu wird der Zeitstempel valid_until ausgewertet, um das Zeitfenster für den Nachweis festzulegen [SWS_DM_01491].
  5. Der SOVD-Client löst die Challenge und übermittelt den Nachweis, bevor der durch valid_until markierte Zeitpunkt erreicht ist [SWS_DM_01491], [SWS_DM_01492].
Ablauf der Proximity-Challenge-Bereitstellung und -AuswertungSOVD-ClientSovdProximityChallengeSovdProximityChallengeTypeAnforderung Proximity-ChallengeGetChallenge() ausführenInstanziierung mit challenge (Span) und valid_untilRückgabe SovdProximityChallengeTypeAuslesen von challenge und valid_untilChallenge lösen vor Ablauf von valid_until

Sequenzdiagramm: Typischer Ablauf der Challenge-Abfrage und -Auswertung im Rahmen der SOVD-Proximity-Prüfung. Quellen: [SWS_DM_01482], [SWS_DM_01491], [SWS_DM_01492], AUTOSAR_AP_SWS_Diagnostics §8.56.3 „Struct: SovdProximityChallengeType“.

Fehlerszenarien

Bei der Verwendung von SovdProximityChallengeType sind insbesondere zwei fehlerkritische Randbedingungen zu berücksichtigen:

  • Zeitüberschreitung (Timeout): Erreicht die Systemzeit den in valid_until spezifizierten Zeitstempel std::chrono::system_clock::time_point [SWS_DM_01491], verliert die Challenge ihre Gültigkeit. Interpretation: Ein nach Ablauf von valid_until eintreffender Lösungsversuch des SOVD-Clients dürfte von der verifizierenden Diagnoseinstanz als ungültig abgewiesen werden, wodurch ein erneuter Aufruf von SovdProximityChallenge::GetChallenge() erforderlich wird. Frage Q-ab9b44a73c189384 (offen)
  • Ungültige Speicherreferenz (Dangling Span): Da challenge als nicht-besitzender ara::core::Span<ara::core::Byte> implementiert ist [SWS_DM_01492], führt ein Zugriff auf die Bytes nach Zerstörung oder Reallokation des zugrunde liegenden Puffers zu undefiniertem Verhalten. Der Aufrufer muss gewährleisten, dass der referenzierte Byte-Puffer während der gesamten Nutzungsdauer des Spans im Speicher erhalten bleibt.

Dieser Leitfaden basiert auf der AUTOSAR-Spezifikation für die Adaptive Platform (Release R25-11) und beschreibt die Struktur ara::diag::SovdProximityChallengeType als Datenbehälter für SOVD-Näherungsprüfungen.

UML-Klassendiagramm

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

G nara__diag__SovdProximityChallengeType366 «struct» SovdProximityChallengeType + challenge + valid_until

Konstanten

challenge variable

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

valid_until variable

The time until the challenge is valid.

Dokumentation der Konstanten / Variablen

variable 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#497a6786
Content hash
497a6786
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

variable 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#c6564b8a
Content hash
c6564b8a
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