Sirve para proporcionar el estado de identificación de grupo DoIP a Diagnostic Manager.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: dea27beb11bbProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Sirve para proporcionar el estado de identificación de grupo DoIP a Diagnostic Manager.
La clase ara::diag::DoIPGroupIdentification sirve como interfaz abstracta para aplicaciones Adaptive con el fin de proporcionar a Diagnostic Management el estado actual de la identificación de grupo DoIP [SWS_DM_00724]. Tras la instanciación específica del puerto, la aplicación activa el reenvío de solicitudes mediante Offer() y lo finaliza antes de la destrucción del objeto mediante StopOffer()[SWS_DM_00725]. La instancia del manejador es única, no se puede copiar ni mover y responde a las consultas de forma asíncrona mediante un ara::core::Future.
Contexto
La clase ara::diag::DoIPGroupIdentification pone a disposición la interfaz funcional de Diagnostic Management (AUTOSAR AP SWS Diagnostics p. 73), a través de la cual una aplicación adaptativa proporciona el estado actual de identificación de grupo (estado GID) para el protocolo DoIP [SWS_DM_00724]. Dentro de la arquitectura de la plataforma, la clase actúa como intermediaria entre dos interlocutores principales: el demonio interno Diagnostic Management Daemon (DM), que procesa a través de la red mensajes estandarizados de identificación del vehículo y DoIP, y la implementación específica de la aplicación, que concreta el método virtual puro GetGidStatus(). La puesta a disposición y la recepción de solicitudes se controlan mediante ofertas explícitas de servicio [SWS_DM_00725].
Ciclo de vida
Una instancia de DoIPGroupIdentification representa un puerto de diagnóstico unívoco. Por este motivo, la clase está diseñada como un objeto gestionado de forma única: tanto el constructor de copia [SWS_DM_01641] y el constructor de movimiento [SWS_DM_01642] como los correspondientes operadores de asignación [SWS_DM_01639], [SWS_DM_01640] están explícitamente eliminados (=delete).
La creación se realiza obligatoriamente a través del constructor parametrizado, indicando un ara::core::InstanceSpecifier así como el modo de concurrencia ConcurrencyType[SWS_DM_00722]. El ciclo de vida se divide en las siguientes fases:
No ofrecido (Not Offered): tras la construcción, el objeto existe en el espacio de direcciones del proceso, pero todavía no recibe solicitudes del DM.
Ofrecido (Offered): mediante la llamada síncrona a Offer()[SWS_DM_00725], el manejador se activa en el DM, de modo que se reenvían las solicitudes entrantes de estado de DoIP.
Detenido (Stopped): la llamada a StopOffer()[SWS_DM_00726] retira la autorización de reenvío al DM y devuelve el objeto al estado inactivo.
La destrucción se realiza mediante el destructor virtual ~DoIPGroupIdentification()[SWS_DM_00723]. En lo relativo a la concurrencia, el constructor es seguro para subprocesos, mientras que Offer(), StopOffer() y el destructor no son seguros para subprocesos [SWS_DM_00722], [SWS_DM_00723], [SWS_DM_00725], [SWS_DM_00726]. La seguridad para subprocesos de la función de consulta GetGidStatus() se define de manera condicional por el ConcurrencyType seleccionado en el constructor [SWS_DM_00724]. Interpretación: el destructor presumiblemente finaliza de forma implícita los reenvíos en curso en caso de que no se haya invocado previamente StopOffer(). Pregunta Q-50d70fb679462321 (abierta)
Ruta de uso
El uso típico comprende la inicialización, la activación, el procesamiento asíncrono y la desactivación:
Una clase de diagnóstico concreta hereda de ara::diag::DoIPGroupIdentification e implementa el método GetGidStatus()[SWS_DM_00724].
La aplicación crea el objeto con el InstanceSpecifier del prototipo de puerto configurado y define si GetGidStatus() puede invocarse de manera concurrente (kConcurrent) o no (kNotConcurrent) [SWS_DM_00722].
Mediante Offer(), la aplicación activa el manejador para Diagnostic Management [SWS_DM_00725].
En cuanto llegan solicitudes DoIP, el DM invoca GetGidStatus(); la aplicación devuelve el estado GID de forma asíncrona mediante ara::core::Future<GidStatus>[SWS_DM_00724].
Antes de finalizar el servicio o apagar el componente, la aplicación invoca StopOffer()[SWS_DM_00726], seguido de la destrucción del objeto [SWS_DM_00723].
Al utilizar DoIPGroupIdentification, se definen condiciones de error en la fase de construcción e implementación:
Errores de modelo y de asignación (constructor): si la instanciación falla, se notifican infracciones estandarizadas [SWS_DM_00722]:
InstanceSpecifierMappingIntegrityViolation: el identificador no se puede resolver o no hace referencia a un prototipo de puerto.
PortInterfaceMappingViolation: el puerto referenciado no está tipificado como DiagnosticDoIPGroupIdentificationInterface.
ProcessMappingViolation: en el modelo no hay ningún proceso coincidente asignado al contexto de ejecución.
InstanceSpecifierAlreadyInUseViolation: el identificador de puerto especificado ya está siendo utilizado por otra instancia en el proceso en ejecución.
Error de puesta a disposición del servicio (Offer()): el método devuelve un ara::core::Result<void>. Si el servicio ya se ofreció con éxito para este manejador, la nueva llamada falla con el código de error DiagOfferErrc::kAlreadyOffered[SWS_DM_00725].
Error en la consulta de estado: la interfaz GetGidStatus() no especifica códigos de error estandarizados [SWS_DM_00724]; los errores internos de la aplicación deben representarse a través del objeto de resultado del future devuelto.
Esta guía se basa exclusivamente en la especificación AUTOSAR Adaptive 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 DiagnosticDoIpGroupIdentificationPortMapping needs to be typed by a DiagnosticDoIPGroupIdentificationInterface. 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 DiagnosticDoIPGroupIdentificationInterface.
concurrencyType
Specifies 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.
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: c580e08dd024Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
La función miembro sincrónica Offer de la clase ara::diag::DoIPGroupIdentification señaliza al Diagnostic Management (DM) que la Adaptive Application proveedora está lista y que las peticiones para la identificación de grupo DoIP pueden procesarse [SWS_DM_00725]. Solo tras esta llamada puede el DM solicitar el ID de grupo en caso necesario mediante el método GetGidStatus, siempre que no exista una configuración fija [SWS_DM_00813].
Con respecto al contexto de llamada y a la concurrencia, se aplican las siguientes condiciones:
Firma y semántica: La llamada se realiza sin parámetros y devuelve de forma síncrona un ara::core::Result<void>[SWS_DM_00725]. El método está declarado como noexcept y es seguro frente a excepciones (exception safe) [SWS_DM_00725].
Seguridad de subprocesos: La operación está especificada como no segura para subprocesos (not thread-safe) [SWS_DM_00725]. Las llamadas sobre la misma instancia no deben realizarse de forma no protegida desde subprocesos concurrentes.
En caso de error, el objeto resultante proporciona el código de error DiagOfferErrc::kAlreadyOffered con semántica de reversión (rollback), en caso de que el servicio ya se hubiera ofrecido para esta interfaz [SWS_DM_00725].
Mientras la aplicación aún no haya ejecutado Offer y el DM deba enviar una identificación de grupo DoIP, se aplica el comportamiento de reserva (fallback): el DM transmite como valor de GID bien 0x00 0x00 0x00 0x00 0x00 0x00 o bien 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF según ISO 13400-2 como indicación de «value not set» [SWS_DM_01527].
Esta nota de uso fue generada automáticamente a partir de la especificación de AUTOSAR.
This StopOffer will disable the forwarding of request messages from DM to this handler.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: da4bfe9455e6ProcedenciaPreguntas 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::DoIPGroupIdentification finaliza la puesta a disposición del handler y desactiva el reenvío de mensajes de solicitud entrantes (request messages) desde el Diagnostic Management (DM) a esta instancia [SWS_DM_00726].
Uso y tratamiento de errores
La operación declarada en la cabecera ara/diag/doip_group_identification.h posee la firma void StopOffer () noexcept;[SWS_DM_00726]. No recibe parámetros, no proporciona valor de retorno y se ejecuta de forma síncrona [SWS_DM_00726]. El método está especificado como seguro frente a excepciones (exception safe) y no lanza excepciones de C++; para este proceso no se contemplan códigos de error ni mensajes de error independientes [SWS_DM_00726].
Concurrencia y restricciones
En cuanto a la concurrencia, StopOffer está especificado explícitamente como no seguro para subprocesos (not thread-safe) [SWS_DM_00726]. Por lo tanto, es de suponer que las aplicaciones llamadoras deben asegurarse por sí mismas de que no se produzcan llamadas simultáneas sobre la misma instancia. Pregunta Q-3ac810ffb08cb197 (abierta)
Interacción
El módulo de diagnóstico utiliza el patrón StopOffer de manera uniforme a través de interfaces funcionales, por ejemplo en rutinas genéricas [SWS_DM_00558], el control de la comunicación [SWS_DM_00810] y servicios de autenticación [SWS_DM_01131]. Aunque las denominaciones se inspiran, de manera funcionalmente equivalente, en la gestión de servicios de ara::com, se trata de una implementación independiente de la arquitectura de diagnóstico AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors».
Esta nota de uso ha sido generada por una IA y se basa exclusivamente en la especificación AUTOSAR para R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán