Sert d'interface générique pour la lecture et l'écriture de données de diagnostic SOVD côté application.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : e0fb00ce3377ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Sert d'interface générique pour la lecture et l'écriture de données de diagnostic SOVD côté application.
La classe ara::diag::GenericDiagnosticSovdContent fournit une interface générique pour les applications adaptatives afin de raccorder des ressources SOVD dans le système AUTOSAR [SWS_DM_02186]. Après l'instanciation, l'application active la réception des requêtes de diagnostic via Offer(), à la suite de quoi le Diagnostic Management transmet de manière asynchrone les accès entrants en lecture et en écriture à Read() et Write()[SWS_DM_02193]. Avant l'arrêt, la mise à disposition doit être désactivée au moyen de StopOffer(), tandis que les accès en cours doivent respecter le gestionnaire d'interruption transmis.
Contexte
La classe ara::diag::GenericDiagnosticSovdContent fournit l'interface de programmation générique par laquelle les applications adaptatives proposent et traitent des ressources de données pour le diagnostic de véhicule orienté services (SOVD) conformément à ASAM SOVD [SWS_DM_02186]. Dans un scénario de diagnostic typique, trois composants essentiels interviennent : le client SOVD externe, le Diagnostic Management (DM) et le gestionnaire spécifique à l'application de l'application adaptative.
Les données SOVD sont structurées via DiagnosticSovdContent, qui se compose d'un ou de plusieurs éléments de type DiagnosticSovdContentElementSWS Diagnostics §7.3.3.3 « Definition of SOVD data ». Le DM recourt à l'interface ara::diag::GenericDiagnosticSovdContent pour exécuter des requêtes de lecture ou d'écriture pour l'ensemble des contenus, en appliquant les règles de conversion de données prédéfinies SWS Diagnostics §7.3.3.3 « Definition of SOVD data ».
Diagramme de contexte : intégration de GenericDiagnosticSovdContent entre le client SOVD externe, le Diagnostic Management et le gestionnaire spécifique à l'application. Sources : [SWS_DM_01431], [SWS_DM_01432], [SWS_DM_02186].
Cycle de vie
L'instanciation s'effectue via le constructeur en spécifiant un ara::core::InstanceSpecifier, qui fait référence à un PortPrototype d'un DiagnosticDataIdentifierGenericInterface, ainsi qu'un mode de concurrence de type SovdContentConcurrencyType[SWS_DM_02187]. La classe est conçue pour être sûre vis-à-vis des threads et des exceptions [SWS_DM_02187].
Le constructeur de déplacement et l'opérateur d'assignation par déplacement sont définis avec une visibilité protégée (protected) [SWS_DM_02189], [SWS_DM_02190]. Interprétation : la déclaration protégée indique que les instances sont implémentées sous forme de hiérarchies de classes dérivées et qu'un déplacement direct depuis l'extérieur doit être empêché. Question Q-57d60744ffc54899 (ouverte) Un destructeur virtuel existe pour la libération [SWS_DM_02188].
Après la construction, l'instance se trouve dans l'état de non-mise à disposition. Ce n'est que par l'appel de Offer() que le DM est autorisé à transmettre les requêtes de diagnostic entrantes à l'instance [SWS_DM_02193]. Avant l'arrêt ou à la fin du service, la transmission est à nouveau révoquée via StopOffer()[SWS_DM_02194].
Parcours d'utilisation
Le déroulement régulier comprend l'activation du service, la réception de requêtes asynchrones et la désinscription finale :
L'application instancie son implémentation de GenericDiagnosticSovdContent et s'enregistre auprès du DM via Offer()[SWS_DM_02193].
Si le DM reçoit une requête de lecture du client (« Read a data resource from an Entity »), il appelle la méthode Read()[SWS_DM_01432], [SWS_DM_02191]. La méthode renvoie un ara::core::Future<DiagnosticSovdContentData>, qui fournit soit les données de contenu abstraites, soit une erreur SOVD [SWS_DM_02191]. À partir de ces données, le DM forme la réponse SOVD [SWS_DM_01432], [SWS_DM_02164], [SWS_DM_02165].
Si le DM reçoit une requête d'écriture (« Write a data resource from an Entity »), il la délègue au gestionnaire via Write()[SWS_DM_01431], [SWS_DM_02166], [SWS_DM_02192]. Les données restent valides jusqu'à ce que la promesse correspondante soit tenue ou que l'opération soit annulée [SWS_DM_02192].
Pour terminer le traitement, l'application appelle StopOffer()[SWS_DM_02194].
Diagramme de séquence : déroulement de l'enregistrement du service, de la récupération asynchrone de lecture et de la terminaison du service. Sources : [SWS_DM_01432], [SWS_DM_02191], [SWS_DM_02193], [SWS_DM_02194].
Scénarios d'erreur
Si Offer() est appelé alors que le service est déjà proposé, l'opération échoue avec le code d'erreur DiagOfferErrc::kAlreadyOffered[SWS_DM_02193].
Si des erreurs spécifiques à l'application surviennent lors de la détermination des données dans Read() ou lors de l'écriture dans Write(), le ara::core::Future renvoyé est complété avec une erreur SOVD correspondante [SWS_DM_02191], [SWS_DM_02192], à la suite de quoi le DM transmet une réponse SOVD négative au client.
De plus, un ara::diag::CancellationHandler est transmis aux deux appels, signalant si l'opération est interrompue prématurément [SWS_DM_02191], [SWS_DM_02192]. Ce gestionnaire ne doit être ni stocké ni appelé au-delà de la durée de vie de l'opération [SWS_DM_02191], [SWS_DM_02192].
Ce guide se base exclusivement sur les indications de la spécification AUTOSAR Adaptive Platform Release R25-11.
This Offer will enable the DM to forward request messages to this handler.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 5a32b6fc61beProvenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Utilisation
La méthode ara::diag::GenericDiagnosticSovdContent::Offer permet au Diagnostic Management (DM) de transférer les messages de requête (request messages) entrants vers l'instance du gestionnaire [SWS_DM_02193]. L'appel s'effectue de manière synchrone, ne prend aucun paramètre et signale le résultat via le type de retour ara::core::Result<void>[SWS_DM_02193]. Un résultat positif confirme l'enregistrement réussi du service auprès du DM [SWS_DM_02193].
Gestion des erreurs
Si l'enregistrement échoue, la méthode renvoie un ara::core::Result avec un code d'erreur [SWS_DM_02193] :
DiagOfferErrc::kAlreadyOffered : survient si le service a déjà été proposé auparavant ; dans ce cas, la sémantique de rollback s'applique [SWS_DM_02193]. Ce code d'erreur correspond à l'état de diagnostic général kAlreadyOffered dans DiagErrc[SWS_DM_00514] ainsi que DiagReportingErrc[SWS_DM_00560].
Concurrence et restrictions
La fonction est spécifiée comme noexcept et exception safe[SWS_DM_02193]. De plus, elle est explicitement classée comme thread-safe[SWS_DM_02193]. Cela différencie GenericDiagnosticSovdContent::Offer de manière déterminante de la plupart des autres méthodes Offer du DM telles que GenericRoutine::Offer[SWS_DM_00557], GenericUDSService::Offer[SWS_DM_00619] ou CommunicationControl::Offer[SWS_DM_00809], qui sont chacune déclarées comme not thread-safe.
Interaction
La mise à disposition via Offer est la condition préalable nécessaire pour que le DM puisse transférer des requêtes à l'application [SWS_DM_02193]. Tant que la mise à disposition n'a pas eu lieu, le DM ne peut traiter aucune requête adressée à l'interface, ce qui correspond au principe général de mise à disposition dans le Diagnostic Management d'AUTOSAR [SWS_DM_01525], [SWS_DM_01527]. La dénomination suit le modèle établi dans le DM, qui a été choisi par analogie avec les services de surveillance AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 « Monitors ».
Cette note d'utilisation est basée sur la spécification AUTOSAR Adaptive Platform Release R25-11.
Called for "Read Single Data Value request" for the specified SOVD Content.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : e27f0077c84cProvenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Utilisation et sémantique d'appel
La méthode virtuelle pure Read de la classe ara::diag::GenericDiagnosticSovdContent sert au traitement des requêtes de type « Read Single Data Value » pour le contenu SOVD spécifié [SWS_DM_02191]. Lors de l'appel par le Diagnostic Manager, l'identifiant de contenu sovd_content_name, des informations de diagnostic contextuelles via meta_info ainsi qu'un cancellation_handler sont transmis [SWS_DM_02191]. Via le cancellation_handler, l'application peut vérifier si la requête en cours a été annulée ; cette instance ne doit pas être stockée ou référencée au-delà de la durée de vie de l'opération [SWS_DM_02191]. La mise à disposition des données s'effectue de manière asynchrone via la valeur de retour ara::core::Future<DiagnosticSovdContentData>, qui encapsule en cas de succès les données de contenu SOVD abstraites [SWS_DM_02191].
Gestion des erreurs
La méthode est spécifiée comme noexcept et exception safe, de sorte que les erreurs survenues ne doivent pas être signalées par des exceptions C++ [SWS_DM_02191]. À la place, en cas d'erreur, un SOVD Error correspondant est renvoyé via le ara::core::Future, lequel est traduit en un message de réponse négative [SWS_DM_02191]. Si l'interface n'est pas encore ou n'est plus mise à disposition par l'application au moyen de offer(), le Diagnostic Manager répond aux requêtes de service entrantes par le code de réponse négative NRC 0x94 (ResourceTemporarilyNotAvailable) [SWS_DM_01257].
Concurrence et interaction
La fonction d'interface est définie comme thread-safe[SWS_DM_02191]. La possibilité ou non pour le Diagnostic Manager d'appeler simultanément des accès en lecture et en écriture est définie via la variable de configuration readWrite dans la structure ara::diag::SovdContentConcurrencyType[SWS_DM_02185]. Ce n'est que si celle-ci est définie sur kConcurrent que les appels de Read et Write s'effectuent de manière concurrente, alors que la valeur par défaut kNotConcurrent exclut les accès simultanés [SWS_DM_02185].
Ce texte a été généré par une IA sur la base de la spécification AUTOSAR R25-11.
This StopOffer will disable the forwarding of request messages from DM.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : a2e6fc88edb0ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La méthode ara::diag::GenericDiagnosticSovdContent::StopOffer met fin à la mise à disposition du contenu de diagnostic vis-à-vis du Diagnostic Management (DM) et bloque, à compter de l'appel, le transfert des messages de requête entrants [SWS_DM_02194]. La fonction nécessite le fichier d'en-tête ara/diag/generic_diagnostic_sovd_content.h, n'attend aucun paramètre et ne fournit aucune valeur de retour [SWS_DM_02194].
En ce qui concerne la gestion des erreurs, l'opération est déclarée comme noexcept et est considérée comme entièrement sûre du point de vue des exceptions (exception safe) [SWS_DM_02194]. Ni codes d'erreur ni statuts de retour ne sont transmis ; un échec de l'appel n'est pas prévu dans la conception de l'API.
Dans le domaine de la concurrence, la méthode se distingue par le fait qu'elle est explicitement spécifiée comme sûre pour les threads (thread-safe) [SWS_DM_02194]. Cela constitue une particularité essentielle par rapport à de nombreuses autres interfaces de diagnostic pour lesquelles StopOffer est définie comme non sûre pour les threads, comme par exemple pour GenericUDSService[SWS_DM_00620], GenericRoutine[SWS_DM_00558] ou CommunicationControl[SWS_DM_00810].
Le schéma de nommage et de comportement suit le modèle général d'AUTOSAR pour les mécanismes Offer et StopOffer de contrôle du flux de messages entre le DM et les gestionnaires applicatifs AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 « Monitors ». Interprétation : l'appel devrait typiquement avoir lieu avant la destruction de l'objet gestionnaire ou en cas d'indisponibilité temporaire du service SOVD, afin d'éviter de manière fiable des requêtes orphelines. Question Q-5a2db04b82fed06b (ouverte)
Cette note d'utilisation a été générée automatiquement sur la base de la spécification AUTOSAR Adaptive R25-11.
Called for "Write a Data Value" request for the specified SOVD Content.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 545b938dce05Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La méthode [SWS_DM_02192] de la classe ara::diag::GenericDiagnosticSovdContent est appelée par le Diagnostic Management (DM) dès que la méthode « Write a data resource » est reçue via ASAM SOVD pour un élément de diagnostic [SWS_DM_02166]. La mise à disposition de cette opération d'écriture est facultative et présuppose la présence de la configuration DiagnosticSovdData.DiagnosticSovdMethod.put[SWS_DM_01431].
Lors de l'appel, le DM transmet les paramètres suivants [SWS_DM_02192] :
sovd_content_name : nom du contenu SOVD adressé.
sovd_abstract_content_data : les données utiles abstraites (DiagnosticSovdContentData), composées du nom de l'élément et de la valeur convertie [SWS_DM_02166]. Ces données restent valides jusqu'à ce que la promesse soit tenue ou que le traitement soit interrompu via le gestionnaire d'annulation.
meta_info : informations de métadonnées supplémentaires sur le contexte de la requête.
cancellation_handler : sert à détecter une interruption de l'opération en cours et ne doit pas être stocké ou référencé au-delà de la durée de vie de la fonction.
La fonction est spécifiée comme noexcept, est considérée comme sûre du point de vue des exceptions et renvoie un ara::core::Future<void>, qui transporte void en cas de succès ou une erreur SOVD en cas de retour négatif [SWS_DM_02192]. La méthode est déclarée comme sûre pour les threads [SWS_DM_02192] ; le fait que le DM soit autorisé ou non à exécuter des méthodes de lecture et d'écriture de manière concurrente est régi par le paramètre readWrite dans ara::diag::SovdContentConcurrencyType[SWS_DM_02185].
Ce texte a été généré par une IA sur la base de la spécification AUTOSAR R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original allemand