DEENESPTFRRUARHIKOZHNL

clase ara::diag::UploadService

[SWS_DM_00794] Upstream: RS_Diag_04033

class UploadService {...};

Upload service interface.

Header-Datei#include "ara/diag/upload.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopenamespace ara::diag

Guía del usuarioGENERADO POR IA

Permite a la aplicación proporcionar datos de la unidad de control para cargas UDS a Diagnostic Management.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: e2e1ae703412 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Permite a la aplicación proporcionar datos de la unidad de control para cargas UDS a Diagnostic Management.

La clase ara::diag::UploadService sirve como interfaz de servicio del lado de la aplicación para proporcionar datos de la unidad de control para cargas de diagnóstico externas según UDS [SWS_DM_00797]. Tras una activación exitosa mediante Offer(), el manejador procesa de forma asíncrona las solicitudes sucesivas de inicio de carga, transferencia de bloques de datos y finalización de la transferencia [SWS_DM_00802]. La instancia de servicio no copiable admite tanto entregas de datos por bloques como la cancelación anticipada mediante un manejador de cancelación. El manejador responde a las solicitudes erróneas mediante códigos de retorno UDS negativos dentro de los futuros de respuesta asíncronos.

Contexto

La clase ara::diag::UploadService define la interfaz de servicio central para operaciones de carga de diagnóstico dentro de la AUTOSAR Adaptive Platform [SWS_DM_00797]. Actúa como manejador del lado de la aplicación para la lectura y provisión de datos internos del vehículo a equipos de prueba externos según el estándar de diagnóstico UDS (ISO 14229-1) [SWS_DM_00799].

En la arquitectura del sistema, ara::diag::UploadService interactúa fundamentalmente con dos partes: el cliente de diagnóstico externo (comprobador) y el demonio de diagnóstico de la plataforma Diagnostic Management (DM) [SWS_DM_00799], [SWS_DM_00802]. El DM recibe a nivel de protocolo las solicitudes de servicio UDS entrantes, tales como RequestUpload, TransferData y RequestTransferExit, las valida y reenvía las consultas funcionales al manejador registrado de la aplicación [SWS_DM_00799], [SWS_DM_00800], [SWS_DM_00801]. La instancia de la aplicación implementa los métodos virtuales de la interfaz para leer los bloques de datos propiamente dichos de la memoria y devolverlos [SWS_DM_00800].

uploadservice_kontext client Diagnose-Client (Tester) dm Diagnostic Management (DM) client->dm UDS RequestUpload / TransferData / RequestTransferExit dm->client UDS Response / NRC app ara::diag::UploadService (Applikation) dm->app RequestUpload() / UploadData() / RequestUploadExit() app->dm Offer() / StopOffer() app->dm Future-Ergebnisse / OperationOutput

Diagrama de contexto: integración del servicio de carga entre el cliente de diagnóstico, Diagnostic Management y el manejador de la aplicación. Fuentes: [SWS_DM_00797], [SWS_DM_00799], [SWS_DM_00802].

Ciclo de vida

Una instancia de ara::diag::UploadService se construye especificando un ara::core::InstanceSpecifier así como el comportamiento de concurrencia concurrencyType [SWS_DM_00797]. El especificador vincula la instancia con un prototipo de puerto modelado del tipo DiagnosticUploadInterface [SWS_DM_00797]. El constructor está especificado como seguro ante excepciones y seguro para hilos [SWS_DM_00797]. Para garantizar una asignación unívoca de la instancia de servicio, los constructores de copia y de movimiento, así como los operadores de asignación, están explícitamente eliminados [SWS_DM_01671], [SWS_DM_01672], [SWS_DM_01673], [SWS_DM_01674].

Tras la instanciación, el servicio se encuentra inicialmente en estado inactivo; el DM aún no reenvía ninguna solicitud. El reenvío se activa únicamente mediante la llamada explícita a Offer() [SWS_DM_00802]. A través de StopOffer() se puede volver a suspender el reenvío de solicitudes en cualquier momento [SWS_DM_00803]. Tanto Offer() como StopOffer() están definidos como no seguros para hilos y requieren sincronización externa en caso de llamadas desde múltiples hilos [SWS_DM_00802], [SWS_DM_00803].

La destrucción se realiza a través del destructor virtual ~UploadService(), el cual tampoco es seguro para hilos [SWS_DM_00798]. Por lo tanto, antes de liberar el objeto, el servicio debe desregistrarse debidamente mediante StopOffer() [SWS_DM_00803]. El ConcurrencyType configurado durante la construcción (kConcurrent o kNotConcurrent) determina si los métodos virtuales de procesamiento deben ejecutarse internamente de forma segura para hilos [SWS_DM_00797], [SWS_DM_00799].

Ruta de uso

El flujo regular de una sesión de carga se desarrolla en varios pasos sucesivos:

  1. Puesta a disposición del servicio: la aplicación inicializa el manejador y llama a Offer() para aceptar solicitudes de diagnóstico entrantes del DM [SWS_DM_00802].
  2. Solicitar carga (RequestUpload): si llega una solicitud UDS para iniciar la carga, el DM llama al método RequestUpload() [SWS_DM_00799]. El manejador comprueba el formato de datos, el formato de direccionamiento, así como la dirección y longitud de memoria (memoryAddressAndSize). El área de memoria transferida permanece válida hasta que se cumpla el ara::core::Future<void> devuelto o se cancele el proceso [SWS_DM_00799].
  3. Transferir bloques de datos (UploadData): tras una inicialización correcta, el comprobador envía solicitudes UDS TransferData. A continuación, el DM llama repetidamente a UploadData() [SWS_DM_00800]. La aplicación lee el bloque de datos solicitado y lo devuelve a través de un ara::core::Future<OperationOutput>; los bytes en OperationOutput.responseData se sitúan en la respuesta positiva detrás del contador de bloques [SWS_DM_00800]. Interpretación: es de suponer que el límite de búfer numBytesToReturn actúe aquí como tamaño máximo de chunk para el almacenamiento en búfer interno del DM, de modo que las áreas de memoria más extensas se segmenten secuencialmente a través de llamadas sucesivas. Pregunta Q-6ede2e3041d99294 (abierta)
  4. Finalizar transferencia (RequestUploadExit): para concluir, el DM llama a RequestUploadExit() y transfiere los parámetros de transferencia específicos del fabricante en transferRequestParameterRecord [SWS_DM_00801]. El manejador valida la finalización y devuelve parámetros de retorno opcionales en OperationOutput [SWS_DM_00801].
  5. Desactivar servicio: tras completarse todas las transacciones de carga o durante el apagado, la aplicación finaliza el reenvío con StopOffer() [SWS_DM_00803].

Durante toda la transferencia de datos, el manejador recibe un objeto CancellationHandler. A través de este se puede consultar activamente el estado de cancelación mediante IsCanceled() o registrar una retrollamada mediante SetNotifier() en caso de que el comprobador cancele prematuramente el diálogo [SWS_DM_00799], [SWS_DM_00800], [SWS_DM_00801].

Flujo de una carga de diagnósticoDMUploadServiceOffer()RequestUpload(dataFormat, addressAndLength, memoryAddressAndSize, metaInfo, cancelHandler)Future<void> cumplidoloopMientras haya más bloques de datos disponiblesUploadData(numBytesToReturn, metaInfo, cancelHandler)Future<OperationOutput> (responseData)RequestUploadExit(transferRequestParamRecord, metaInfo, cancelHandler)Future<OperationOutput>StopOffer()

Diagrama de secuencia: secuencia de interacción típica entre Diagnostic Management y UploadService durante una transacción de carga. Fuentes: [SWS_DM_00799], [SWS_DM_00800], [SWS_DM_00801], [SWS_DM_00802], [SWS_DM_00803].

Escenarios de error

Pueden producirse estados de error durante la construcción, durante la activación, así como durante el procesamiento real de los datos:

  • Infracciones de modelo y configuración: si la configuración no coincide con el modelo ARXML, se producen infracciones durante la llamada al constructor [SWS_DM_00797]. Entre estas se incluyen InstanceSpecifierMappingIntegrityViolation (el especificador no hace referencia a un PortPrototype), PortInterfaceMappingViolation (falta de vinculación a través de DiagnosticServiceGenericMapping), ProcessMappingViolation (sin coincidencia con el proceso modelado), así como InstanceSpecifierAlreadyInUseViolation (uso múltiple del mismo especificador dentro de un proceso) [SWS_DM_00797].
  • Activación múltiple del servicio: si se llama a Offer() mientras el servicio ya se está ofreciendo, la llamada falla y devuelve el código de error DiagOfferErrc::kAlreadyOffered en ara::core::Result<void> [SWS_DM_00802].
  • Respuestas de error UDS (Negative Response): si el manejador no puede atender técnicamente una solicitud en RequestUpload(), UploadData() o RequestUploadExit() (p. ej., direcciones de memoria no permitidas, errores de formato o contadores de secuencia no válidos), lo señaliza proporcionando un código de error de DiagUdsNrcErrc en el Future devuelto [SWS_DM_00799], [SWS_DM_00800], [SWS_DM_00801]. A continuación, el DM genera una respuesta negativa UDS (NRC) conforme al estándar hacia el equipo de prueba externo [SWS_DM_00799].

Esta guía se basa exclusivamente en la especificación AUTOSAR Adaptive Platform Release R25-11.

Mapa de miembros

Diagrama de clases

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

G nara__diag__UploadService152 UploadService + UploadService() + operator=() + ~UploadService() + Offer() + RequestUpload() + RequestUploadExit() + StopOffer() + UploadData()

Vista de detalle

Selecciona una entrada en el índice.

Constructores y destructor

UploadService función 3

Class for an UploadService.

Sobrecargas UploadService 3
explicit UploadService (const ara::core::InstanceSpecifier &specifier, ConcurrencyType concurrencyType) noexcept; SWS_DM_00797
UploadService (UploadService &)=delete; SWS_DM_01673
UploadService (UploadService &&) noexcept=delete; SWS_DM_01674

Destructor of class UploadService.

virtual ~UploadService () noexcept;

Métodos

Offer función

This Offer will enable the DM to forward request messages to this handler.

ara::core::Result< void > Offer () noexcept;
RequestUpload función

Called for RequestUpload.

virtual ara::core::Future< void > RequestUpload (std::uint8_t data FormatIdentifier, std::uint8_t addressAndLengthFormatIdentifier, ara::core::Span< const std::uint8_t > memoryAddressAndSize, const Meta Info &metaInfo, CancellationHandler cancellationHandler) noexcept=0;

Called for RequestTransferExit.

virtual ara::core::Future< OperationOutput > RequestUploadExit (ara::core::Span< const std::uint8_t > transferRequestParameterRecord, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept=0;
StopOffer función

This StopOffer will disable the forwarding of request messages from DM.

void StopOffer () noexcept;
UploadData función

Called for TransferData following a previous RequestUpload.

virtual ara::core::Future< OperationOutput > UploadData (std::size_t numBytesToReturn, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept=0;

Operadores

operator= función 2

UploadService shall be a single not assignable instance.

Sobrecargas = 2
UploadService & operator= (UploadService &)=delete; SWS_DM_01671
UploadService & operator= (UploadService &&)=delete; SWS_DM_01672

Tipos anidados

Documentación de los métodos

función Offer [SWS_DM_00802] Upstream: RS_AP_00119, RS_AP_00139, RS_Diag_04033

ara::core::Result< void > Offer () noexcept;

This Offer will enable the DM to forward request messages to this handler.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: dce89cbe34ef Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y semántica

La función miembro síncrona Offer de la clase ara::diag::UploadService ([SWS_DM_00802]) activa el reenvío de solicitudes de diagnóstico por parte del Diagnostic Management (DM) al handler registrado. La llamada no recibe parámetros y declara la seguridad frente a excepciones noexcept ([SWS_DM_00802]). Como tipo de retorno actúa ara::core::Result<void>, a través del cual se refleja la correcta puesta a disposición o un error producido ([SWS_DM_00802]).

Tratamiento de errores y concurrencia

  • Códigos de error: En caso de que el servicio ya se hubiera ofrecido con anterioridad, la ejecución falla con el código de error DiagOfferErrc::kAlreadyOffered ([SWS_DM_00802]); en este caso se aplica la semántica de reversión.
  • Seguridad frente a subprocesos: La función está especificada explícitamente como not thread-safe ([SWS_DM_00802]). Las llamadas concurrentes sobre la misma instancia del servicio deben sincronizarse en la aplicación.

Interacción en el subsistema de diagnóstico

La operación se integra en el patrón homogéneo de puesta a disposición de los handlers de diagnóstico adaptativos, tal como se utiliza, entre otros, en DownloadService ([SWS_DM_00792]) o GenericUDSService ([SWS_DM_00619]). Mientras no se haya producido la puesta a disposición, el DM no reenvía ningún mensaje de diagnóstico entrante al handler (cf. comportamientos análogos en [SWS_DM_01525]). Interpretación: La llamada a Offer suele producirse habitualmente durante la fase de inicialización de la aplicación, antes de que se acepte tráfico de diagnóstico. Pregunta Q-aba091d233b5e45b (abierta)

Esta nota de uso ha sido generada de forma automatizada a partir de la especificación R25-11 de AUTOSAR.

Guía del implementador pendiente (complejidad I1)

Header-Datei#include "ara/diag/upload.h"
Scopeclass ara::diag::UploadService
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
ara::core::Result< void >Returns nothing or an error.

Fehler

FehlercodeBeschreibung
DiagOfferErrc::kAlreadyOfferedrollback_semantics The service is already offered.

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

Record
AUTOSAR/AP/record/SWS_DM_00802
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00802@rel:R25-11#3d225b5b
Content hash
3d225b5b
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00802
Status: valid/unmigrated Version: rel:R25-11#bad97a1d 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_00802@rel:R25-11#bad97a1d
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#786c252c2026-09-30
  • R19-11rel:R19-11#3f54e3d62026-10-14
  • R20-11rel:R20-11#0298249e2026-10-14
  • R21-11rel:R21-11#13db1e2f2026-10-14
  • R22-11rel:R22-11#c89046b12026-10-14
  • R23-11rel:R23-11#5c26975d2026-10-14
  • R24-11rel:R24-11#27f9bbaf2026-10-14
  • R25-11rel:R25-11#bad97a1d2026-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

función RequestUpload [SWS_DM_00799] Upstream: RS_AP_00119, RS_AP_00138, RS_Diag_04033, RS_Diag_04170

virtual ara::core::Future< void > RequestUpload (std::uint8_t data FormatIdentifier, std::uint8_t addressAndLengthFormatIdentifier, ara::core::Span< const std::uint8_t > memoryAddressAndSize, const Meta Info &metaInfo, CancellationHandler cancellationHandler) noexcept=0;

Called for RequestUpload.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 657154fb4e5a Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

usar

El método RequestUpload de la clase de servicio ara::diag::UploadService es llamado por el Diagnostic Server para procesar una solicitud de diagnóstico entrante del servicio UDS 0x35 (RequestUpload) según ISO 14229-1 [SWS_DM_00134] [SWS_DM_00868] AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.17 «Service 0x35 – RequestUpload». La función acepta los siguientes parámetros [SWS_DM_00799]:

  • dataFormatIdentifier y addressAndLengthFormatIdentifier: Identificadores de formato UDS para datos, dirección de memoria y especificaciones de longitud.
  • memoryAddressAndSize: Un ara::core::Span con dirección y tamaño de memoria cuya validez está garantizada hasta el cumplimiento de la promise o la cancelación del procesamiento.
  • metaInfo: Metainformación sobre la petición de diagnóstico.
  • cancellationHandler: Sirve para consultar el estado de cancelación a través de cancellationHandler.IsCanceled y para registrar funciones de notificación mediante cancellationHandler.SetNotifier.

El procesamiento se realiza de forma asíncrona con el tipo de retorno ara::core::Future<void> [SWS_DM_00799].

Manejo de errores

En caso de error, el ara::core::Future proporciona un código de error NRC de UDS adecuado según ISO 14229-1 a través de DiagUdsNrcErrc, tras lo cual se produce una respuesta negativa [SWS_DM_00799]. En caso de respuesta positiva, el Diagnostic Manager notifica el evento de seguridad SEV_UDS_REQUEST_UP_DOWNLOAD_SUCCESSFUL al IdsM [SWS_DM_02031]; en caso de respuesta negativa, el evento SEV_UDS_REQUEST_UP_DOWNLOAD_FAILED [SWS_DM_02033].

Concurrencia e interacción

La función está declarada como noexcept y es segura frente a excepciones. El hecho de si el método debe implementarse de forma segura para hilos es condicional y se determina a través del ConcurrencyType pasado en el constructor [SWS_DM_00799].

Tras la confirmación exitosa de RequestUpload, la transferencia de datos de subida propiamente dicha se continúa en solicitudes posteriores del servicio UDS 0x36 (TransferData) a través de UploadData [SWS_DM_00800] [SWS_DM_01096].

Esta nota de uso ha sido generada por una inteligencia artificial sobre la base de la especificación AUTOSAR Adaptive R25-11.

Guía del implementador pendiente (complejidad I1)

Header-Datei#include "ara/diag/upload.h"
Scopeclass ara::diag::UploadService
Exception-Sicherheitexception safe
Thread-Sicherheitconditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor

Parameter (in)

ParameterBeschreibung
dataFormatIdentifierUDS dataFormat Identifier
addressAndLengthFormatIdentifierUDS addressAndLengthFormatIdentifier
memoryAddressAndSizememoryAddress and memorySize part of the request. Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to • Query the current cancellation status by calling cancellationHandler.IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise. • Register a notifier function by calling cancellationHandler.SetNotifier. The registered notifier is called if the current conversation is cancelled.

Rückgabewert

TypBeschreibung
ara::core::Future< void >A Result with either void (for a positive response message) or an UDS NRC value (for a negative response message).

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

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

Record
AUTOSAR/AP/record/SWS_DM_00799
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00799@rel:R25-11#935bcec8
Content hash
935bcec8
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00799
Status: valid/unmigrated Version: rel:R25-11#0b83de5a 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_00799@rel:R25-11#0b83de5a
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#8fbf8bca2026-09-30
  • R19-11rel:R19-11#33d5ee1b2026-10-14
  • R20-11rel:R20-11#d252b6b12026-10-14
  • R21-11rel:R21-11#ef0d46112026-10-14
  • R22-11rel:R22-11#2327d0512026-10-14
  • R23-11rel:R23-11#e790ec332026-10-14
  • R24-11rel:R24-11#32605e462026-10-14
  • R25-11rel:R25-11#0b83de5a2026-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

función RequestUploadExit [SWS_DM_00801] Upstream: RS_AP_00119, RS_AP_00138, RS_Diag_04033, RS_Diag_04170

virtual ara::core::Future< OperationOutput > RequestUploadExit (ara::core::Span< const std::uint8_t > transferRequestParameterRecord, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept=0;

Called for RequestTransferExit.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: c83d03772031 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y contexto de llamada

El método RequestUploadExit de la clase ara::diag::UploadService (SWS Diagnostics §8.27.1.1.3.3 «RequestUploadExit») es llamado por la instancia del servidor de diagnóstico cuando debe procesarse la finalización de una transferencia de datos a través del servicio UDS RequestTransferExit (0x37) [SWS_DM_00141], [SWS_DM_00801].

La interfaz acepta los siguientes parámetros [SWS_DM_00801]:

  • transferRequestParameterRecord: Contiene parámetros específicos del fabricante para dar soporte a la transferencia en formato ara::core::Span<const std::uint8_t>. Los datos permanecen válidos hasta que se cumpla la promise asociada o se cancele el procesamiento. Interpretación: Es probable que la evaluación de estos parámetros sirva primordialmente para validaciones específicas del fabricante al finalizar la subida. Pregunta Q-d3989837f58761d7 (abierta)
  • metaInfo: Pasa metainformación de la petición de diagnóstico actual.
  • cancellationHandler: Permite consultar el estado de cancelación a través de cancellationHandler.IsCanceled() o registrar una retrollamada de notificación mediante cancellationHandler.SetNotifier().

Valores de retorno y tratamiento de errores

La ejecución se realiza de forma asíncrona y devuelve un ara::core::Future<OperationOutput> [SWS_DM_00801]. En caso de éxito, el future se cumple con una instancia de OperationOutput. Los datos pasados en él procedentes de responseData se insertan como transferResponseParameterRecord en la respuesta de diagnóstico positiva tras el ID de servicio [SWS_DM_00796], [SWS_DM_00801]. En caso de error, el future debe completarse con un código de error adecuado de DiagUdsNrcErrc según ISO 14229-1 [SWS_DM_00801].

Concurrencia y restricciones

El método está especificado como noexcept [SWS_DM_00801]. El requisito relativo a la seguridad de hilos es condicional: si la función debe ejecutarse de forma segura para hilos se determina a través del ConcurrencyType pasado en el constructor de UploadService [SWS_DM_00801].

Esta nota de uso se basa en las especificaciones de AUTOSAR AP SWS Diagnostics R25-11.

Guía del implementador pendiente (complejidad I1)

Header-Datei#include "ara/diag/upload.h"
Scopeclass ara::diag::UploadService
Exception-Sicherheitexception safe
Thread-Sicherheitconditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor

Parameter (in)

ParameterBeschreibung
transferRequestParameterRecordThis parameter record contains parameter(s), which are required by the server to support the transfer of data. Format and length of this parameter(s) are vehicle manufacturer specific. Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to • Query the current cancellation status by calling cancellationHandler.IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise. • Register a notifier function by calling cancellationHandler.SetNotifier. The registered notifier is called if the current conversation is cancelled.

Rückgabewert

TypBeschreibung
ara::core::Future<OperationOutput >A Future, which either gets readied to OperationOutput (transfer ResponseParameterRecord for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (for an negative response message). Data in OperationOutput.responseData will be placed after SID as transferResponseParameterRecord in the positive response.

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

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

Record
AUTOSAR/AP/record/SWS_DM_00801
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00801@rel:R25-11#f88efbf0
Content hash
f88efbf0
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00801
Status: valid/unmigrated Version: rel:R25-11#f77c400c 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_00801@rel:R25-11#f77c400c
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#f103b5002026-09-30
  • R19-11rel:R19-11#6d772d5c2026-10-14
  • R20-11rel:R20-11#c9d5fd842026-10-14
  • R21-11rel:R21-11#6b59a7682026-10-14
  • R22-11rel:R22-11#1e7bc3b72026-10-14
  • R23-11rel:R23-11#7014682b2026-10-14
  • R24-11rel:R24-11#883ba93a2026-10-14
  • R25-11rel:R25-11#f77c400c2026-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

función StopOffer [SWS_DM_00803] Upstream: RS_Diag_04033

void StopOffer () noexcept;

This StopOffer will disable the forwarding of request messages from DM.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: e7cdc33ba5c7 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

usar

El método StopOffer() de la clase ara::diag::UploadService ([SWS_DM_00803], declarado en #include "ara/diag/upload.h") desactiva el reenvío de peticiones de diagnóstico entrantes desde Diagnostic Management (DM) al servicio de subida. La función posee la firma void StopOffer() noexcept;, no acepta parámetros y no proporciona ningún valor de retorno. La llamada se realiza de forma síncrona y finaliza de inmediato el reenvío de peticiones.

Manejo de errores

La operación está especificada como segura frente a excepciones (exception safe) y declarada con el identificador noexcept [SWS_DM_00803]. Por consiguiente, no se lanzan excepciones de C++. Para esta llamada no están previstos códigos de error ni mensajes de fallo específicos.

Concurrencia y restricciones

Según la especificación, StopOffer() no es seguro para subprocesos (not thread-safe) [SWS_DM_00803]. Por lo tanto, la Adaptive Application invocadora debe asegurarse por sí misma de que las llamadas en la misma instancia no se realicen de forma concurrente desde varios subprocesos sin sincronización externa. En cuanto al orden, el método debería llamarse típicamente solo tras un ofrecimiento previo del servicio, a fin de cancelar su registro de forma controlada. Pregunta Q-90ce659f307f54ca (abierta)

Interacción

La interfaz se alinea con el patrón de provisión uniforme del diagnóstico de AUTOSAR Adaptive, que prevé métodos independientes para la activación y desactivación de instancias de servicio AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors». El método constituye la contrapartida funcional de ara::diag::DownloadService::StopOffer ([SWS_DM_00793]), el cual está sujeto a los mismos requisitos aguas arriba. Además, existen funciones de desactivación análogas para otros componentes de diagnóstico, como rutinas genéricas ([SWS_DM_00558]), servicios UDS ([SWS_DM_00620]) e interfaces de autenticación ([SWS_DM_01131]).

Esta nota de uso se ha generado automáticamente a partir de la especificación AUTOSAR Adaptive R25-11.

Guía del implementador pendiente (complejidad I2)

Header-Datei#include "ara/diag/upload.h"
Scopeclass ara::diag::UploadService
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_00803
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00803@rel:R25-11#8f730861
Content hash
8f730861
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00803
Status: valid/unmigrated Version: rel:R25-11#8b63b743 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_00803@rel:R25-11#8b63b743
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#dd707d232026-09-30
  • R19-11rel:R19-11#68387f162026-10-14
  • R20-11rel:R20-11#0faa733b2026-10-14
  • R21-11rel:R21-11#3a7bf50e2026-10-14
  • R22-11rel:R22-11#413e742c2026-10-14
  • R23-11rel:R23-11#d3704b4a2026-10-14
  • R24-11rel:R24-11#376798192026-10-14
  • R25-11rel:R25-11#8b63b7432026-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

función UploadData [SWS_DM_00800] Upstream: RS_AP_00119, RS_AP_00138, RS_Diag_04033, RS_Diag_04170

virtual ara::core::Future< OperationOutput > UploadData (std::size_t numBytesToReturn, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept=0;

Called for TransferData following a previous RequestUpload.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 0748aa4db498 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Uso y contexto de llamada

El Diagnostic Server llama al método virtual puro UploadData de la interfaz ara::diag::UploadService para procesar el servicio UDS TransferData (0x36) tras una inicialización previa mediante RequestUpload (0x35) ([SWS_DM_00800], [SWS_DM_01096], AUTOSAR_AP_SWS_Diagnostics §7.3.2.8 «TransferData (0x36) upload processing»).

  • numBytesToReturn: Especifica la cantidad de bytes que el Diagnostic Manager (DM) puede admitir como máximo para este bloque de datos debido al tamaño de su búfer interno ([SWS_DM_00800]). Interpretación: Es de esperar que la aplicación restrinja estrictamente el tamaño de bloque a este valor límite. Pregunta Q-89de95e70e1e6223 (abierta)
  • metaInfo: Proporciona metainformación sobre la petición de diagnóstico entrante ([SWS_DM_00800]).
  • cancellationHandler: Sirve para supervisar conversaciones en curso vía cancellationHandler.IsCanceled(), así como para registrar notificaciones a través de cancellationHandler.SetNotifier() en caso de cancelación ([SWS_DM_00800]).

El retorno se realiza de forma asíncrona a través de ara::core::Future<OperationOutput> ([SWS_DM_00800]). En caso de éxito, los datos útiles proporcionados en OperationOutput.responseData ([SWS_DM_00796]) se ubican en la respuesta positiva directamente detrás del contador blockSequenceCounter como transferResponseParameterRecord ([SWS_DM_00800]).

Tratamiento de errores y validación

En caso de error, el future se resuelve con un código de error (NRC) adecuado según ISO 14229-1 procedente de DiagUdsNrcErrc ([SWS_DM_00800]). Aparte de las comprobaciones básicas de NRC según [SWS_DM_00101] y [SWS_DM_00103], el Diagnostic Manager no realiza ninguna otra validación del servicio; todas las demás comprobaciones de NRC requeridas deben ser implementadas por la propia aplicación llamada ([SWS_DM_01096]).

Concurrencia y seguridad de ejecución

La operación es segura ante excepciones (exception safe) ([SWS_DM_00800], AUTOSAR_AP_SWS_Diagnostics §8.27.1.1.3.5 «UploadData»). La seguridad frente a hilos es condicional: Si UploadData debe implementarse de forma segura frente a hilos se determina a través del ConcurrencyType pasado en el constructor de UploadService ([SWS_DM_00800]).

Esta nota de uso se creó de forma automatizada a partir de la especificación AUTOSAR R25-11.

Guía del implementador pendiente (complejidad I1)

Header-Datei#include "ara/diag/upload.h"
Scopeclass ara::diag::UploadService
Exception-Sicherheitexception safe
Thread-Sicherheitconditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor

Parameter (in)

ParameterBeschreibung
numBytesToReturnnumber of bytes DM accepts (due to its internal buffer) for this chunk.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to • Query the current cancellation status by calling cancellationHandler.IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise. • Register a notifier function by calling cancellationHandler.SetNotifier. The registered notifier is called if the current conversation is cancelled.

Rückgabewert

TypBeschreibung
ara::core::Future<OperationOutput >A Future, which either gets readied to OperationOutput (transfer ResponseParameterRecord for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (for a negative response message). Data in OperationOutput.responseData will be placed after block SequenceCounter as transferResponseParameterRecord in the positive response.

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

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

Record
AUTOSAR/AP/record/SWS_DM_00800
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00800@rel:R25-11#496a0cfb
Content hash
496a0cfb
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00800
Status: valid/unmigrated Version: rel:R25-11#4ee36ff3 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_00800@rel:R25-11#4ee36ff3
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#91b276562026-09-30
  • R19-11rel:R19-11#597f021f2026-10-14
  • R20-11rel:R20-11#07f442e92026-10-14
  • R21-11rel:R21-11#5d3267c42026-10-14
  • R22-11rel:R22-11#5ba2c4292026-10-14
  • R23-11rel:R23-11#96d3edad2026-10-14
  • R24-11rel:R24-11#512c5d2b2026-10-14
  • R25-11rel:R25-11#4ee36ff32026-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

función UploadService [SWS_DM_00797] Upstream: RS_AP_00137, RS_Diag_04033, RS_AP_00170, RS_AP_00171, RS_AP_00172, RS_AP_00173

explicit UploadService (const ara::core::InstanceSpecifier &specifier, ConcurrencyType concurrencyType) noexcept;

Class for an UploadService.

Header-Datei#include "ara/diag/upload.h"
Scopeclass ara::diag::UploadService
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe
Verletzungen (Violations)InstanceSpeci- InstanceSpecifier either cannot be resolved in the model in the fierMappingIn- context of your executable, or it refers to a model element other tegrityViolation than a PortPrototype. PortInterfaceMap- A PortPrototype that is typed by a pingViolation DiagnosticUploadInterface needs to be referenced by a DiagnosticServiceGenericMapping. ProcessMappingVio- Matching InstanceRef exists, but no matching (modelled) Process lation found that matches the (runtime) process. InstanceSpecifier- Violation message that is sent in case a constructor in the ara AlreadyInUseViola- framework was called with an InstanceSpecifier already in use in tion this process.

Parameter (in)

ParameterBeschreibung
specifierInstanceSpecifier to a PortPrototype of a DiagnosticUploadInterface.
concurrencyTypeSpecifies if the interface is implemented as thread safe ( kConcurrent) or non-thread safe (kNotConcurrent).

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

Record
AUTOSAR/AP/record/SWS_DM_00797
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00797@rel:R25-11#b4cebdbe
Content hash
b4cebdbe
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00797
Status: valid/unmigrated Version: rel:R25-11#e7e491fd 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_00797@rel:R25-11#e7e491fd
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#216dae2f2026-09-30
  • R19-11rel:R19-11#fcb841452026-10-14
  • R20-11rel:R20-11#c9f4cf932026-10-14
  • R21-11rel:R21-11#c9f4cf932026-10-14
  • R22-11rel:R22-11#a535d2f62026-10-14
  • R23-11rel:R23-11#b8c1cbe42026-10-14
  • R24-11rel:R24-11#fd0c15cb2026-10-14
  • R25-11rel:R25-11#e7e491fd2026-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

función UploadService [SWS_DM_01673] Upstream: RS_AP_00147

UploadService (UploadService &)=delete;

UploadService shall be a single not copy-able instance.

Header-Datei#include "ara/diag/upload.h"
Scopeclass ara::diag::UploadService

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

Record
AUTOSAR/AP/record/SWS_DM_01673
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01673@rel:R25-11#60e9965b
Content hash
60e9965b
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01673
Status: valid/unmigrated Version: rel:R25-11#138bf0fb 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_01673@rel:R25-11#138bf0fb
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#3ed52c152026-09-30
  • R23-11rel:R23-11#ee1fd89a2026-10-14
  • R24-11rel:R24-11#84b805742026-10-14
  • R25-11rel:R25-11#138bf0fb2026-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

función UploadService [SWS_DM_01674] Upstream: RS_AP_00147

UploadService (UploadService &&) noexcept=delete;

Move constructor of UploadService.

Header-Datei#include "ara/diag/upload.h"
Scopeclass ara::diag::UploadService

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

Record
AUTOSAR/AP/record/SWS_DM_01674
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01674@rel:R25-11#7b447f00
Content hash
7b447f00
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01674
Status: valid/unmigrated Version: rel:R25-11#1a0da022 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_01674@rel:R25-11#1a0da022
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#e66414f02026-09-30
  • R23-11rel:R23-11#ee76ef902026-10-14
  • R24-11rel:R24-11#1a0da0222026-10-14
  • R25-11rel:R25-11#1a0da0222026-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

función operator= [SWS_DM_01671] Upstream: RS_AP_00147

UploadService & operator= (UploadService &)=delete;

UploadService shall be a single not assignable instance.

Header-Datei#include "ara/diag/upload.h"
Scopeclass ara::diag::UploadService

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

Record
AUTOSAR/AP/record/SWS_DM_01671
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01671@rel:R25-11#bd3d742e
Content hash
bd3d742e
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01671
Status: valid/unmigrated Version: rel:R25-11#af20aa02 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_01671@rel:R25-11#af20aa02
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#297568772026-09-30
  • R23-11rel:R23-11#4f34cf602026-10-14
  • R24-11rel:R24-11#af20aa022026-10-14
  • R25-11rel:R25-11#af20aa022026-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

función operator= [SWS_DM_01672] Upstream: RS_AP_00147

UploadService & operator= (UploadService &&)=delete;

Move assignment operator of UploadService.

Header-Datei#include "ara/diag/upload.h"
Scopeclass ara::diag::UploadService

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

Record
AUTOSAR/AP/record/SWS_DM_01672
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01672@rel:R25-11#a819a1de
Content hash
a819a1de
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01672
Status: valid/unmigrated Version: rel:R25-11#8d230917 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_01672@rel:R25-11#8d230917
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#1ac3ee402026-09-30
  • R23-11rel:R23-11#77d3925b2026-10-14
  • R24-11rel:R24-11#8d2309172026-10-14
  • R25-11rel:R25-11#8d2309172026-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

función ~UploadService [SWS_DM_00798] Upstream: RS_AP_00134, RS_Diag_04033

virtual ~UploadService () noexcept;

Destructor of class UploadService.

Header-Datei#include "ara/diag/upload.h"
Scopeclass ara::diag::UploadService
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

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

Record
AUTOSAR/AP/record/SWS_DM_00798
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00798@rel:R25-11#88445205
Content hash
88445205
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00798
Status: valid/unmigrated Version: rel:R25-11#d8bb9189 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_00798@rel:R25-11#d8bb9189
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#66df81512026-09-30
  • R19-11rel:R19-11#b772d13d2026-10-14
  • R20-11rel:R20-11#4dbb305d2026-10-14
  • R21-11rel:R21-11#4dbb305d2026-10-14
  • R22-11rel:R22-11#0a6cc0fa2026-10-14
  • R23-11rel:R23-11#8d6c812b2026-10-14
  • R24-11rel:R24-11#978ec5a12026-10-14
  • R25-11rel:R25-11#d8bb91892026-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