Permite a las aplicaciones procesar y responder a solicitudes de operaciones SOVD genéricas del Diagnostic Manager.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 23f008b064deProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Permite a las aplicaciones procesar y responder a solicitudes de operaciones SOVD genéricas del Diagnostic Manager.
La clase base sirve para implementar manejadores de operaciones SOVD genéricas destinados a procesar solicitudes de ejecución en Diagnostic Management [SWS_DM_02203]. Tras la instanciación, la aplicación activa la recepción mediante Offer(), tras lo cual el Diagnostic Manager reenvía las solicitudes entrantes a través de la interfaz asíncrona StartExecution[SWS_DM_02174][SWS_DM_02210]. Los datos de contenido transferidos y el manejador de cancelación están estrictamente vinculados a la duración de la operación [SWS_DM_02210].
Contexto
La clase ara::diag::GenericDiagnosticSovdOperation proporciona una interfaz genérica para la ejecución de operaciones en el marco de ASAM SOVD (Service-Oriented Vehicle Diagnostics) [SWS_DM_02203]. Actúa como enlace entre la plataforma de diagnóstico y la implementación específica de la aplicación de rutinas o acciones de diagnóstico. Cuando un cliente SOVD externo solicita la ejecución de una operación, la instancia de Diagnostic Server proporciona el método SOVD correspondiente AUTOSAR_AP_SWS_Diagnostics §7.3.3.5.5.5 «Operations – Start execution of an operation»[SWS_DM_01396]. Una vez completada con éxito la autorización o la verificación de un Proximity Challenge requerido, el Diagnostic Manager (DM) reenvía la llamada al método StartExecution de la instancia de manejador registrada [SWS_DM_02174].
Ciclo de vida
La creación de una instancia se realiza mediante el constructor indicando un ara::core::InstanceSpecifier que apunta a un PortPrototype, así como un tipo de concurrencia (ConcurrencyType) [SWS_DM_02204]. Dado que el constructor de movimiento [SWS_DM_02206] y el operador de asignación por movimiento [SWS_DM_02207] están declarados como protected, la clase está concebida como clase base para manejadores derivados específicos de la aplicación. Tras la instanciación, el objeto se encuentra en estado inactivo y no acepta solicitudes. Mediante Offer() se activa el reenvío de solicitudes por parte del Diagnostic Manager [SWS_DM_02211]. Con StopOffer() se puede volver a desactivar este reenvío [SWS_DM_02212]. Al destruir la instancia, el destructor virtual garantiza una limpieza adecuada [SWS_DM_02205]. El constructor, el destructor y las operaciones de movimiento están especificados como seguros para subprocesos, mientras que Offer() y StopOffer() no son seguros para subprocesos y típicamente deberían invocarse durante la fase de inicialización o de parada (shutdown) del proceso.
El flujo regular comprende la oferta del manejador, la recepción de solicitudes de operaciones, así como la provisión asíncrona de la respuesta:
Ofrecer servicio: la aplicación invoca Offer(), con lo cual se autoriza al Diagnostic Manager a reenviar las solicitudes SOVD entrantes al objeto [SWS_DM_02211].
Inicio de la operación: tras la llegada del método SOVD y la superación correcta de la prueba del Proximity Challenge, el DM invoca el método puramente virtual StartExecution[SWS_DM_02174][SWS_DM_02210]. En este proceso se transfieren el nombre de la operación SOVD (sovd_operation_name), datos útiles (sovd_content_data), metainformación (meta_info) y un CancellationHandler[SWS_DM_02210].
Devolución del resultado: el método devuelve un ara::core::Future que contiene bien una respuesta síncrona (StartSynchronousExecutionResponse) o bien una respuesta asíncrona (StartAsynchronousExecutionResponse) [SWS_DM_02210]. En una operación síncrona, el DM toma los datos del resultado para generar el cuerpo de respuesta SOVD [SWS_DM_02176].
Finalizar el servicio: antes de la destrucción del objeto, la aplicación finaliza el reenvío mediante StopOffer()[SWS_DM_02212].
Al utilizar la interfaz pueden producirse errores tanto administrativos como específicos del protocolo:
Ya ofrecido: una nueva llamada a Offer() sobre una instancia ya ofrecida falla con el código de error DiagOfferErrc::kAlreadyOffered[SWS_DM_02211].
Error de SOVD: si la ejecución de la operación falla, se debe devolver en ara::core::Future el correspondiente código de respuesta negativa conforme a ISO 17978-3 o ASAM SOVD 1.1 [SWS_DM_02210].
Cancelación: a través del objeto transferido cancellation_handler se notifica a la aplicación en caso de que se cancele la solicitud en curso. La especificación prohíbe expresamente almacenar este manejador o acceder a él más allá de la vida útil de la operación en curso [SWS_DM_02210]. Además, los datos de entrada transferidos en sovd_content_data solo permanecen válidos hasta que se cumpla la promise asociada o se cancele el procesamiento [SWS_DM_02210].
Esta guía se basa exclusivamente en la especificación AUTOSAR Adaptive Platform R25-11 (módulo diag) y ha sido elaborada de forma automática.
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: e7a3d094ee66ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El método Offer de la clase ara::diag::GenericDiagnosticSovdOperation habilita el reenvío de solicitudes de diagnóstico y de servicio entrantes desde el Diagnostic Management (DM) al manejador correspondiente [SWS_DM_02211]. La función no recibe parámetros, declara noexcept y devuelve un ara::core::Result<void>[SWS_DM_02211]. Interpretación: dado que no se devuelve ningún ara::core::Future, la activación del reenvío probablemente se complete de forma síncrona durante la invocación del método. Pregunta Q-d9213a2118672440 (abierta)
En cuanto al tratamiento de errores, la interfaz garantiza la semántica de reversión (rollback) [SWS_DM_02211]. Si el servicio ya se había ofrecido con anterioridad para esta instancia del manejador, la llamada falla y devuelve el código de error DiagOfferErrc::kAlreadyOffered[SWS_DM_02211]. Este estado de error corresponde al patrón de error definido en dominios de error de diagnóstico para registros múltiples [SWS_DM_00514].
Para la concurrencia y el contexto de invocación se aplican las siguientes restricciones:
Seguridad para hilos: la operación está especificada como not thread-safe, pero exception safe[SWS_DM_02211]. Las llamadas paralelas sobre la misma instancia del manejador deben sincronizarse del lado de la aplicación.
Orden de estados:Offer debe invocarse antes del reenvío de solicitudes [SWS_DM_02211]. Una nueva llamada sin una revocación intermedia produce un error.
En el sistema global, Offer sigue el patrón de provisión uniforme del Adaptive Diagnostic Management, tal como se define también de manera análoga para rutinas genéricas [SWS_DM_00557], servicios UDS [SWS_DM_00619] o controles de comunicación [SWS_DM_00809]. Este principio está diseñado específicamente para ara::diag y no debe confundirse con la provisión de servicios en ara::com (SWS Diagnostics §7.3.4.1.2 «Monitors»).
Este texto ha sido generado por una IA sobre la base de la especificación AUTOSAR R25-11.
sovd_operation_name: nombre de la operación SOVD que se va a ejecutar [SWS_DM_02210].
sovd_content_data: datos de entrada de la operación, que permanecen válidos hasta que se cumpla la promesa correspondiente o se cancele el procesamiento a través del manejador de cancelación [SWS_DM_02210].
meta_info: metainformación adicional sobre el contexto de diagnóstico [SWS_DM_02210].
cancellation_handler: notifica una cancelación de la solicitud en curso; este objeto no debe almacenarse ni referenciarse más allá de la vida útil de la operación [SWS_DM_02210].
Como valor de retorno, la función proporciona un ara::core::Future con una ara::core::Variant de StartSynchronousExecutionResponse o StartAsynchronousExecutionResponse[SWS_DM_02210]. En caso de ejecución síncrona, el Diagnostic Management establece los parámetros en el cuerpo de respuesta SOVD a partir de los datos de contenido de la respuesta [SWS_DM_02176]. En caso de procesamiento asíncrono, el Diagnostic Management asigna un identificador único (id) para identificar la operación en curso y establece el estado de ejecución [SWS_DM_02177].
A future with either StartSynchronousExecutionResponse or StartAsynchronousExecutionResponse(for a positive response message) or a SOVD Error (for an negative response message)
Fehler
Fehlercode
Beschreibung
Please use an applicable SOVD error code, as defined in ISO 17978-3 / ASAM SOVD 1.1.
Request a governed re-review of this record. The record is not changed immediately.
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: ab28d5476140ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El método StopOffer de la clase ara::diag::GenericDiagnosticSovdOperation del encabezado ara/diag/generic_diagnostic_sovd_operation.h sirve para desactivar el reenvío de mensajes de solicitud entrantes desde el Diagnostic Management (DM) hacia la operación [SWS_DM_02212].
Uso y semántica: la función posee la firma void StopOffer() noexcept;, no recibe parámetros y no devuelve ningún valor de retorno [SWS_DM_02212]. Dado que no se definen tipos de retorno asíncronos como futuros o callbacks, la desactivación probablemente surta efecto de forma síncrona e inmediata durante la llamada. Pregunta Q-b0723617991a4e39 (abierta) Está declarada como segura contra excepciones (exception safe) [SWS_DM_02212].
Concurrencia y tratamiento de errores: la interfaz está especificada como no segura para hilos (not thread-safe) [SWS_DM_02212]. Por tanto, los accesos paralelos a una misma instancia deben sincronizarse a nivel de usuario. No se devuelven códigos de error ni se generan mensajes específicos de DET o DEM [SWS_DM_02212].
Interacción:StopOffer sigue el patrón estandarizado de proveedor de servicios de AUTOSAR Adaptive Diag. Existen métodos análogos para otras interfaces de diagnóstico, tales como rutinas genéricas [SWS_DM_00558], servicios UDS genéricos [SWS_DM_00620], identificadores de datos [SWS_DM_00639] o servicios de descarga [SWS_DM_00793]. Aunque el nombre se inspira en ara::com, se trata de una implementación de diagnóstico independiente AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors».
Este texto ha sido elaborado por una IA y sirve de guía orientativa basada en la especificación AUTOSAR.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán