Fournit les octets de challenge et la période de validité pour le contrôle de proximité SOVD.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 3ac9286258b1ProvenanceQuestions ouvertes (3)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Fournit les octets de challenge et la période de validité pour le contrôle de proximité SOVD.
La structure de données ara::diag::SovdProximityChallengeType sert de type de retour pour SovdProximityChallenge::GetChallenge() et regroupe les données requises pour le contrôle de proximité SOVD [SWS_DM_01482]. Elle fournit au client SOVD une séquence d'octets de challenge sous forme de ara::core::Span ainsi que l'instant de validité associé valid_until[SWS_DM_01492]. Le client doit résoudre le challenge avant que cet instant ne soit atteint, tandis que le tampon référencé doit rester valide en mémoire pendant toute la durée d'utilisation.
Contexte
La structure de données ara::diag::SovdProximityChallengeType sert, au sein du module Diagnostics (ara::diag) de l'AUTOSAR Adaptive Platform, de conteneur de retour standardisé pour les vérifications de sécurité et de proximité [SWS_DM_01482]. Concrètement, la structure reçoit les données de résultat de l'appel de méthode SovdProximityChallenge::GetChallenge()AUTOSAR_AP_SWS_Diagnostics §8.56.3 « Struct: SovdProximityChallengeType ». La tâche essentielle de cette structure consiste à fournir au client SOVD (Service-Oriented Vehicle Diagnostics) tous les paramètres nécessaires avec lesquels celui-ci peut apporter la preuve physique de la proximité du véhicule (Proximity) [SWS_DM_01492].
Dans l'interaction, SovdProximityChallengeType agit comme un pur objet de transfert entre l'instance de diagnostic fournisseuse SovdProximityChallenge et le client SOVD demandeur [SWS_DM_01482]. La structure regroupe deux attributs fondamentaux : la séquence de challenge challenge ainsi que la date d'expiration absolue valid_untilAUTOSAR_AP_SWS_Diagnostics §8.56.3.1 « Public Member Variables ». Interprétation : la structure elle-même n'encapsule aucune logique métier, mais fait office de pur objet-valeur Plain Old Data (POD) pour la transmission de paramètres sans état. Question Q-d2f4870d4cfaf724 (ouverte)
Cycle de vie
Le cycle de vie d'une instance de SovdProximityChallengeType commence avec sa création par l'interface de diagnostic appelante SovdProximityChallenge::GetChallenge()AUTOSAR_AP_SWS_Diagnostics §8.56.3 « Struct: SovdProximityChallengeType ». La structure possède une sémantique de valeur (Value Semantics), en vertu de laquelle elle est transmise à l'appelant après l'appel par copie ou déplacement (move).
Concernant les relations de propriété, une distinction importante doit être prise en compte pour les variables membres :
L'élément de données challenge est défini comme ara::core::Span<ara::core::Byte>[SWS_DM_01492]. Un ara::core::Span est une vue sans propriété (Non-owning View) sur une séquence d'octets contiguë en mémoire. Vraisemblablement, la zone mémoire vers laquelle pointe ce span doit être gérée par le composant de diagnostic sous-jacent et rester valide au moins aussi longtemps que le span fait l'objet d'un accès. Question (ouverte)
L'élément de données valid_until stocke un horodatage absolu de type std::chrono::system_clock::time_point[SWS_DM_01491]. Cet horodatage définit directement la période de validité fonctionnelle du challenge dans le système global.
La destruction du struct s'effectue automatiquement selon les règles régulières de C++ lors de la sortie de la portée (scope) de l'appelant. Comme le struct lui-même n'alloue pas de mémoire dynamique, sa destruction est triviale, mais nécessite toutefois de respecter la durée de vie du tampon de données sous-jacent du span [SWS_DM_01492].
Parcours d'utilisation
Le chemin d'utilisation typique dans le contexte du contrôle de proximité SOVD se divise en une séquence fixe d'interrogation, d'évaluation et de fourniture de preuve :
Comme valeur de retour, une instance de SovdProximityChallengeType est générée, qui est renseignée avec les octets de challenge générés et l'instant d'expiration [SWS_DM_01482].
Le récepteur lit challenge sous forme de span d'octets afin de transmettre la tâche à résoudre au client SOVD [SWS_DM_01492].
En parallèle, l'horodatage valid_until est évalué afin de définir la fenêtre temporelle pour la preuve [SWS_DM_01491].
Le client SOVD résout le challenge et transmet la preuve avant que l'instant marqué par valid_until ne soit atteint [SWS_DM_01491], [SWS_DM_01492].
Lors de l'utilisation de SovdProximityChallengeType, deux conditions limites critiques pour les erreurs doivent notamment être prises en compte :
Dépassement de délai (timeout) : lorsque le temps système atteint l'horodatage spécifié dans valid_untilstd::chrono::system_clock::time_point[SWS_DM_01491], le challenge perd sa validité. Interprétation : une tentative de résolution du client SOVD arrivant après l'expiration de valid_until devrait être rejetée comme non valide par l'instance de diagnostic effectuant la vérification, ce qui rend nécessaire un nouvel appel de SovdProximityChallenge::GetChallenge(). Question Q-ab9b44a73c189384 (ouverte)
Référence mémoire invalide (dangling span) : puisque challenge est implémenté en tant que ara::core::Span<ara::core::Byte> sans propriété [SWS_DM_01492], un accès aux octets après la destruction ou la réallocation du tampon sous-jacent entraîne un comportement indéfini. L'appelant doit garantir que le tampon d'octets référencé est conservé en mémoire pendant toute la durée d'utilisation du span.
Ce guide repose sur la spécification AUTOSAR pour l'Adaptive Platform (Release R25-11) et décrit la structure ara::diag::SovdProximityChallengeType comme conteneur de données pour les contrôles de proximité SOVD.
Diagramme de classes UML
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Original allemand