Sirve para la transmisión y gestión del estado de una línea de activación DoIP al Diagnostic Manager.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: f91d71d289e3ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Sirve para la transmisión y gestión del estado de una línea de activación DoIP al Diagnostic Manager.
La clase ara::diag::DoIPActivationLine permite a una aplicación proporcionar el estado de una línea de activación DoIP y transmitir modificaciones al Diagnostic Manager [SWS_DM_00830]. Tras la instanciación basada en puertos, el servicio se activa mediante Offer(), tras lo cual el DM consulta el estado de la línea y el ID de red y recibe los cambios de estado a través de UpdateActivationLineState()[SWS_DM_00834]. Como condición de contorno fundamental, la interfaz de red asociada debe estar configurada en el modelo como dependiente de la línea de activación [SWS_DM_00833].
Contexto
La clase ara::diag::DoIPActivationLine representa la interfaz DiagnosticDoIPActivationLineInterface conforme a [SWS_DM_00830]. Permite a una Adaptive Application (AA) notificar y proporcionar el estado físico o lógico de una línea de activación DoIP al Diagnostic Manager (DM). A través de esta línea de activación, una aplicación controla indirectamente el envío de mensajes de anuncio de vehículo DoIP (Vehicle Announcement Messages), tal como se especifica en AUTOSAR_AP_SWS_Diagnostics, p. 107, sin desencadenar explícitamente el envío por sí misma.
En la interacción intervienen esencialmente tres componentes: la Adaptive Application implementadora, la instancia de ara::diag::DoIPActivationLine como interfaz de servicio y el Diagnostic Manager del sistema base. Si el DM detecta a través de esta interfaz un cambio de estado de la línea de activación, notifica a las interfaces de red dependientes e inicia secuencias DoIP estandarizadas [SWS_DM_00816].
Una instancia de ara::diag::DoIPActivationLine se crea mediante un ara::core::InstanceSpecifier que referencia a un PortPrototype[SWS_DM_00831]. La clase representa una instancia única: los constructores de copia y movimiento, así como los operadores de asignación por copia y por movimiento están eliminados (=delete), con lo cual queda excluido un movimiento o duplicación ([SWS_DM_01631], [SWS_DM_01632], [SWS_DM_01633], [SWS_DM_01634]).
Tras la instanciación, el objeto se encuentra en el estado «no ofrecido». Mediante la llamada a Offer() se activa la provisión, de modo que el DM pueda escuchar los cambios de estado de la línea de activación [SWS_DM_00836]. Mediante StopOffer() se desactiva de nuevo esta provisión [SWS_DM_00837]. El destructor virtual está declarado como destructor por defecto y libera los recursos [SWS_DM_00832]. Respecto a la concurrencia, el constructor [SWS_DM_00831] y las consultas de solo lectura GetActivationLineState()[SWS_DM_00835] y GetNetworkInterfaceId()[SWS_DM_00833] están implementados de forma segura para hilos, mientras que Offer()[SWS_DM_00836], StopOffer()[SWS_DM_00837] y UpdateActivationLineState()[SWS_DM_00834] no son seguros para hilos.
Ruta de uso
El flujo regular comprende la derivación y el registro de una clase específica de la aplicación, así como la transmisión continua de estados:
Instanciación: la Adaptive Application instancia la clase derivada especificando el InstanceSpecifier adecuado [SWS_DM_00831].
Ofrecer servicio: la aplicación invoca Offer() para habilitar la interfaz para el DM [SWS_DM_00836].
Consulta de red e inicial: el DM determina a través del método virtual puro GetNetworkInterfaceId() el ID de interfaz asociado [SWS_DM_00833] y consulta con GetActivationLineState() el estado actual de la línea [SWS_DM_00835]. Ambos métodos devuelven un ara::core::Future.
Actualización de estado: si cambia el estado físico de la línea (p. ej., cambio de nivel en una línea de hardware), la aplicación informa al DM de forma síncrona a través de UpdateActivationLineState()[SWS_DM_00834]. Esto hace que el DM ejecute acciones consecutivas, tales como notificaciones de estado a interfaces de red [SWS_DM_00816].
Finalización: antes del apagado o en caso de desactivación, la aplicación invoca StopOffer()[SWS_DM_00837].
Al utilizar ara::diag::DoIPActivationLine pueden producirse errores funcionales y de configuración:
Violaciones de modelo y de puerto durante la creación: el constructor comprueba la validez del InstanceSpecifier[SWS_DM_00831]. Si falla la resolución, se desencadenan notificaciones de violación estandarizadas: InstanceSpecifierMappingIntegrityViolation (elemento de modelo no válido), PortInterfaceMappingViolation (puerto no tipificado mediante DiagnosticDoIPActivationLineInterface), ProcessMappingViolation (falta de referencia al proceso) o InstanceSpecifierAlreadyInUseViolation (especificador ya asignado dentro del proceso).
Oferta múltiple: si se invoca Offer() mientras el servicio ya se está ofreciendo, la operación falla con el código de error DiagOfferErrc::kAlreadyOffered[SWS_DM_00836].
Inconsistencia de configuración de la interfaz de red: si la aplicación notifica mediante GetNetworkInterfaceId() un ID de interfaz cuyo DoIpNetworkConfiguration asociado posee la propiedad isActivationLineDependent = 'FALSE', según la especificación esto se considera explícitamente un error de configuración grave [SWS_DM_00833].
Seguridad frente a excepciones: mientras que el constructor, los métodos getter, Offer(), StopOffer() y el destructor están especificados como seguros frente a excepciones (exception safe), UpdateActivationLineState() se define explícitamente como no seguro frente a excepciones (not exception safe) [SWS_DM_00834]. Por lo tanto, los errores dentro de esta llamada deben ser gestionados cuidadosamente por la aplicación llamadora.
Esta guía se basa exclusivamente en las prescripciones de especificación de AUTOSAR AP Release R25-11.
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 referenced by a pingViolation DiagnosticDoIpActivationLinePortMapping needs to be typed by a DiagnosticDoIPActivationLineInterface. 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)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticDoIPActivationLineInterface
Request a governed re-review of this record. The record is not changed immediately.
network interface id for which this activation line is responsible.
Fehler
Fehlercode
Beschreibung
This function does not specify any standardized errors.
Hinweise: If the reported DoIpNetworkConfiguration.networkInterfaceId belongs to a DoIpNetworkConfiguration with property isActivationLineDependent = ’FALSE’, this is an error!
Request a governed re-review of this record. The record is not changed immediately.
This Offer will enable the DM to listen to activation line state changes.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 3534ff4305bfProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El método síncrono Offer de la clase ara::diag::DoIPActivationLine ([SWS_DM_00836], archivo de cabecera #include "ara/diag/doip_activationline.h") capacita a Diagnostic Management (DM) para detectar cambios de estado en la línea de activación. La operación no posee parámetros de entrada y notifica el resultado a través del tipo de retorno ara::core::Result<void>.
Tan pronto como la interfaz se ha puesto a disposición mediante Offer, el DM supervisa la línea de activación. Si el DM detecta una transición al estado «active», inicia el envío de mensajes de anuncio de vehículo (Vehicle Announcement Messages) según ISO 13400-2 en las interfaces de red pertinentes ([SWS_DM_00816], AUTOSAR_AP_SWS_Diagnostics §[SWS_DM_00816] p. 106). Interpretación: la llamada a Offer probablemente debería realizarse típicamente en la fase de inicialización de la aplicación para que los cambios de estado se detecten a tiempo. Pregunta Q-254ced2fd3a1e3d2 (abierta)
En caso de error, se devuelve el código de error correspondiente en Result. Si el método se invoca repetidamente para la misma instancia mientras el servicio ya se está ofreciendo, devuelve el código de error DiagOfferErrc::kAlreadyOffered con semántica de reversión ([SWS_DM_00836]).
En lo relativo a la concurrencia, el método está especificado como no seguro para subprocesos (not thread-safe) ([SWS_DM_00836]). Por lo tanto, las llamadas simultáneas sobre la misma instancia deben sincronizarse en el lado de la aplicación. Gracias a la declaración como noexcept, la función es totalmente exception-safe ([SWS_DM_00836]).
Esta nota de uso se basa en la especificación AUTOSAR Adaptive Platform Release R25-11.
This StopOffer will disable the provision of activation line state to DM.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 668b8f5f37f2ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El método ara::diag::DoIPActivationLine::StopOffer finaliza la provisión del estado de la línea de activación DoIP (Activation Line) respecto al Diagnostic Management (DM) conforme a [SWS_DM_00837].
La función posee la signatura void StopOffer() noexcept y se ejecuta de forma síncrona sobre una instancia de ara::diag::DoIPActivationLine (AUTOSAR_AP_SWS_Diagnostics §5 «Overview»). No toma ningún parámetro y no devuelve ningún valor de retorno. Mediante la llamada se desactiva la transmisión activa de cambios de estado de la línea de activación al Diagnostic Manager.
Respecto al tratamiento de errores, el método está especificado como exception safe y garantiza a través de noexcept que no se lanzan excepciones ([SWS_DM_00837]). Dado que la operación es not thread-safe según la especificación, las llamadas sobre la misma instancia no deben realizarse de forma concurrente sin protección desde varios hilos; los accesos paralelos requieren obligatoriamente una sincronización del lado de la aplicación.
El patrón de diseño sigue la nomenclatura establecida en la Adaptive Platform para la provisión de servicios (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors»). Mientras que StopOffer en clases DoIP afines como ara::diag::DoIPGroupIdentification ([SWS_DM_00726]) o ara::diag::DoIPPowerMode ([SWS_DM_00736]) desactiva el reenvío de solicitudes DM entrantes, aquí detiene específicamente la notificación del estado de la línea de activación al DM. Interpretación: Para un flujo operativo consistente, se asume probablemente como requisito previo que antes de llamar a StopOffer ya se haya iniciado activamente una provisión a través de la misma instancia. Pregunta Q-c5d38151ef8198e7 (abierta)
Esta nota de uso fue generada por una IA basada en la especificación AUTOSAR R25-11.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: becd58166c09ProcedenciaPreguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El método UpdateActivationLineState de la clase ara::diag::DoIPActivationLine sirve para transmitir el estado actual de la línea de activación DoIP al módulo adaptativo Diagnostic Management [SWS_DM_00834] (AUTOSAR_AP_SWS_Diagnostics §8.32.1.1.3.5). La declaración se proporciona a través del archivo de cabecera ara/diag/doip_activationline.h.
Uso y parámetros:
Parámetro: El parámetro de transferencia booleano activation_line_state señala al sistema si la línea de activación está activa (TRUE) o inactiva (FALSE) [SWS_DM_00834].
Valor de retorno: La operación no posee ningún valor de retorno (void) y funciona de forma síncrona.
Concurrencia y restricciones:
Seguridad frente a hilos: La función está especificada explícitamente como not thread-safe[SWS_DM_00834]. Interpretación: Las llamadas en la misma instancia de DoIPActivationLine deben ser sincronizadas por la aplicación llamante para evitar conflictos de datos. Pregunta Q-d1c43b8ffc4bdcff (abierta)
Tratamiento de errores: El método está declarado como not exception safe[SWS_DM_00834]. No se definen códigos de error ni excepciones específicos; la aplicación llamante por regla general no debería poder capturar excepciones. Pregunta Q-394304b9d771cf69 (abierta)
Este texto fue generado por una IA a partir de la especificación.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán