Proporciona a Diagnostic Management el modo de energía DoIP actual del vehículo a través de una interfaz de callback.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: afa4b2f1975cProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Proporciona a Diagnostic Management el modo de energía DoIP actual del vehículo a través de una interfaz de callback.
La clase de interfaz ara::diag::DoIPPowerMode permite a las aplicaciones proporcionar el modo de energía DoIP actual a Diagnostic Management a través de la función de callback GetDoIPPowerMode()[SWS_DM_00734]. Tras la instanciación, el manejador debe activarse mediante Offer() y desregistrarse nuevamente mediante StopOffer() antes de su destrucción [SWS_DM_00735], [SWS_DM_00736]. Al ser una instancia única, la clase no se puede copiar ni mover [SWS_DM_01645].
Contexto
La clase abstracta ara::diag::DoIPPowerMode define la interfaz para proporcionar el modo de energía DoIP actual a Diagnostic Management (DM). En arquitecturas de vehículos que utilizan diagnóstico sobre el protocolo de Internet (DoIP), el protocolo de comunicación debe estar informado sobre el estado operativo de la red del vehículo o el suministro de tensión. El software de aplicación deriva una clase de manejador concreta a partir de ara::diag::DoIPPowerMode e implementa la consulta del modo de energía [SWS_DM_00734]. Los interlocutores son la aplicación de diagnóstico proveedora, que ofrece la interfaz, y el sistema de tiempo de ejecución de DM, que delega las solicitudes entrantes en este manejador [SWS_DM_00735].
Ciclo de vida
Las instancias de ara::diag::DoIPPowerMode se crean internamente en la aplicación y se identifican mediante un prototipo de puerto al que hace referencia un ara::core::InstanceSpecifier[SWS_DM_00732]. Al llamar al constructor, el argumento ConcurrencyType determina si el método de callback GetDoIPPowerMode() debe ejecutarse de forma segura para subprocesos (kConcurrent) o no segura para subprocesos (kNotConcurrent) [SWS_DM_00732]. El constructor en sí está diseñado de forma segura para subprocesos [SWS_DM_00732].
Según la especificación, se trata de una instancia que no se puede copiar ni mover: tanto el constructor de copia [SWS_DM_01645] como el constructor de movimiento [SWS_DM_01646], así como los correspondientes operadores de asignación [SWS_DM_01643], [SWS_DM_01644], están explícitamente eliminados (=delete).
Tras la instanciación, el manejador debe activarse a través de Offer() para que DM pueda reenviar las solicitudes [SWS_DM_00735]. Para finalizar el reenvío de solicitudes, se llama a StopOffer()[SWS_DM_00736]. El destructor virtual ~DoIPPowerMode()[SWS_DM_00733], así como Offer() y StopOffer(), están especificados como no seguros para subprocesos. Presumiblemente, siempre debería ejecutarse StopOffer() antes de llamar al destructor para desconectar adecuadamente las interacciones pendientes con DM. Pregunta Q-85ede935aa303c45 (abierta)
Ruta de uso
El uso típico de ara::diag::DoIPPowerMode sigue una secuencia fija de inicialización, registro del servicio, consulta de modo cíclica o basada en eventos y desregistro:
La aplicación instancia su clase derivada con el InstanceSpecifier adecuado y el ConcurrencyType deseado [SWS_DM_00732].
La aplicación registra activamente el manejador en Diagnostic Management mediante Offer()[SWS_DM_00735].
Tan pronto como el protocolo DoIP requiere el estado, DM llama a la función virtual pura GetDoIPPowerMode()[SWS_DM_00734]. La implementación devuelve un ara::core::Future<PowerModeType>, que se resuelve de forma asíncrona [SWS_DM_00734].
Al finalizar el funcionamiento, la aplicación llama a StopOffer() para no aceptar más solicitudes [SWS_DM_00736].
La instancia se libera a través del destructor [SWS_DM_00733].
Al llamar al constructor pueden producirse infracciones de modelo y de asignación que están documentadas [SWS_DM_00732]:
InstanceSpecifierMappingIntegrityViolation: el identificador no se puede resolver en el contexto del ejecutable o no hace referencia a un elemento PortPrototype [SWS_DM_00732].
PortInterfaceMappingViolation: el PortPrototype referenciado no está tipificado mediante un DiagnosticDoIPPowerModeInterface[SWS_DM_00732].
ProcessMappingViolation: existe una referencia de instancia, pero ningún proceso modelado adecuado para el entorno de tiempo de ejecución [SWS_DM_00732].
InstanceSpecifierAlreadyInUseViolation: el InstanceSpecifier ya se ha utilizado para otra instancia dentro del mismo proceso [SWS_DM_00732].
Si se llama a Offer() mientras el servicio ya se está ofreciendo activamente, el método devuelve el código de error DiagOfferErrc::kAlreadyOffered a través de ara::core::Result[SWS_DM_00735]. En cambio, el método GetDoIPPowerMode() no define códigos de error estandarizados [SWS_DM_00734].
Esta guía se basa en la especificación AUTOSAR para la Adaptive Platform (versión R25-11). Todos los datos y códigos de error se basan en los requisitos SWS referenciados.
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 DiagnosticDoIpPowerModePortMapping needs to be typed by a DiagnosticDoIPPowerModeInterface. 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 DiagnosticDoIPPowerModeInterface
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: 5f8fb75036b6Procedencia
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::DoIPPowerMode sirve para que una Adaptive Application registre y habilite el servicio para el DoIP-Power-Mode en Diagnostic Management (DM) [SWS_DM_00735]. La llamada permite al DM reenviar mensajes de solicitud entrantes a este gestor [SWS_DM_00735]. La función no espera parámetros de transferencia, no lanza excepciones (noexcept) y devuelve como valor de retorno un ara::core::Result<void>[SWS_DM_00735].
Mientras la aplicación proveedora aún no haya llamado a Offer, el DM responde a las solicitudes de clientes de información sobre DoIP-Power-Mode con el valor de estado 0 («Not ready») conforme a ISO 13400-2 [SWS_DM_01525]. Si el gestor está registrado y el DM necesita el Power-Mode actual para responder a mensajes DoIP, lo consulta a través de ara::diag::DoIPPowerMode::GetDoIPPowerMode[SWS_DM_00814].
En caso de error, el objeto Result contiene un código de error correspondiente. Si el método ya se había llamado previamente con éxito en la instancia en cuestión, una nueva llamada falla y devuelve DiagOfferErrc::kAlreadyOffered con semántica de reversión [SWS_DM_00735].
En cuanto a la concurrencia, la función está especificada como no segura para subprocesos (not thread-safe) [SWS_DM_00735]. Por lo tanto, las llamadas paralelas sobre la misma instancia deben ser sincronizadas por quien realiza la llamada. La función ofrece seguridad completa frente a excepciones (exception safe) [SWS_DM_00735].
Esta nota de uso fue generada por una IA y se basa en las especificaciones de la versión R25-11 de AUTOSAR.
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: 2a0861404a22ProcedenciaPreguntas 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::DoIPPowerMode desactiva el reenvío de mensajes entrantes de petición de diagnóstico por parte de Diagnostic Management (DM) al manejador [SWS_DM_00736]. La función se proporciona a través del archivo de cabecera ara/diag/doip_power_mode.h, no posee valor de retorno y no acepta parámetros [SWS_DM_00736].
Para el comportamiento ante errores y el entorno de ejecución aplican los siguientes detalles de especificación:
Seguridad ante excepciones: La función está declarada como noexcept y definida como segura ante excepciones (exception safe) [SWS_DM_00736]. No se lanzan excepciones ni se devuelven códigos de error.
Seguridad frente a hilos: La operación está especificada como no segura frente a hilos (not thread-safe) [SWS_DM_00736]. Interpretación: Si el método se llama en escenarios multihilo o en paralelo con otras operaciones de la instancia, es de esperar que sea necesaria una sincronización externa por parte de la aplicación. Pregunta Q-1593f08472d584d1 (abierta)
El patrón de provisión con Offer y StopOffer está concebido de manera uniforme en Diagnostic Management AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors». La detención del reenvío de peticiones de DM mediante StopOffer se utiliza de forma análoga en otros componentes de diagnóstico, como por ejemplo en ara::diag::DoIPGroupIdentification[SWS_DM_00726], ara::diag::DoIPActivationLine[SWS_DM_00837], ara::diag::GenericUDSService[SWS_DM_00620], ara::diag::DownloadService[SWS_DM_00793] y ara::diag::Authentication[SWS_DM_01131].
Esta nota de uso se ha generado automáticamente a partir de la especificación AUTOSAR R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán