DEENESPTFRRUARHIKOZHNL

класс 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

Руководство пользователяСОЗДАНО ИИ

Служит абстрактным базовым классом для плагинов транспорта UDS, предназначенных для передачи и пересылки диагностических сообщений.
СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 8b34a053e223 Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Служит абстрактным базовым классом для плагинов транспорта UDS, предназначенных для передачи и пересылки диагностических сообщений.

Абстрактный класс служит плагинам транспорта UDS базовым интерфейсом для стандартизированного подключения к адаптивному управлению диагностикой (AUTOSAR_AP_SWS_Diagnostics §7.1.1 «Support of UDS Transport Layer»). Производная реализация пересылает принятые диагностические сообщения менеджеру протокола и передает сгенерированные ответные сообщения диагностическому тестеру по сетевым каналам. Жизненный цикл подчиняется строгой последовательности из создания, отдельной инициализации, асинхронного запуска и упорядоченной остановки ([SWS_DM_00329]). После инстанцирования эксплуатационные вызовы методов не являются потокобезопасными (not thread-safe) и требуют скоординированного управления со стороны ядра диагностики.

Контекст

Класс apext::diag::uds_transport::UdsTransportProtocolHandler представляет собой абстрактный базовый класс в модуле diag AUTOSAR Adaptive Platform. Он определяет стандартизированный интерфейс, через который проприетарные или специфичные для протокола плагины транспорта UDS подключаются к адаптивному управлению диагностикой (DM) (AUTOSAR_AP_SWS_Diagnostics §7.1.1 «Support of UDS Transport Layer», [SWS_DM_00315]). Каждый конкретный транспортный протокол — например, для диагностики по автомобильным сетевым средам — реализует этот интерфейс в виде производного подкласса. DM, вероятно, монопольно владеет соответствующим экземпляром обработчика и управляет им на протяжении всего его эксплуатационного жизненного цикла. Вопрос Q-ef308265bfdf6cec (открытый) Взаимодействие между ядром диагностики и плагином осуществляется через ссылку transportprotocolManager типа UdsTransportProtocolMgr&, которая передается в конструкторе и сохраняется в защищенном виде ([SWS_DM_09015], [SWS_DM_09025]). Каждый обработчик идентифицируется числовым UdsTransportProtocolHandlerID, который можно запросить через GetHandlerID() ([SWS_DM_00325]).

Жизненный цикл

Жизненный цикл обработчика транспортного протокола UDS строго последовательно управляется со стороны DM ([SWS_DM_00329]). После инстанцирования через конструктор UdsTransportProtocolHandler ([SWS_DM_09015]) метод Initialize() отделяет фактическую инициализацию протокола от создания объекта ([SWS_DM_00319]). За исключением опционального запроса через GetPeriodicHandler(), DM не имеет права вызывать методы обработчика до успешного возврата из InitializationResult::kInitializeOk ([SWS_DM_01746], [SWS_DM_09017]). После успешной инициализации вызов Start() переводит обработчик в активное состояние обработки ([SWS_DM_00322]). Чтобы минимизировать время запуска, Start() спроектирован как асинхронная операция; DM, вероятно, внутренне координирует параллельный запуск нескольких обработчиков. Вопрос Q-66e5a53d55e6d812 (открытый) Если DM при завершении работы переходит в состояние ApplicationState.kTerminating, он дает обработчику указание на завершение через Stop() ([SWS_DM_00323], [SWS_DM_00333]). DM ожидает завершения, которое обработчик подтверждает вызовом UdsTransportProtocolMgr::HandlerStopped() ([SWS_DM_00340]). После возврата из Stop() плагину запрещен любой вызов методов менеджера, кроме HandlerStopped() ([SWS_DM_01741]). Освобождение ресурсов в конечном итоге происходит через виртуальный деструктор ([SWS_DM_09016]). В то время как конструктор потокобезопасен, методы рабочего интерфейса объявлены как непотокобезопасные.

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()

Диаграмма состояний: фазы жизненного цикла и переходы между состояниями обработчика транспорта UDS. Источники: [SWS_DM_00319], [SWS_DM_00322], [SWS_DM_00323], [SWS_DM_00329], [SWS_DM_01745], [SWS_DM_01746]

Путь использования

В штатном режиме диагностики обработчик обрабатывает входящие сообщения и передает ответы. Как только на сетевом интерфейсе присутствуют как минимум адрес источника, адрес назначения, тип адресации (физический или функциональный), общая длина сообщения, а для многобайтовых полезных данных — первые два байта (payloadInfo), реализация сообщает о запросе менеджеру через UdsTransportProtocolMgr::IndicateMessage() ([SWS_DM_00342], AUTOSAR_AP_SWS_Diagnostics §7.1.1.3 «UDS message transmission on a UDS TransportLayer»). Каждый запрос привязан к уникальному каналу (AUTOSAR_AP_SWS_Diagnostics §7.1.1.4 «Channel Notifications»). Для ответа DM передает диагностический ответ тому же обработчику и каналу с помощью Transmit(message, channelId) ([SWS_DM_00327], [SWS_DM_00348]). После физической передачи обработчик возвращает переданный объект сообщения менеджеру через UdsTransportProtocolMgr::TransmitConfirmation() ([SWS_DM_00327], [SWS_DM_00351]). Специализированный сценарий использования касается перезагрузок блока управления (ECU) (служба UDS 0x11) с положительным ответом после перезапуска: здесь DM перед перезагрузкой запрашивает через NotifyReestablishment(channelId) энергонезависимое сохранение информации о соединении обработчиком; после перезапуска и повторного Start() обработчик сообщает о восстановлении того же канала через ChannelReestablished() ([SWS_DM_00326], [SWS_DM_01744]).

Индикация UDS-сообщения и передача ответаDiagnosetesterUdsTransportProtocolHandlerUdsTransportProtocolMgrDiagnostic ManagementUDS-Anfrage empfangenIndicateMessage(globalChannelId, ...)Diagnoseanfrage weiterleitenDiagnoseanfrage verarbeitenTransmit(message, channelId)UDS-Antwort an Netzwerk sendenTransmitConfirmation(message, result)

Диаграмма последовательности: последовательность индикации UDS-сообщения и передачи ответа. Источники: [SWS_DM_00327], [SWS_DM_00342], [SWS_DM_00348], [SWS_DM_00351]

Сценарии ошибок

Если инициализация транспортного уровня завершается сбоем и Initialize() возвращает статус InitializationResult::kInitializeFailed, DM немедленно прерывает процесс запуска этого протокола и больше не вызывает никаких методов на данном экземпляре ([SWS_DM_01745], [SWS_DM_09017]). Если периодические передачи не поддерживаются транспортным протоколом, вызов GetPeriodicHandler() возвращает ara::core::Result с кодом ошибки kConfigurationMismatch ([SWS_DM_01068]). Если запрошенное восстановление канала для сброса ECU не может быть гарантировано, NotifyReestablishment() завершается сбоем и сигнализирует об этом возвращаемым значением false ([SWS_DM_00326]). Наконец, если операция отправки диагностического ответа на сетевом уровне завершается неудачно, обработчик должен уведомить об этом менеджера при подтверждении, установив аргумент result в TransmitConfirmation() в значение kTransmitFailed ([SWS_DM_00351]).

Настоящее руководство было автоматически сгенерировано на основе спецификации AUTOSAR R25-11.

Карта членов

Диаграмма классов

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()

Подробный вид

Выберите элемент в оглавлении.

Конструкторы и деструктор

Constructor of UdsTransportProtocolHandler.

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

Destructor of UdsTransportProtocolHandler.

virtual ~UdsTransportProtocolHandler () noexcept=default;

Методы

GetHandlerID функция

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

virtual UdsTransportProtocolHandlerID GetHandlerID () const noexcept;
GetPeriodicHandler функция

Returns the corresponding periodic Transport Protocol handler.

virtual ara::core::Result< UdsTransportProtocolPeriodicHandler & > Get PeriodicHandler () noexcept;
Initialize функция

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;
NotifyReestablishment функция

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 функция

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 функция

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

virtual void Stop () noexcept=0;
Transmit функция

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

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

Перечисления

InitializationResult перечисление

Result of Initialize handler.

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

Константы

transportprotocolManager переменная

The UdsTransportProtocolMgr used/provided by the DM.

UdsTransportProtocolMgr& transportprotocolManager;

Документация методов

функция 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#bc115b1c
Content hash
bc115b1c
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

функция 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#fc0c8cab
Content hash
fc0c8cab
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

функция 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 2d1a514affd8 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Чисто виртуальный метод Initialize служит для явной инициализации экземпляра apext::diag::uds_transport::UdsTransportProtocolHandler и формально отделяет этот процесс от конструирования объекта [SWS_DM_00319]. Он вызывается модулем Diagnostic Manager (DM) синхронно и без параметров, не генерирует исключений (noexcept) и возвращает InitializationResult [SWS_DM_00319] [SWS_DM_09017].

Жизненный цикл и параллелизм

Вызов встроен в управление жизненным циклом транспортного уровня UDS AUTOSAR_AP_SWS_Diagnostics §7.1.1.1 «Initialization, Starting and Stopping of a UDS TransportLayer». DM должен управлять фазами в строгом порядке: конструирование, вызов Initialize, запуск через Start и завершение через Stop [SWS_DM_00329]. Метод специфицирован как непотокобезопасный (not thread-safe) [SWS_DM_00319]; поэтому DM, вероятно, выполняет его в рамках синхронной фазы инициализации без параллельных обращений. Вопрос Q-06180f9d8fe99092 (открытый)

Обработка ошибок и взаимодействие

Метод сигнализирует о результате через перечислитель InitializationResult::kInitializeOk или InitializationResult::kInitializeFailed [SWS_DM_09017]. Дальнейшее поведение DM напрямую зависит от возвращаемого значения:

  • В случае успешного возврата со значением kInitializeOk DM разрешено вызывать последующие методы обработчика; до получения этого успешного возвращаемого значения, за исключением GetPeriodicHandler, никакой другой вызов метода не допускается [SWS_DM_01746].
  • Если обработчик возвращает kInitializeFailed, DM полностью прерывает процесс инициализации этого транспортного протокола и больше не вызывает никаких методов у затронутого экземпляра [SWS_DM_01745].

Этот текст был сгенерирован ИИ на основе AUTOSAR R25-11.

Руководство разработчика реализации в подготовке (сложность 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#c200b9b3
Content hash
c200b9b3
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

функция 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 677bdfc28d3d Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Метод NotifyReestablishment вызывается синхронно Diagnostic Manager (DM), если в рамках перезапуска ECU (UDS-служба 0x11) положительный ответ должен быть отправлен только после состоявшегося перезапуска ([SWS_DM_00326], [SWS_DM_00360]). Через параметр channelId передается отслеживаемый транспортный канал ([SWS_DM_00326]).

С этим вызовом реализации транспортного протокола предписывается персистентно сохранить запрос на отслеживание ([SWS_DM_00359]). После повторного запуска системы и повторного старта обработчиков обработчик протокола асинхронно сообщает о повторной доступности канала с помощью [SWS_DM_00313] в DM ([SWS_DM_00358]). Булево возвращаемое значение сигнализирует с помощью true о том, что запрос на уведомление принят и может быть выполнен; в противном случае возвращается false ([SWS_DM_00326]).

В отношении параллелизма и обработки ошибок действует следующее:

  • Функция специфицирована как not thread-safe; параллельные вызовы должны синхронизироваться на стороне вызывающего ([SWS_DM_00326]).
  • Сигнатура является noexcept; исключения не возникают. Возвращаемое значение false, вероятно, указывает на то, что требуемые параметры соединения не удалось сохранить персистентно ([SWS_DM_00326], SWS Diagnostics §7.1.1.4 «Channel Notifications»). Вопрос Q-17d2270b31762c74 (открытый)
  • Чтобы после перезапуска можно было идентифицировать тот же канал, необходимо сохранить специфичные для соединения данные конечных точек, если не существует стабильного взаимно-однозначного отображения ([SWS_DM_00326]).

Этот использование указание было создано ИИ на основе спецификации.

Руководство разработчика реализации в подготовке (сложность 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#5220415c
Content hash
5220415c
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

функция 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: b5781ddbed6c Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Метод Start интерфейса apext::diag::uds_transport::UdsTransportProtocolHandler запускает обработку протокола плагина UDS-транспорта в Diagnostic Management (DM) согласно [SWS_DM_00322]. Он не принимает параметров и не возвращает значения. Выполнение спроектировано как асинхронное, чтобы DM мог параллельно запускать несколько экземпляров и тем самым сокращать время запуска всей системы ([SWS_DM_00322]). Поскольку сигнатура объявляет void, асинхронная обработка, вероятно, реализуется специфично для стека с помощью внутренних фоновых механизмов. Вопрос Q-d1023a05a1f3e2ab (открытый)

В отношении жизненного цикла (SWS Diagnostics §7.1.1.1 «Initialization, Starting and Stopping of a UDS TransportLayer», [SWS_DM_00329]) действуют строгие условия очередности:

  • Предусловия: перед вызовом инициализация через Initialize ([SWS_DM_00319]) обязательно должна быть завершена с результатом kInitializeOk ([SWS_DM_01746]). Если же инициализация возвращает kInitializeFailed, DM прерывает процесс и не должен вызывать Start ([SWS_DM_01745]).
  • Постусловия: только после состоявшегося вызова Start DM разрешено инициировать последующие функции, такие как Transmit или Stop, на обработчике ([SWS_DM_01743]). Кроме того, DM обрабатывает уведомления о ChannelReestablished ([SWS_DM_00313]) исключительно в том случае, если перед этим был выполнен Start ([SWS_DM_01744]), что имеет существенное значение, в частности, для сценариев ECU-Reset с повторным подключением ([SWS_DM_00326]).

Метод объявлен как noexcept и, следовательно, является бессбойным, однако явно специфицирован как непотокобезопасный (not thread-safe) ([SWS_DM_00322]). Поэтому вызывающие стороны должны гарантировать, что вызовы экземпляра осуществляются синхронизированно.

Данное указание по использованию было сгенерировано автоматически на основе данных спецификации.

Руководство разработчика реализации в подготовке (сложность 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#0fac2735
Content hash
0fac2735
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

функция 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().

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: e507b828b86b Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Метод Stop интерфейса apext::diag::uds_transport::UdsTransportProtocolHandler сигнализирует экземпляру транспортного протокола UDS о необходимости завершения работы [SWS_DM_00323]. Вызов инициируется Diagnostic Management (DM), как только он переходит в состояние ApplicationState.kTerminating [SWS_DM_00333]. Функция не принимает параметров, не имеет возвращаемого значения, объявлена как noexcept и специфицирована как исключениебезопасная (exception safe) [SWS_DM_00323].

Для контекста вызова и конкурентности действуют следующие условия:

  • Порядок вызова: Согласно жизненному циклу транспортного протокола DM разрешено вызывать метод Stop только после того, как экземпляр был предварительно введен в эксплуатацию с помощью Start [SWS_DM_01743] AUTOSAR_AP_SWS_Diagnostics §7.1.1.1 «Initialization, Starting and Stopping of a UDS TransportLayer» [SWS_DM_00329].
  • Конкурентность: Операция специфицирована как непотокобезопасная (not thread-safe) [SWS_DM_00323].
  • Ограничение вызовов: После возврата из Stop плагину обработчика запрещено вызывать дальнейшие методы у apext::diag::uds_transport::UdsTransportProtocolMgr, за единственным исключением подтверждения HandlerStopped [SWS_DM_01741] [SWS_DM_00323].

Взаимодействие с DM осуществляется асинхронно: после того как обработчик разорвал свои сетевые соединения и освободил ресурсы, он должен уведомить DM через apext::diag::uds_transport::UdsTransportProtocolMgr::HandlerStopped с передачей своего handlerId [SWS_DM_00314]. После вызова Stop DM обязательно ожидает этот callback подтверждения, прежде чем окончательно завершить процесс [SWS_DM_00340].

Этот текст был автоматически сгенерирован на основе спецификации AUTOSAR Adaptive R25-11.

Руководство разработчика реализации в подготовке (сложность 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#e8fde0cb
Content hash
e8fde0cb
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

функция 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 5022cdfe42a5 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Метод Transmit вызывается для отправки диагностического UDS-сообщения по специфическому каналу транспортного протокола в сеть ([SWS_DM_00327], SWS Diagnostics §7.1.1.3 «UDS message transmission on a UDS TransportLayer»). Он отображает сервис T_Data.req согласно ISO 14229-2 ([SWS_DM_00327]). Вызывающая сторона передает отправляемое сообщение как UdsMessageConstPtr в стиле владения unique_ptr, а также channelId, который должен соответствовать каналу ранее принятого запроса ([SWS_DM_00327], [SWS_DM_00348], SWS Diagnostics §7.1.1.4 «Channel Notifications»).

В отношении последовательности и жизненного цикла Diagnostic Manager имеет право вызывать Transmit только после того, как инициализация обработчика с помощью kInitializeOk была завершена ([SWS_DM_01746]) и был вызван метод Start ([SWS_DM_01743]). Поскольку операция специфицирована как not thread-safe и exception safe ([SWS_DM_00327]), координация параллельных задач отправки согласно интерпретации, вероятно, должна выполняться на стороне вызывающей стороны в Diagnostic Manager. Вопрос Q-6edd917928b60e55 (открытый)

Функция синхронно не возвращает значения. Обработчик транспорта обязан асинхронно возвратить указатель сообщения в Diagnostic Manager после передачи через apext::diag::uds_transport::UdsTransportProtocolMgr::TransmitConfirmation ([SWS_DM_00327], [SWS_DM_00312]). При успешной отправке на сетевом уровне возвращается результат kTransmitOk, в противном случае — kTransmitFailed ([SWS_DM_00351]).

Это указание по использованию основано на спецификации AUTOSAR Adaptive R25-11.

Руководство разработчика реализации в подготовке (сложность 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#a1a25c31
Content hash
a1a25c31
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

функция 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#ea107115
Content hash
ea107115
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

функция ~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#77ae9cf0
Content hash
77ae9cf0
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

Документация перечислений

перечисление 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#fcdcf406
Content hash
fcdcf406
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

Документация констант / переменных

переменная 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#9e996244
Content hash
9e996244
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