Sirve como interfaz genérica para la lectura y escritura de datos de diagnóstico SOVD del lado de la aplicación.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: e0fb00ce3377ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Sirve como interfaz genérica para la lectura y escritura de datos de diagnóstico SOVD del lado de la aplicación.
La clase ara::diag::GenericDiagnosticSovdContent proporciona una interfaz genérica para que las aplicaciones adaptativas vinculen recursos SOVD en el sistema AUTOSAR [SWS_DM_02186]. Tras la instanciación, la aplicación activa la recepción de solicitudes de diagnóstico a través de Offer(), tras lo cual Diagnostic Management reenvía los accesos entrantes de lectura y escritura de forma asíncrona a Read() y Write()[SWS_DM_02193]. Antes de la finalización, la provisión debe desactivarse mediante StopOffer(), mientras que los accesos en curso deben respetar el manejador de cancelación proporcionado.
Contexto
La clase ara::diag::GenericDiagnosticSovdContent proporciona la interfaz de programación genérica a través de la cual las aplicaciones adaptativas ofrecen y procesan recursos de datos para el diagnóstico de vehículos orientado a servicios (SOVD) conforme a ASAM SOVD [SWS_DM_02186]. En un escenario de diagnóstico típico intervienen tres componentes fundamentales: el cliente SOVD externo, Diagnostic Management (DM) y el manejador específico de aplicación de la aplicación adaptativa.
Los datos SOVD se estructuran a través de DiagnosticSovdContent, el cual consta de uno o varios elementos de tipo DiagnosticSovdContentElementSWS Diagnostics §7.3.3.3 «Definition of SOVD data». El DM recurre a la interfaz ara::diag::GenericDiagnosticSovdContent para ejecutar solicitudes de lectura o escritura de los contenidos completos aplicando las reglas de conversión de datos prescritas SWS Diagnostics §7.3.3.3 «Definition of SOVD data».
Diagrama de contexto: integración de GenericDiagnosticSovdContent entre el cliente SOVD externo, Diagnostic Management y el manejador específico de la aplicación. Fuentes: [SWS_DM_01431], [SWS_DM_01432], [SWS_DM_02186].
Ciclo de vida
La instanciación se lleva a cabo mediante el constructor indicando un ara::core::InstanceSpecifier, que hace referencia a un PortPrototype de un DiagnosticDataIdentifierGenericInterface, así como un modo de concurrencia de tipo SovdContentConcurrencyType[SWS_DM_02187]. La clase está diseñada para ser segura para hilos y segura ante excepciones [SWS_DM_02187].
El constructor de movimiento y el operador de asignación por movimiento están definidos con visibilidad protegida (protected) [SWS_DM_02189], [SWS_DM_02190]. Interpretación: la declaración protegida sugiere que las instancias se implementan como jerarquías de clases derivadas y que se pretende evitar el movimiento directo desde el exterior. Pregunta Q-57d60744ffc54899 (abierta) Para la liberación existe un destructor virtual [SWS_DM_02188].
Tras la construcción, la instancia se encuentra en estado de no provisión. Solo mediante la llamada a Offer() se autoriza al DM a reenviar solicitudes de diagnóstico entrantes a la instancia [SWS_DM_02193]. Antes del apagado o al finalizar el servicio, se revoca de nuevo el reenvío a través de StopOffer()[SWS_DM_02194].
Ruta de uso
El flujo regular abarca la habilitación del servicio, la recepción de solicitudes asíncronas y la cancelación final del registro:
La aplicación instancia su implementación de GenericDiagnosticSovdContent y se registra ante el DM mediante Offer()[SWS_DM_02193].
Si el DM recibe una solicitud de lectura del cliente («Read a data resource from an Entity»), llama al método Read()[SWS_DM_01432], [SWS_DM_02191]. El método devuelve un ara::core::Future<DiagnosticSovdContentData>, el cual proporciona los datos abstractos de contenido o bien un error de SOVD [SWS_DM_02191]. A partir de estos datos, el DM conforma la respuesta SOVD [SWS_DM_01432], [SWS_DM_02164], [SWS_DM_02165].
Si el DM recibe una solicitud de escritura («Write a data resource from an Entity»), la delega al manejador mediante Write()[SWS_DM_01431], [SWS_DM_02166], [SWS_DM_02192]. Los datos permanecen válidos hasta que se satisfaga el Promise correspondiente o se cancele el proceso [SWS_DM_02192].
Para concluir el procesamiento, la aplicación invoca StopOffer()[SWS_DM_02194].
Diagrama de secuencia: flujo de registro del servicio, consulta de lectura asíncrona y finalización del servicio. Fuentes: [SWS_DM_01432], [SWS_DM_02191], [SWS_DM_02193], [SWS_DM_02194].
Escenarios de error
Si se llama a Offer() cuando el servicio ya se está ofreciendo, la operación falla con el código de error DiagOfferErrc::kAlreadyOffered[SWS_DM_02193].
Si se producen errores específicos de la aplicación durante la determinación de datos en Read() o durante la escritura en Write(), el ara::core::Future devuelto se satisface con el correspondiente error de SOVD [SWS_DM_02191], [SWS_DM_02192], tras lo cual el DM transmite una respuesta negativa de SOVD al cliente.
Adicionalmente se transfiere a ambas llamadas un ara::diag::CancellationHandler, el cual señaliza si la operación se cancela anticipadamente [SWS_DM_02191], [SWS_DM_02192]. Este manejador no debe guardarse ni llamarse más allá de la vida útil de la operación [SWS_DM_02191], [SWS_DM_02192].
Esta guía se basa exclusivamente en las indicaciones de la especificación AUTOSAR Adaptive Platform Release R25-11.
This Offer will enable the DM to forward request messages to this handler.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 5a32b6fc61beProcedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
usar
El método ara::diag::GenericDiagnosticSovdContent::Offer habilita al Diagnostic Management (DM) para reenviar mensajes de solicitud (request messages) entrantes a la instancia del manejador [SWS_DM_02193]. La invocación se realiza de forma síncrona, no recibe parámetros y señaliza el resultado a través del tipo de retorno ara::core::Result<void>[SWS_DM_02193]. Un resultado positivo confirma el registro exitoso del servicio en el DM [SWS_DM_02193].
Manejo de errores
Si el registro falla, el método devuelve un ara::core::Result con un código de error [SWS_DM_02193]:
DiagOfferErrc::kAlreadyOffered: se produce cuando el servicio ya se ha ofrecido previamente; en este caso se aplica la semántica de reversión (rollback) [SWS_DM_02193]. Este código de error se corresponde con el estado de diagnóstico general kAlreadyOffered en DiagErrc[SWS_DM_00514] así como con DiagReportingErrc[SWS_DM_00560].
Concurrencia y restricciones
La función está especificada como noexcept y exception safe[SWS_DM_02193]. Además, está clasificada explícitamente como thread-safe[SWS_DM_02193]. Esto distingue a GenericDiagnosticSovdContent::Offer de forma determinante de la mayoría de los demás métodos Offer del DM, tales como GenericRoutine::Offer[SWS_DM_00557], GenericUDSService::Offer[SWS_DM_00619] o CommunicationControl::Offer[SWS_DM_00809], los cuales están declarados respectivamente como not thread-safe.
Interacción
La provisión mediante Offer es el requisito necesario para que el DM pueda reenviar solicitudes a la aplicación [SWS_DM_02193]. Mientras no se haya llevado a cabo la provisión, el DM no puede atender solicitudes a la interfaz, lo cual corresponde al principio general de provisión en el Diagnostic Management de AUTOSAR [SWS_DM_01525], [SWS_DM_01527]. La nomenclatura sigue el patrón establecido en el DM, seleccionado de forma análoga a los servicios de monitor AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors».
Esta nota de uso se basa en la especificación AUTOSAR Adaptive Platform Release R25-11.
Called for "Read Single Data Value request" for the specified SOVD Content.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: e27f0077c84cProcedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Uso y semántica de llamada
El método virtual puro Read de la clase ara::diag::GenericDiagnosticSovdContent sirve para procesar solicitudes del tipo «Read Single Data Value» para el contenido SOVD especificado [SWS_DM_02191]. En la llamada por parte del Diagnostic Manager se transfieren el identificador del contenido sovd_content_name, información de diagnóstico relativa al contexto mediante meta_info y un cancellation_handler[SWS_DM_02191]. A través del cancellation_handler, la aplicación puede verificar si la solicitud en curso ha sido cancelada; esta instancia no debe almacenarse ni referenciarse más allá de la vida útil de la operación [SWS_DM_02191]. La provisión de los datos se realiza de forma asíncrona a través del valor de retorno ara::core::Future<DiagnosticSovdContentData>, el cual, en caso de éxito, encapsula los datos abstractos del contenido SOVD [SWS_DM_02191].
Manejo de errores
El método está especificado como noexcept y exception safe, de modo que los errores producidos no deben notificarse mediante excepciones de C++ [SWS_DM_02191]. En su lugar, en caso de error se devuelve un SOVD Error correspondiente a través del ara::core::Future, el cual se traduce en un mensaje de respuesta negativo [SWS_DM_02191]. Si la aplicación aún no ofrece la interfaz, o ha dejado de ofrecerla mediante offer(), el Diagnostic Manager responde a las solicitudes de servicio entrantes con el código de respuesta negativa NRC 0x94 (ResourceTemporarilyNotAvailable) [SWS_DM_01257].
Concurrencia e interacción
La función de interfaz está definida como thread-safe[SWS_DM_02191]. Si el Diagnostic Manager puede invocar accesos de lectura y escritura de forma simultánea se determina mediante la variable de configuración readWrite en la estructura ara::diag::SovdContentConcurrencyType[SWS_DM_02185]. Solo si esta se establece en kConcurrent, las llamadas a Read y Write se realizan de forma concurrente, mientras que el valor predeterminado kNotConcurrent excluye los accesos simultáneos [SWS_DM_02185].
Este texto ha sido generado por una IA a partir de la especificación AUTOSAR R25-11.
This StopOffer will disable the forwarding of request messages from DM.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: a2e6fc88edb0ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El método ara::diag::GenericDiagnosticSovdContent::StopOffer finaliza la provisión del contenido de diagnóstico frente al Diagnostic Management (DM) e impide el reenvío de mensajes de solicitud entrantes a partir de la llamada [SWS_DM_02194]. La función requiere el archivo de cabecera ara/diag/generic_diagnostic_sovd_content.h, no espera parámetros y no proporciona ningún valor de retorno [SWS_DM_02194].
En cuanto al tratamiento de errores, la operación está declarada como noexcept y se considera completamente segura contra excepciones (exception safe) [SWS_DM_02194]. No se transmiten ni códigos de error ni estados de retorno; el diseño de la API no contempla un fallo de la invocación.
En el ámbito de la concurrencia, el método destaca por estar especificado explícitamente como seguro para hilos (thread-safe) [SWS_DM_02194]. Esto representa una particularidad esencial en comparación con muchas otras interfaces de diagnóstico en las que StopOffer se define como no seguro para hilos, como por ejemplo en GenericUDSService[SWS_DM_00620], GenericRoutine[SWS_DM_00558] o CommunicationControl[SWS_DM_00810].
El esquema de nombres y de comportamiento sigue el patrón general de AUTOSAR para los mecanismos Offer y StopOffer destinados al control del flujo de mensajes entre el DM y los manejadores de la aplicación AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors». Interpretación: la invocación se realizaría típicamente antes de la destrucción del objeto manejador o en caso de no disponibilidad temporal del servicio SOVD, con el fin de evitar de forma fiable solicitudes huérfanas. Pregunta Q-5a2db04b82fed06b (abierta)
Esta nota de uso se ha generado de forma automatizada sobre la base de la especificación AUTOSAR Adaptive R25-11.
Called for "Write a Data Value" request for the specified SOVD Content.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 545b938dce05Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El Diagnostic Management (DM) invoca el método [SWS_DM_02192] de la clase ara::diag::GenericDiagnosticSovdContent tan pronto como se recibe el método «Write a data resource» para un elemento de diagnóstico a través de ASAM SOVD [SWS_DM_02166]. La provisión de esta operación de escritura es opcional y presupone la presencia de la configuración DiagnosticSovdData.DiagnosticSovdMethod.put[SWS_DM_01431].
Al invocarlo, el DM pasa los siguientes parámetros [SWS_DM_02192]:
sovd_content_name: nombre del contenido SOVD direccionado.
sovd_abstract_content_data: los datos útiles abstractos (DiagnosticSovdContentData), compuestos por el nombre del elemento y el valor convertido [SWS_DM_02166]. Estos datos permanecen válidos hasta que se cumpla la promesa o se cancele el procesamiento a través del manejador de cancelación.
meta_info: metainformación adicional sobre el contexto de la solicitud.
cancellation_handler: sirve para detectar una cancelación de la operación en curso y no debe almacenarse ni referenciarse más allá de la vida útil de la función.
La función está especificada como noexcept, se considera segura contra excepciones y devuelve un ara::core::Future<void>, el cual transmite void en caso de éxito o un error de SOVD en caso de respuesta negativa [SWS_DM_02192]. El método está declarado como seguro para hilos [SWS_DM_02192]; el parámetro readWrite en ara::diag::SovdContentConcurrencyType regula si el DM puede ejecutar métodos de lectura y escritura de forma concurrente [SWS_DM_02185].
Este texto ha sido generado por una IA a partir de la especificación AUTOSAR R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán