DEENESPTFRRUARHIKOZHNL

classe apext::diag::uds_transport::UdsTransportProtocolHandler

[SWS_DM_00315] Upstream: RS_Diag_04147, RS_Diag_04168

class UdsTransportProtocolHandler {...};

Abstract Class, which a specific UDS Transport Protocol (plugin) shall subclass.

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Forwarding-Header#include "apext/diag/diag_fwd.h"
Scopenamespace apext::diag::uds_transport

Guide utilisateurGÉNÉRÉ PAR IA

Sert de classe de base abstraite pour les plugins de transport UDS pour la transmission et le routage de messages de diagnostic.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 8b34a053e223 Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Sert de classe de base abstraite pour les plugins de transport UDS pour la transmission et le routage de messages de diagnostic.

La classe abstraite sert d’interface de base pour les plugins de transport UDS pour le raccordement standardisé au Diagnostic Management adaptatif (AUTOSAR_AP_SWS_Diagnostics §7.1.1 « Support of UDS Transport Layer »). Une implémentation dérivée transmet les messages de diagnostic reçus au gestionnaire de protocole et envoie les messages de réponse générés au testeur de diagnostic via des canaux spécifiques au réseau. Le cycle de vie est soumis à un enchaînement strict comprenant création, initialisation séparée, démarrage asynchrone et arrêt ordonné ([SWS_DM_00329]). Après l’instanciation, les appels de méthodes opérationnels ne sont pas thread-safe et nécessitent un pilotage coordonné par le cœur de diagnostic.

Contexte

La classe apext::diag::uds_transport::UdsTransportProtocolHandler est une classe de base abstraite au sein du module diag de l’AUTOSAR Adaptive Platform. Elle définit l’interface standardisée par laquelle les plugins de transport UDS propriétaires ou spécifiques à un protocole sont raccordés au Diagnostic Management (DM) adaptatif (AUTOSAR_AP_SWS_Diagnostics §7.1.1 « Support of UDS Transport Layer », [SWS_DM_00315]). Chaque protocole de transport concret – par exemple pour le diagnostic sur des supports réseau automobiles – implémente cette interface en tant que sous-classe dérivée. Le DM devrait posséder et gérer de manière exclusive l’instance de gestionnaire respective sur l’ensemble de son cycle de vie opérationnel. L’interaction entre le cœur de diagnostic et le plugin s’effectue via la référence transportprotocolManager du type UdsTransportProtocolMgr&, transmise au constructeur et stockée de manière protégée ([SWS_DM_09015], [SWS_DM_09025]). Chaque gestionnaire est identifié par un UdsTransportProtocolHandlerID numérique qui peut être interrogé via GetHandlerID() ([SWS_DM_00325]). Question Q-ef308265bfdf6cec (ouverte)

Cycle de vie

Le cycle de vie d’un gestionnaire de protocole de transport UDS est piloté de manière strictement séquentielle par le DM ([SWS_DM_00329]). Après l’instanciation via le constructeur UdsTransportProtocolHandler ([SWS_DM_09015]), la méthode Initialize() sépare l’initialisation proprement dite du protocole de la création de l’objet ([SWS_DM_00319]). À l’exception d’une interrogation optionnelle via GetPeriodicHandler(), le DM ne doit appeler aucune méthode sur le gestionnaire avant le retour réussi de InitializationResult::kInitializeOk ([SWS_DM_01746], [SWS_DM_09017]). Après une initialisation réussie, l’appel de Start() fait passer le gestionnaire à l’état de traitement actif ([SWS_DM_00322]). Afin de minimiser le temps de démarrage, Start() est conçu comme une opération asynchrone ; le DM devrait coordonner en interne le démarrage parallèle de plusieurs gestionnaires. Question Q-66e5a53d55e6d812 (ouverte) Si le DM passe à l’état ApplicationState.kTerminating lors de l’arrêt, il ordonne au gestionnaire de se terminer via Stop() ([SWS_DM_00323], [SWS_DM_00333]). Le DM attend l’achèvement, que le gestionnaire confirme par l’appel de UdsTransportProtocolMgr::HandlerStopped() ([SWS_DM_00340]). Après le retour de Stop(), tout appel de méthode du plugin vers le gestionnaire autre que HandlerStopped() est interdit ([SWS_DM_01741]). La libération des ressources s’effectue enfin via le destructeur virtuel ([SWS_DM_09016]). Alors que le constructeur est thread-safe, les méthodes d’interface opérationnelles sont déclarées non thread-safe.

lebenszyklus Erzeugt Erzeugt Initialisiert Initialisiert Erzeugt->Initialisiert Initialize() == kInitializeOk InitialisierungFehlgeschlagen InitialisierungFehlgeschlagen Erzeugt->InitialisierungFehlgeschlagen Initialize() == kInitializeFailed Gestartet Gestartet Initialisiert->Gestartet Start() Stoppend Stoppend Gestartet->Stoppend Stop() Gestoppt Gestoppt Stoppend->Gestoppt HandlerStopped()

Diagramme d’états : phases du cycle de vie et transitions d’état d’un gestionnaire de transport UDS. Sources : [SWS_DM_00319], [SWS_DM_00322], [SWS_DM_00323], [SWS_DM_00329], [SWS_DM_01745], [SWS_DM_01746]

Parcours d'utilisation

En fonctionnement de diagnostic régulier, le gestionnaire traite les messages entrants et transmet les réponses. Dès que l’interface réseau dispose au minimum de l’adresse source, de l’adresse de destination, du type d’adresse (physique ou fonctionnel), de la longueur totale du message et, pour les données utiles de plusieurs octets, des deux premiers octets (payloadInfo), l’implémentation signale la requête au gestionnaire via UdsTransportProtocolMgr::IndicateMessage() ([SWS_DM_00342], AUTOSAR_AP_SWS_Diagnostics §7.1.1.3 « UDS message transmission on a UDS TransportLayer »). Chaque requête est affectée à un canal unique (AUTOSAR_AP_SWS_Diagnostics §7.1.1.4 « Channel Notifications »). Pour répondre, le DM transmet la réponse de diagnostic au même gestionnaire et canal au moyen de Transmit(message, channelId) ([SWS_DM_00327], [SWS_DM_00348]). Après la transmission physique, le gestionnaire restitue l’objet de message transmis au gestionnaire via UdsTransportProtocolMgr::TransmitConfirmation() ([SWS_DM_00327], [SWS_DM_00351]). Un chemin d’utilisation spécialisé concerne les réinitialisations de calculateurs (service UDS 0x11) avec réponse positive après le redémarrage : ici, le DM demande avant la réinitialisation, via NotifyReestablishment(channelId), que le gestionnaire sauvegarde les informations de connexion de manière non volatile ; après le redémarrage et un nouveau Start(), le gestionnaire signale le rétablissement du même canal via ChannelReestablished() ([SWS_DM_00326], [SWS_DM_01744]).

Indication de message UDS et transmission de réponseDiagnosetesterUdsTransportProtocolHandlerUdsTransportProtocolMgrGestion des diagnosticsUDS-Anfrage empfangenIndicateMessage(globalChannelId, ...)Diagnoseanfrage weiterleitenDiagnoseanfrage verarbeitenTransmit(message, channelId)UDS-Antwort an Netzwerk sendenTransmitConfirmation(message, result)

Diagramme de séquence : déroulement de l’indication de message UDS et de la transmission de réponse. Sources : [SWS_DM_00327], [SWS_DM_00342], [SWS_DM_00348], [SWS_DM_00351]

Scénarios d'erreur

Si l’initialisation de la couche de transport échoue et que Initialize() renvoie l’état InitializationResult::kInitializeFailed, le DM interrompt immédiatement le processus de démarrage de ce protocole et n’appelle plus aucune méthode sur cette instance ([SWS_DM_01745], [SWS_DM_09017]). Si les transmissions périodiques ne sont pas prises en charge sur le protocole de transport, l’appel de GetPeriodicHandler() fournit un ara::core::Result avec le code d’erreur kConfigurationMismatch ([SWS_DM_01068]). Si un rétablissement de canal demandé pour une réinitialisation de calculateur (ECU) ne peut pas être garanti, NotifyReestablishment() échoue et le signale par la valeur de retour false ([SWS_DM_00326]). Si enfin l’opération d’émission d’une réponse de diagnostic échoue sur la couche réseau, le gestionnaire doit l’indiquer lors de la confirmation au gestionnaire en positionnant l’argument result dans TransmitConfirmation() sur kTransmitFailed ([SWS_DM_00351]).

Ce guide a été généré automatiquement sur la base de la spécification AUTOSAR R25-11.

Carte des membres

Diagramme de classes

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

G napext__diag__uds_transport__UdsTransportProtocolHandler1 UdsTransportProtocolHandler + transportprotocolManager + ~UdsTransportProtocolHandler() + UdsTransportProtocolHandler() + GetHandlerID() + GetPeriodicHandler() + Initialize() + NotifyReestablishment() + Start() + Stop() + Transmit()

Vue détaillée

Sélectionnez une entrée dans le plan.

Constructeurs et destructeur

Constructor of UdsTransportProtocolHandler.

explicit UdsTransportProtocolHandler (const UdsTransportProtocol HandlerID handlerId, UdsTransportProtocolMgr &transportProtocolMgr) noexcept;

Destructor of UdsTransportProtocolHandler.

virtual ~UdsTransportProtocolHandler () noexcept=default;

Méthodes

GetHandlerID fonction

Return the UdsTransportProtocolHandlerID, which was given to the implementation during construction (ctor call).

virtual UdsTransportProtocolHandlerID GetHandlerID () const noexcept;

Returns the corresponding periodic Transport Protocol handler.

virtual ara::core::Result< UdsTransportProtocolPeriodicHandler & > Get PeriodicHandler () noexcept;
Initialize fonction

Initializes UDS Transport Protocol handler. This methods needs to be called before a call of Start(). It is meant to separate the actual initialization of the UDS Transport Protocol handler from the constructor.

virtual InitializationResult Initialize () noexcept=0;

Tells the UdsTransportProtocolHandler, to notify the DM core via UdsTransportProtocol Mgr::ChannelReestablished() if the given channel has been re-established after next Uds TransportProtocolHandler::Start(). The main purpose of this method is to allow the DM to provide an ECU-Reset (0x11 service), with configuration option "positive response AFTER reset". In this scenario, the request for 0x11 will be received on a certain channel (GlobalChannel Identifier), then the ECU-Reset takes place and after ECU-Restart, all UdsProtocol Handlers/-plugins get restarted via call to UdsTransportProtocolHandler::Start().

virtual bool NotifyReestablishment (ChannelID channelId) noexcept=0;
Start fonction

Start processing the UDS Transport Protocol. Within the implementation there might be some stack specific implementation. The method is asynchronous to allow the DM to start multiple UdsTransportProtocolHandler in parallel to reduce startup time.

virtual void Start () noexcept=0;
Stop fonction

Method to indicate that this UdsTransportProtocolHandler should terminate. If UdsTransportProtocolHandler has stopped, it shall call UdsTransportProtocolMgr:: HandlerStopped(UdsTransportProtocolHandlerID).

virtual void Stop () noexcept=0;
Transmit fonction

Transmit a UDS message via the underlying UDS Transport Protocol channel.

virtual void Transmit (UdsMessageConstPtr message, ChannelID channel Id) noexcept=0;

Énumérations

InitializationResult énumération

Result of Initialize handler.

enum class InitializationResult : std::uint8_t {...};

Constantes

The UdsTransportProtocolMgr used/provided by the DM.

UdsTransportProtocolMgr& transportprotocolManager;

Documentation des méthodes

fonction GetHandlerID [SWS_DM_00325] Upstream: RS_Diag_04147, RS_Diag_04168

virtual UdsTransportProtocolHandlerID GetHandlerID () const noexcept;

Return the UdsTransportProtocolHandlerID, which was given to the implementation during construction (ctor call).

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
UdsTransportProtocolHandlerIDUdsTransportProtocolHandlerID.

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

Record
AUTOSAR/AP/record/SWS_DM_00325
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00325@rel:R25-11#acd2be28
Content hash
acd2be28
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00325
Status: valid/unmigrated Version: rel:R25-11#98596bd3 Versionshistorie & Revisions (1 transition, 8 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_00325@rel:R25-11#98596bd3
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#ba13d0a62026-09-30
  • R19-11rel:R19-11#47151ef62026-10-14
  • R20-11rel:R20-11#8d4acd5c2026-10-14
  • R21-11rel:R21-11#7170c6052026-10-14
  • R22-11rel:R22-11#a8caf4042026-10-14
  • R23-11rel:R23-11#5baf09172026-10-14
  • R24-11rel:R24-11#13e886b82026-10-14
  • R25-11rel:R25-11#98596bd32026-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

fonction GetPeriodicHandler [SWS_DM_01068] Upstream: RS_Diag_04215

virtual ara::core::Result< UdsTransportProtocolPeriodicHandler & > Get PeriodicHandler () noexcept;

Returns the corresponding periodic Transport Protocol handler.

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
ara::core::Result< UdsTransportProtocolPeriodicHandler & >If periodic transmissions are supported on this transport protocol, a reference to UdsTransportProtocolPeriodicHandler is returned, and if not supported, an error (kConfigurationMismatch).

Fehler

FehlercodeBeschreibung
kConfigurationMismatch

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

Record
AUTOSAR/AP/record/SWS_DM_01068
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01068@rel:R25-11#17a2a9e6
Content hash
17a2a9e6
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01068
Status: valid/unmigrated Version: rel:R25-11#ab56dcd2 Versionshistorie & Revisions (1 transition, 7 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_01068@rel:R25-11#ab56dcd2
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#331116142026-09-30
  • R20-11rel:R20-11#846d3b552026-10-14
  • R21-11rel:R21-11#49b00e832026-10-14
  • R22-11rel:R22-11#1ddbb3d62026-10-14
  • R23-11rel:R23-11#f5d366552026-10-14
  • R24-11rel:R24-11#4fcfe9bb2026-10-14
  • R25-11rel:R25-11#ab56dcd22026-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

fonction Initialize [SWS_DM_00319] Upstream: RS_Diag_04147, RS_Diag_04168

virtual InitializationResult Initialize () noexcept=0;

Initializes UDS Transport Protocol handler. This methods needs to be called before a call of Start(). It is meant to separate the actual initialization of the UDS Transport Protocol handler from the constructor.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 2d1a514affd8 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La méthode purement virtuelle Initialize sert à l'initialisation explicite d'une instance de apext::diag::uds_transport::UdsTransportProtocolHandler et sépare formellement cette opération de la construction de l'objet [SWS_DM_00319]. Elle est appelée de manière synchrone et sans paramètre par le Diagnostic Manager (DM), ne lève aucune exception (noexcept) et renvoie un InitializationResult [SWS_DM_00319] [SWS_DM_09017].

Cycle de vie et concurrence

L'appel est intégré dans la gestion du cycle de vie de la couche de transport UDS AUTOSAR_AP_SWS_Diagnostics §7.1.1.1 « Initialization, Starting and Stopping of a UDS TransportLayer ». Le DM doit gérer les phases dans un ordre fixe : construction, appel de Initialize, démarrage via Start et arrêt via Stop [SWS_DM_00329]. La méthode est spécifiée comme non thread-safe (not thread-safe) [SWS_DM_00319] ; le DM devrait donc probablement l'exécuter dans le cadre d'une phase d'initialisation synchrone sans accès concurrents. Question Q-06180f9d8fe99092 (ouverte)

Traitement des erreurs et interaction

La méthode signale le résultat via l'énumérateur InitializationResult::kInitializeOk ou InitializationResult::kInitializeFailed [SWS_DM_09017]. Le comportement ultérieur du DM dépend directement de la valeur de retour :

  • En cas de retour réussi avec kInitializeOk, le DM est autorisé à appeler les méthodes suivantes du handler ; avant cette valeur de retour réussie, aucun autre appel de méthode n'est permis, à l'exception de GetPeriodicHandler [SWS_DM_01746].
  • Si le handler renvoie kInitializeFailed, le DM interrompt complètement le processus d'initialisation de ce protocole de transport et n'appelle plus aucune autre méthode sur l'instance concernée [SWS_DM_01745].

Ce texte a été généré par une IA sur la base d'AUTOSAR R25-11.

Guide de l'implémenteur à venir (complexité I1)

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
InitializationResultkInitializeOk, in case, the initialization was successful, else kInitializeFailed is returned.

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

Record
AUTOSAR/AP/record/SWS_DM_00319
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00319@rel:R25-11#39b16dd5
Content hash
39b16dd5
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00319
Status: valid/unmigrated Version: rel:R25-11#a9abbec3 Versionshistorie & Revisions (1 transition, 8 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_00319@rel:R25-11#a9abbec3
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#6d238b482026-09-30
  • R19-11rel:R19-11#24dcf7ab2026-10-14
  • R20-11rel:R20-11#4d518db32026-10-14
  • R21-11rel:R21-11#4d518db32026-10-14
  • R22-11rel:R22-11#2a8e1b2b2026-10-14
  • R23-11rel:R23-11#79c84e752026-10-14
  • R24-11rel:R24-11#a9655bf92026-10-14
  • R25-11rel:R25-11#a9abbec32026-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

fonction NotifyReestablishment [SWS_DM_00326] Upstream: RS_Diag_04147, RS_Diag_04168

virtual bool NotifyReestablishment (ChannelID channelId) noexcept=0;

Tells the UdsTransportProtocolHandler, to notify the DM core via UdsTransportProtocol Mgr::ChannelReestablished() if the given channel has been re-established after next Uds TransportProtocolHandler::Start(). The main purpose of this method is to allow the DM to provide an ECU-Reset (0x11 service), with configuration option "positive response AFTER reset". In this scenario, the request for 0x11 will be received on a certain channel (GlobalChannel Identifier), then the ECU-Reset takes place and after ECU-Restart, all UdsProtocol Handlers/-plugins get restarted via call to UdsTransportProtocolHandler::Start().

Now there are two expectations, when this method has been called before and returned "TRUE": If the same remote client connects to the UdsProtocolHandler, it shall get a channel identification with the same identifying as the last time. It consecutively calls UdsTransportProtocolMgr::ChannelReestablished(Global ChannelIdentifier).

The detection/decision, whether the "same" client reconnects as before is an UdsProtocol Handler implementation specific decision.

The general expectation is:

If the channel is set up from exactly the same remote network-endpoint, it typically gets the same ChannelID. To support this functionality, the implementation at least has to store non-volatile, that this notification has to be done. Further it might be needed to store some additional connection specific info non-volatile to make sure, that the same ChannelID can be reassigned. This is the case if the mapping of protocol specific channel info -> channelID isn’t a

stable bijective mapping!

Small example:

The underlying network protocol, which UdsProtocolHandler implements is based on TCP. At the point in time, where the 0x11 Service Identifier request is received on channel identified by the DM calls UdsTransportProtocolHandler::NotifyReestablishment() on this ChannelID.

Now the implementation of UdsProtocolHandler stores non-volatile in the context of this call:

• NetworkEndpoint (IP-address and port number) of the channel. • NetworkEndpoint (IP-address and port number) of the local port (because in this example, the UdsTransportProtocolHandler listens on/supports different ports). • ChannelID it has currently assigned. After restart this ChannelID is only reused for a channel with exactly the same Network Endpoint addresses as stored non-volatile.

If this ChannelID then gets reassigned, then UdsTransportProtocolMgr::Channel Reestablished() has to be called.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 677bdfc28d3d Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La méthode NotifyReestablishment est appelée de manière synchrone par le Diagnostic Manager (DM) lorsqu'une réponse positive ne doit être envoyée qu'après un redémarrage effectué dans le cadre d'un redémarrage de calculateur (service UDS 0x11) ([SWS_DM_00326], [SWS_DM_00360]). Le canal de transport à surveiller est transmis via le paramètre channelId ([SWS_DM_00326]).

L'appel donne l'instruction à l'implémentation du protocole de transport de sauvegarder la demande de surveillance de manière persistante ([SWS_DM_00359]). Après le redémarrage du système et le relancement des gestionnaires, le gestionnaire de protocole signale au DM la nouvelle disponibilité du canal de manière asynchrone au moyen de [SWS_DM_00313] ([SWS_DM_00358]). La valeur de retour booléenne indique avec true que la demande de notification a été acceptée et peut être satisfaite ; dans le cas contraire, false est renvoyé ([SWS_DM_00326]).

En matière de concurrence et de traitement des erreurs :

  • La fonction est spécifiée comme not thread-safe ; les appels parallèles doivent être synchronisés par l'appelant ([SWS_DM_00326]).
  • La signature est noexcept ; aucune exception ne survient. Une valeur de retour de false indique probablement que les paramètres de connexion requis n'ont pas pu être enregistrés de manière persistante ([SWS_DM_00326], SWS Diagnostics §7.1.1.4 « Channel Notifications »). Question Q-17d2270b31762c74 (ouverte)
  • Afin de pouvoir identifier le même canal après le redémarrage, des données de point de terminaison spécifiques à la connexion doivent être sauvegardées, à moins qu'un mappage bijectif stable n'existe ([SWS_DM_00326]).

Cette note d'utilisation a été générée par une IA sur la base de la spécification.

Guide de l'implémenteur à venir (complexité I2)

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Parameter (in)

ParameterBeschreibung
channelIdThe channelID, whose re-establishment shall be notified to Uds TransportProtocolMgr

Rückgabewert

TypBeschreibung
boolTRUE, if notification request is accepted and can be fulfilled, else FALSE
Hinweise: The UdsTransportProtocolHandler will call UdsTransportProtocolMgr::Channel Reestablished() after UdsTransportProtocolHandler::Start() is called and as soon as it detects that the remote client/tester is reachable again.

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

Record
AUTOSAR/AP/record/SWS_DM_00326
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00326@rel:R25-11#e83a775f
Content hash
e83a775f
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00326
Status: valid/unmigrated Version: rel:R25-11#71ce018e Versionshistorie & Revisions (1 transition, 8 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_00326@rel:R25-11#71ce018e
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#eaebfef42026-09-30
  • R19-11rel:R19-11#c295123d2026-10-14
  • R20-11rel:R20-11#3a65f3fb2026-10-14
  • R21-11rel:R21-11#318d3d1b2026-10-14
  • R22-11rel:R22-11#ce8e0b802026-10-14
  • R23-11rel:R23-11#30993c3a2026-10-14
  • R24-11rel:R24-11#a15ad2ab2026-10-14
  • R25-11rel:R25-11#71ce018e2026-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

fonction Start [SWS_DM_00322] Upstream: RS_Diag_04147, RS_Diag_04168

virtual void Start () noexcept=0;

Start processing the UDS Transport Protocol. Within the implementation there might be some stack specific implementation. The method is asynchronous to allow the DM to start multiple UdsTransportProtocolHandler in parallel to reduce startup time.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : b5781ddbed6c Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La méthode Start de l'interface apext::diag::uds_transport::UdsTransportProtocolHandler démarre le traitement de protocole d'un plugin de transport UDS dans le Diagnostic Management (DM) conformément à [SWS_DM_00322]. Elle ne prend aucun paramètre et ne fournit aucune valeur de retour. L'exécution est conçue pour être asynchrone afin que le DM puisse démarrer plusieurs instances en parallèle et réduire ainsi le temps de démarrage du système global ([SWS_DM_00322]). Comme la signature déclare void, le traitement asynchrone devrait être pris en charge de manière spécifique à la pile via des mécanismes internes en arrière-plan. Question Q-d1023a05a1f3e2ab (ouverte)

En ce qui concerne le cycle de vie (SWS Diagnostics §7.1.1.1 « Initialization, Starting and Stopping of a UDS TransportLayer », [SWS_DM_00329]), des conditions d'ordonnancement strictes s'appliquent :

  • Préconditions : avant l'appel, l'initialisation via Initialize ([SWS_DM_00319]) doit impérativement avoir été achevée avec le résultat kInitializeOk ([SWS_DM_01746]). Si l'initialisation fournit en revanche kInitializeFailed, le DM interrompt l'opération et ne doit pas appeler Start ([SWS_DM_01745]).
  • Postconditions : ce n'est qu'après l'appel réussi de Start que le DM est autorisé à déclencher des fonctions en aval telles que Transmit ou Stop sur le gestionnaire ([SWS_DM_01743]). De plus, le DM traite les notifications relatives à ChannelReestablished ([SWS_DM_00313]) exclusivement si Start a été exécuté auparavant ([SWS_DM_01744]), ce qui est essentiel, entre autres, pour les scénarios de réinitialisation d'ECU avec reconnexion ([SWS_DM_00326]).

La méthode est déclarée comme noexcept et est donc sûre du point de vue des exceptions, mais elle est explicitement spécifiée comme non sûre pour les threads (not thread-safe) ([SWS_DM_00322]). Les appelants doivent par conséquent s'assurer que les appels d'instance sont synchronisés.

Cette note d'utilisation a été générée automatiquement sur la base des données de spécification.

Guide de l'implémenteur à venir (complexité I2)

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
None

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

Record
AUTOSAR/AP/record/SWS_DM_00322
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00322@rel:R25-11#10a3d094
Content hash
10a3d094
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00322
Status: valid/unmigrated Version: rel:R25-11#0b2689e0 Versionshistorie & Revisions (1 transition, 8 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_00322@rel:R25-11#0b2689e0
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#13806c572026-09-30
  • R19-11rel:R19-11#e7bc57b82026-10-14
  • R20-11rel:R20-11#967d60892026-10-14
  • R21-11rel:R21-11#967d60892026-10-14
  • R22-11rel:R22-11#5752c1402026-10-14
  • R23-11rel:R23-11#9e58e6f32026-10-14
  • R24-11rel:R24-11#dd7836172026-10-14
  • R25-11rel:R25-11#0b2689e02026-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

fonction Stop [SWS_DM_00323] Upstream: RS_Diag_04147, RS_Diag_04168

virtual void Stop () noexcept=0;

Method to indicate that this UdsTransportProtocolHandler should terminate. If UdsTransportProtocolHandler has stopped, it shall call UdsTransportProtocolMgr:: HandlerStopped(UdsTransportProtocolHandlerID).

After return from Stop(), the handler-plugin shall NOT call to UdsTransportProtocolMgr with any other method but UdsTransportProtocolMgr::HandlerStopped().

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : e507b828b86b Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La méthode Stop de l'interface apext::diag::uds_transport::UdsTransportProtocolHandler signale à une instance de protocole de transport UDS qu'elle doit se terminer [SWS_DM_00323]. L'appel est déclenché par le Diagnostic Management (DM) dès que celui-ci passe à l'état ApplicationState.kTerminating [SWS_DM_00333]. La fonction est sans paramètre, ne possède aucune valeur de retour, est déclarée comme noexcept et spécifiée comme sûre face aux exceptions (exception safe) [SWS_DM_00323].

Les conditions suivantes s'appliquent au contexte d'appel et à la concurrence :

L'interaction avec le DM s'effectue de manière asynchrone : une fois que le handler a fermé ses connexions réseau et libéré ses ressources, il doit en informer le DM via apext::diag::uds_transport::UdsTransportProtocolMgr::HandlerStopped en lui transmettant son handlerId [SWS_DM_00314]. Après l'appel de Stop, le DM attend impérativement ce rappel de confirmation avant d'arrêter définitivement le processus [SWS_DM_00340].

Ce texte a été généré automatiquement sur la base de la spécification AUTOSAR Adaptive R25-11.

Guide de l'implémenteur à venir (complexité I1)

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
None

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

Record
AUTOSAR/AP/record/SWS_DM_00323
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00323@rel:R25-11#37638c33
Content hash
37638c33
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00323
Status: valid/unmigrated Version: rel:R25-11#ddd9ac23 Versionshistorie & Revisions (1 transition, 8 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_00323@rel:R25-11#ddd9ac23
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#59af1a9d2026-09-30
  • R19-11rel:R19-11#53424cef2026-10-14
  • R20-11rel:R20-11#fe2b5e9c2026-10-14
  • R21-11rel:R21-11#7d886f392026-10-14
  • R22-11rel:R22-11#c94b081a2026-10-14
  • R23-11rel:R23-11#a61d25202026-10-14
  • R24-11rel:R24-11#838592342026-10-14
  • R25-11rel:R25-11#ddd9ac232026-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

fonction Transmit [SWS_DM_00327] Upstream: RS_Diag_04147, RS_Diag_04168

virtual void Transmit (UdsMessageConstPtr message, ChannelID channel Id) noexcept=0;

Transmit a UDS message via the underlying UDS Transport Protocol channel.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 5022cdfe42a5 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La méthode Transmit est appelée afin d'envoyer un message de diagnostic UDS au réseau via un canal spécifique du protocole de transport ([SWS_DM_00327], SWS Diagnostics §7.1.1.3 « UDS message transmission on a UDS TransportLayer »). Elle implémente le service T_Data.req selon l'ISO 14229-2 ([SWS_DM_00327]). L'appelant transmet le message à envoyer sous forme de UdsMessageConstPtr selon la sémantique de possession d'un unique_ptr ainsi que le channelId, qui doit correspondre au canal de la requête précédemment reçue ([SWS_DM_00327], [SWS_DM_00348], SWS Diagnostics §7.1.1.4 « Channel Notifications »).

En matière d'ordonnancement et de cycle de vie, le Diagnostic Manager n'est autorisé à appeler Transmit qu'une fois l'initialisation du gestionnaire terminée avec kInitializeOk ([SWS_DM_01746]) et la méthode Start appelée ([SWS_DM_01743]). Comme l'opération est spécifiée comme not thread-safe et exception safe ([SWS_DM_00327]), la coordination des requêtes d'émission parallèles devrait, selon l'interprétation, devoir s'effectuer côté appelant dans le Diagnostic Manager. Question Q-6edd917928b60e55 (ouverte)

La fonction ne fournit de manière synchrone aucune valeur de retour. Le gestionnaire de transport est tenu de restituer de façon asynchrone le pointeur de message au Diagnostic Manager via apext::diag::uds_transport::UdsTransportProtocolMgr::TransmitConfirmation après la transmission ([SWS_DM_00327], [SWS_DM_00312]). En cas d'envoi réussi au niveau du réseau, le résultat kTransmitOk est signalé, sinon kTransmitFailed ([SWS_DM_00351]).

Cette note d'utilisation est basée sur la spécification AUTOSAR Adaptive R25-11.

Guide de l'implémenteur à venir (complexité I1)

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Parameter (in)

ParameterBeschreibung
messageThe message to be transmitted as a UdsMessage::Ptr (unique_ptr style). UdsTransportProtocolHandler has to give back this Uds Message::Ptr via UdsTransportProtocolMgr::Transmit Confirmation() to signal, that it is done with this message.
channelIdIdentification of channel on which to transmit.

Rückgabewert

TypBeschreibung
None
Hinweise: This transmit API covers T_Data.req of ISO 14229-2[25] Figure 2.

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

Record
AUTOSAR/AP/record/SWS_DM_00327
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00327@rel:R25-11#a5704aa9
Content hash
a5704aa9
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00327
Status: valid/unmigrated Version: rel:R25-11#476973a2 Versionshistorie & Revisions (1 transition, 8 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_00327@rel:R25-11#476973a2
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#b90d03092026-09-30
  • R19-11rel:R19-11#000cf4a42026-10-14
  • R20-11rel:R20-11#34d3b7782026-10-14
  • R21-11rel:R21-11#34d3b7782026-10-14
  • R22-11rel:R22-11#24d7a0a92026-10-14
  • R23-11rel:R23-11#a439d8b92026-10-14
  • R24-11rel:R24-11#b3938b682026-10-14
  • R25-11rel:R25-11#476973a22026-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

fonction UdsTransportProtocolHandler [SWS_DM_09015] Upstream: RS_Diag_04147, RS_Diag_04168

explicit UdsTransportProtocolHandler (const UdsTransportProtocol HandlerID handlerId, UdsTransportProtocolMgr &transportProtocolMgr) noexcept;

Constructor of UdsTransportProtocolHandler.

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolHandler
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
handlerIdThe handler ID used by DM to identify this handler. This is just a number/identification given by the DM core, when instantiating a UdsTransportProtocolHandler instance, to be able to distinguish it from other handler-plugins or built-in UdsTransportProtocolHandler implementation(s).
transportProtocolMgrReference to UdsTransportProtocolMgr owned by this DM, with which UdsTransportProtocolHandler instance shall interact.

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

Record
AUTOSAR/AP/record/SWS_DM_09015
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_09015@rel:R25-11#e40b27dd
Content hash
e40b27dd
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_09015
Status: valid/unmigrated Version: rel:R25-11#a9ed45a3 Versionshistorie & Revisions (1 transition, 8 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_09015@rel:R25-11#a9ed45a3
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#caee19702026-09-30
  • R19-11rel:R19-11#986eae482026-10-14
  • R20-11rel:R20-11#b8cc07892026-10-14
  • R21-11rel:R21-11#809c79d52026-10-14
  • R22-11rel:R22-11#a76b2d802026-10-14
  • R23-11rel:R23-11#f807b8cb2026-10-14
  • R24-11rel:R24-11#949b6e802026-10-14
  • R25-11rel:R25-11#a9ed45a32026-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

fonction ~UdsTransportProtocolHandler [SWS_DM_09016] Upstream: RS_Diag_04147, RS_Diag_04168

virtual ~UdsTransportProtocolHandler () noexcept=default;

Destructor of UdsTransportProtocolHandler.

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolHandler
Exception-Sicherheitexception safe

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

Record
AUTOSAR/AP/record/SWS_DM_09016
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_09016@rel:R25-11#649235d3
Content hash
649235d3
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_09016
Status: valid/unmigrated Version: rel:R25-11#84d4080f Versionshistorie & Revisions (1 transition, 8 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_09016@rel:R25-11#84d4080f
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#698b1dff2026-09-30
  • R19-11rel:R19-11#0e5d954f2026-10-14
  • R20-11rel:R20-11#a89192a82026-10-14
  • R21-11rel:R21-11#a89192a82026-10-14
  • R22-11rel:R22-11#e44075962026-10-14
  • R23-11rel:R23-11#6adb5bb12026-10-14
  • R24-11rel:R24-11#5417259f2026-10-14
  • R25-11rel:R25-11#84d4080f2026-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

Documentation des énumérations

énumération InitializationResult [SWS_DM_09017] Upstream: RS_Diag_04147, RS_Diag_04168

enum class InitializationResult :                std::uint8_t {...};

Result of Initialize handler.

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Forwarding-Header#include "apext/diag/diag_fwd.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolHandler
SymbolInitializationResult
Basistypstd::uint8_t

Werte

EnumeratorBeschreibung
kInitializeOk=0 Initialization ok.
kInitializeFailed=1 Initialization failed.

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

Record
AUTOSAR/AP/record/SWS_DM_09017
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_09017@rel:R25-11#9e2f0fe8
Content hash
9e2f0fe8
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_09017
Status: valid/unmigrated Version: rel:R25-11#95d25f6f Versionshistorie & Revisions (1 transition, 8 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_09017@rel:R25-11#95d25f6f
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#6e3b57b42026-09-30
  • R19-11rel:R19-11#1a1547832026-10-14
  • R20-11rel:R20-11#b70ecaf32026-10-14
  • R21-11rel:R21-11#b70ecaf32026-10-14
  • R22-11rel:R22-11#b70ecaf32026-10-14
  • R23-11rel:R23-11#fa76aad12026-10-14
  • R24-11rel:R24-11#86bf32092026-10-14
  • R25-11rel:R25-11#95d25f6f2026-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

Documentation des constantes / variables

variable transportprotocolManager [SWS_DM_09025] Upstream: RS_Diag_04147, RS_Diag_04168

UdsTransportProtocolMgr& transportprotocolManager;

The UdsTransportProtocolMgr used/provided by the DM.

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolHandler
SymboltransportprotocolManager
TypUdsTransportProtocolMgr &
Sichtbarkeitprotected

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

Record
AUTOSAR/AP/record/SWS_DM_09025
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_09025@rel:R25-11#d765c6b0
Content hash
d765c6b0
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_09025
Status: valid/unmigrated Version: rel:R25-11#8f6915d3 Versionshistorie & Revisions (1 transition, 4 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_09025@rel:R25-11#8f6915d3
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#d765c6b02026-09-30
  • R23-11rel:R23-11#a4f7fad02026-10-14
  • R24-11rel:R24-11#3b6191932026-10-14
  • R25-11rel:R25-11#8f6915d32026-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