Stellt die Challenge-Bytes und den Gültigkeitszeitraum für die SOVD-Näherungsprüfung bereit.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 3ac9286258b1HerkunftOffene 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_untilAUTOSAR_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:
Als Rückgabewert wird eine Instanz von SovdProximityChallengeType erzeugt, die mit den generierten Challenge-Bytes und dem Verfallszeitpunkt befüllt ist [SWS_DM_01482].
Der Empfänger liest challenge als Byte-Span aus, um die zu lösende Aufgabe an den SOVD-Client zu übermitteln [SWS_DM_01492].
Parallel dazu wird der Zeitstempel valid_until ausgewertet, um das Zeitfenster für den Nachweis festzulegen [SWS_DM_01491].
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].
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.
gemini-3.8-flash-medium· 2026-10-13