Permite la monitorización de canales de diagnóstico activos, así como el control de la sesión de diagnóstico y del nivel de seguridad.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 1824b6dbecd2ProcedenciaPreguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Permite la monitorización de canales de diagnóstico activos, así como el control de la sesión de diagnóstico y del nivel de seguridad.
La clase ara::diag::Conversation representa un canal de comunicación de diagnóstico para la monitorización del estado de actividad, la sesión de diagnóstico y el nivel de seguridad, así como para el restablecimiento a la sesión estándar [SWS_DM_00692][SWS_DM_00701]. Las aplicaciones obtienen instancias exclusivamente como referencias a través de funciones estáticas de búsqueda, ya que las instanciaciones propias, así como las operaciones de copia y movimiento, están eliminadas [SWS_DM_02090]. Mientras que las consultas de estado de lectura pueden ejecutarse de forma segura para hilos (thread-safe), los registros de retrollamada (callback) y el restablecimiento de la sesión requieren sincronización externa.
Contexto
La clase ara::diag::Conversation representa la interfaz hacia un canal de comunicación entre un comprobador de diagnóstico externo y la Adaptive Platform SWS Diagnostics §8.2 «Conversation». Sirve de enlace entre la aplicación y el Diagnostic Management (DM) interno para realizar el seguimiento y controlar las actividades de diagnóstico en curso. A través de sus instancias, las aplicaciones adaptativas obtienen visibilidad sobre el estado actual de la conexión [SWS_DM_00694], la sesión de diagnóstico activa [SWS_DM_00696], el nivel de seguridad [SWS_DM_00698], así como las características de identificación del canal [SWS_DM_00700].
Las instancias de ara::diag::Conversation son instanciadas y gestionadas por completo por el demonio de Diagnostic Management. Se excluye una creación, copia o movimiento manual por parte de la aplicación: tanto el constructor de copia [SWS_DM_02090] y el constructor de movimiento [SWS_DM_02092] como los operadores de asignación [SWS_DM_02091][SWS_DM_02093] están eliminados (=delete). Por lo tanto, es probable que la vida útil de los objetos referenciados esté vinculada directamente al estado de ejecución del subsistema de diagnóstico. Pregunta Q-f8deca481d5b76e1 (abierta)
El acceso a las instancias existentes se realiza exclusivamente a través de funciones estáticas de consulta. Con GetAllConversations() se pueden obtener referencias a todas las conexiones configuradas [SWS_DM_00782], mientras que GetCurrentActiveConversations() proporciona una lista de todos los canales actualmente activos cuyo estado de actividad corresponde a kActive[SWS_DM_00783]. Además, mediante GetConversation(metaInfo) se puede resolver una conexión específica a partir de los metadatos de una solicitud de diagnóstico en curso [SWS_DM_00692].
Con respecto a la concurrencia, todos los accesos de lectura al estado y a los identificadores están especificados como seguros para hilos (thread-safe) [SWS_DM_00694][SWS_DM_00696][SWS_DM_00698]. Por el contrario, el registro de callbacks de notificación, así como el restablecimiento de la sesión, se consideran no seguros para hilos (not thread-safe) [SWS_DM_00695][SWS_DM_00701] y requieren sincronización por parte de la aplicación.
Ruta de uso
Un caso de uso típico comprende la obtención de la conexión, el registro de funciones de notificación y la monitorización o manipulación dirigida del estado de la sesión:
Obtener la referencia: ante una solicitud de diagnóstico entrante, la instancia correspondiente se obtiene mediante GetConversation(metaInfo)[SWS_DM_00692].
Configurar la monitorización de estado: a través de los métodos de registro SetActivityNotifier()[SWS_DM_00695][SWS_DM_02126], SetDiagnosticSessionNotifier()[SWS_DM_00697][SWS_DM_02127] y SetSecurityLevelNotifier()[SWS_DM_00699][SWS_DM_02128] se notifica a la aplicación en caso de cambios. Una invocación reiterada sobrescribe el callback registrado previamente.
Consultar el estado: el estado actual se puede determinar de forma síncrona con GetDiagnosticSession()[SWS_DM_00696] o GetDiagnosticSecurityLevel()[SWS_DM_00698]. Mediante GetDiagnosticSessionShortName()[SWS_DM_00707] y GetDiagnosticSecurityLevelShortName()[SWS_DM_00708] los enums pueden resolverse en identificadores cortos legibles.
Restablecer la sesión: si la lógica requiere una interrupción o una reversión al estado básico, ResetToDefaultSession() devuelve el canal a la sesión estándar [SWS_DM_00701].
Los métodos de ara::diag::Conversation señalan errores mediante ara::core::Result. Si la funcionalidad básica del Diagnostic Management no está disponible temporalmente, GetConversation(), GetActivityStatus(), GetDiagnosticSession(), GetDiagnosticSecurityLevel() y GetConversationIdentifier() fallan con el código de error DiagErrc::kServiceNotAvailable[SWS_DM_00692][SWS_DM_00694][SWS_DM_00696][SWS_DM_00698][SWS_DM_00700]. Las invocaciones siguen en este caso la semántica de reversión (rollback) y quedan sin efectos secundarios.
En las funciones de conversión de cadenas GetDiagnosticSessionShortName()[SWS_DM_00707] y GetDiagnosticSecurityLevelShortName()[SWS_DM_00708], el paso de un valor de enumeración desconocido o no válido provoca el error DiagErrc::kInvalidArgument. Para los métodos de registro de notificadores así como para ResetToDefaultSession() no hay códigos de error estandarizados definidos en la especificación [SWS_DM_00701].
Esta guía se basa exclusivamente en la especificación AUTOSAR Adaptive R25-11.
Register a notifier function which is called if the activity is changed. A consecutive call of this method will overwrite the previous registered notifier.
Register a notifier function which is called if the Session is changed. A consecutive call of this method will overwrite the previous registered notifier.
Register a notifier function which is called if the SecurityLevel is changed. A consecutive call of this method will overwrite the previous registered notifier.
Represents the current active diagnostic SecurityLevel of an active conversation.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: a38bce94acc6ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
usar
El método GetDiagnosticSecurityLevel de la clase ara::diag::Conversation sirve para determinar de forma síncrona el nivel de seguridad actualmente activo de una conversación de diagnóstico (AUTOSAR_AP_SWS_Diagnostics §8.9.3.2.2.6 «GetDiagnosticSecurityLevel», [SWS_DM_00698]). Se proporciona a través del encabezado #include "ara/diag/conversation.h", no recibe parámetros de entrada y está declarado con el especificador noexcept.
Como tipo de retorno, la función proporciona un ara::core::Result<SecurityLevelType>. En caso de éxito, este objeto contiene directamente el valor de enumeración del estado de seguridad actual de la conexión activa [SWS_DM_00698].
Tratamiento de errores y concurrencia
Si la consulta falla, el método devuelve un ara::core::Result con el código de error DiagErrc::kServiceNotAvailable[SWS_DM_00698]. Esto señala, aplicando la semántica de reversión (rollback), que las funciones esenciales del Diagnostic Management (DM) no están disponibles en el momento de la llamada. Con respecto a la seguridad de ejecución, GetDiagnosticSecurityLevel está clasificado como thread-safe y exception-safe [SWS_DM_00698], lo que permite llamadas concurrentes desde diferentes subprocesos.
Interacción
Interpretación: Por lo general, es de esperar que se realice una llamada antes de ejecutar actividades de diagnóstico protegidas, con el fin de cotejar la presencia del nivel de autorización requerido. Pregunta Q-8c056d4c5199524d (abierta) Para su posterior procesamiento o salida de diagnóstico, el SecurityLevelType determinado se puede traducir a través del método GetDiagnosticSecurityLevelShortName (AUTOSAR_AP_SWS_Diagnostics §8.9.3.2.2.7 «GetDiagnosticSecurityLevelShortName», [SWS_DM_00708]) en el nombre corto simbólico correspondiente (shortName como ara::core::StringView).
Esta nota de uso se creó automáticamente a partir de la especificación AUTOSAR Adaptive R25-11.
Converts the given diagnostic SecurityLevel into the ShortName.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 384b6d7f7a21ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
usar
El método síncrono ara::diag::Conversation::GetDiagnosticSecurityLevelShortName de la cabecera ara/diag/conversation.h resuelve un nivel de seguridad pasado de tipo SecurityLevelType en el identificador del nombre corto configurado (DiagnosticSecurityLevel.shortName) [SWS_DM_00708]. La llamada devuelve el resultado como ara::core::Result<ara::core::StringView>.
Manejo de errores
En caso de error, la función devuelve el código de error DiagErrc::kInvalidArgument[SWS_DM_00708]. La instancia del Diagnostic Server valida el valor del parámetro en función de dos condiciones:
Si se pasa como argumento securityLevel el estado bloqueado kLocked, el Diagnostic Server debe devolver obligatoriamente kInvalidArgument[SWS_DM_01259].
Si el valor pasado no coincide con ninguna entrada configurada según el cálculo ((DiagnosticSecurityAccess.requestSeedId + 1) / 2) en el DiagnosticContributionSet, la llamada también falla con kInvalidArgument[SWS_DM_01260].
Concurrencia y restricciones
El método está declarado como noexcept, así como especificado como seguro ante excepciones (exception safe) y seguro frente a hilos (thread-safe) [SWS_DM_00708]. Debido a la seguridad frente a hilos especificada, es de esperar que la llamada sea segura incluso durante actividades de diagnóstico concurrentes sin sincronización por mutex en la aplicación. Pregunta Q-b851a473c2d836b7 (abierta) Antes de acceder a la cadena de caracteres referenciada, la aplicación debe comprobar si el ara::core::Result contiene un error.
Esta nota de uso se creó de forma automatizada. Todas las evidencias proceden de las especificaciones de la plataforma AUTOSAR Adaptive para el release R25-11.
Method to reset the current session to default session.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 040cba85c191ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El método ara::diag::Conversation::ResetToDefaultSession permite a una Adaptive Application restablecer explícitamente una conversación de diagnóstico a la sesión por defecto (Default Session) [SWS_DM_00701].
usar
La llamada se realiza sin parámetros en una instancia de ara::diag::Conversation a través del archivo de cabecera #include "ara/diag/conversation.h"[SWS_DM_00701]. Cuando se llama al método, la instancia del Diagnostic Server finaliza en primer lugar la solicitud en curso y solo después cambia la sesión de diagnóstico de la conversación a la Default Session [SWS_DM_00842].
Tratamiento de errores y concurrencia
Valor de retorno y errores: La función devuelve un ara::core::Result<void>[SWS_DM_00701]. No hay predefinidos códigos de error estandarizados; interpretación: Los posibles errores en el Result probablemente reflejen problemas específicos del fabricante en la tramitación del encargo por parte del Diagnostic Server. Pregunta Q-9f780f4ef7991bf4 (abierta)
Seguridad de hilos: La función es segura frente a excepciones (noexcept), pero está especificada como no segura para hilos (not thread-safe) [SWS_DM_00701]. Por tanto, las llamadas paralelas sobre el mismo objeto de conversación deben ser coordinadas por la aplicación llamadora.
Interacción
El método complementa el carácter informativo de la interfaz de conversación con un control de estados específico AUTOSAR_AP_SWS_Diagnostics §7 «Diagnostic Conversation Interface». Garantiza que las peticiones de diagnóstico existentes concluyan de forma ordenada antes de que se modifique el estado de la conversación [SWS_DM_00842].
Esta nota de uso se ha generado de forma automatizada y se basa exclusivamente en los documentos de especificación de AUTOSAR Adaptive R25-11.
Register a notifier function which is called if the activity is changed. A consecutive call of this method will overwrite the previous registered notifier.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 49e9828acc72ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
usar
El método ara::diag::Conversation::SetActivityNotifier sirve para registrar una función de notificación (notifier), a la que se llama siempre que cambia el estado de actividad de la conversación de diagnóstico [SWS_DM_00695]. La declaración se realiza a través del archivo de cabecera #include "ara/diag/conversation.h" en el ámbito de la clase ara::diag::ConversationAUTOSAR_AP_SWS_Diagnostics §8.9.3.2.2.11 «SetActivityNotifier». Una llamada nueva o consecutiva en la misma instancia sobrescribe por completo el notificador registrado previamente [SWS_DM_00695], [SWS_DM_01355].
Tratamiento de errores y concurrencia
El valor de retorno está tipificado como ara::core::Result<void> y devuelve el éxito o un estado de error; no obstante, la interfaz no especifica códigos de error estandarizados [SWS_DM_00695]. El método está declarado como noexcept y seguro frente a excepciones (exception safe).
En cuanto a la seguridad de hilos, la función está clasificada como no segura para hilos (not thread-safe) [SWS_DM_00695]. Si el acceso a la misma instancia de conversación se realiza desde varios hilos, la llamada de registro debe sincronizarse en el lado de la aplicación.
Interacción en el ciclo de vida
Las instancias de la conversación son proporcionadas por el Diagnostic Server, configurándose el número máximo de conversaciones paralelas a través de maxConversations[SWS_DM_00840]. Cuando el ciclo de vida de una conversación de diagnóstico finaliza, el Diagnostic Server establece el estado de actividad en kInactive[SWS_DM_00843]. Es de suponer que esto señale al notificador registrado el final de la comunicación de diagnóstico activa. Pregunta Q-93c30267eb100ed7 (abierta)
Este texto fue generado por un sistema de IA y revisado editorialmente.
Register a notifier function which is called if the Session is changed. A consecutive call of this method will overwrite the previous registered notifier.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: b40c717f1178ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
La función SetDiagnosticSessionNotifier pertenece a la clase ara::diag::Conversation y se proporciona a través del archivo de cabecera #include "ara/diag/conversation.h"[SWS_DM_00697]. Permite a las aplicaciones registrar una función notificadora que se activa con cada cambio de la sesión de diagnóstico.
Uso y semántica de llamada
La llamada se realiza de forma síncrona en una instancia de ara::diag::Conversation pasando el parámetro notifier de tipo SessionControl TypeNotifier[SWS_DM_00697]. Una llamada consecutiva o repetida al método sobrescribe por completo el notificador registrado previamente AUTOSAR_AP_SWS_Diagnostics §8.9.3.2.2.12 «SetDiagnosticSessionNotifier».
Valor de retorno y tratamiento de errores
Como valor de retorno, la interfaz devuelve un ara::core::Result<void>, que o bien confirma un registro exitoso o bien contiene un objeto de error [SWS_DM_00697]. La especificación no define códigos de error estandarizados para esta llamada; por tanto, los errores que se produzcan probablemente se deban a validaciones específicas de la implementación. Pregunta Q-1ac7eebee90e3c22 (abierta)
Concurrencia y restricciones
Seguridad de hilos: El método está especificado como no seguro para hilos (not thread-safe) [SWS_DM_00697]. Por lo tanto, las llamadas paralelas para la misma instancia de conversación deben sincronizarse en el lado de la aplicación.
Seguridad frente a excepciones: La función está declarada como noexcept y se considera segura frente a excepciones (exception safe) [SWS_DM_00697].
Register a notifier function which is called if the SecurityLevel is changed. A consecutive call of this method will overwrite the previous registered notifier.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: f0130e1f2bdeProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
usar
El método ara::diag::Conversation::SetSecurityLevelNotifier sirve para registrar una función de retrollamada que recibe una notificación tan pronto como cambia el nivel de seguridad (SecurityLevel) de la conversación de diagnóstico [SWS_DM_00699]. Se declara a través de la cabecera ara/diag/conversation.hAUTOSAR_AP_SWS_Diagnostics §8.9.3.2.2.13 «SetSecurityLevelNotifier». Acepta como parámetro la función notifier a la que se va a llamar. Una nueva llamada al método sobrescribe por completo una función notificadora registrada previamente [SWS_DM_00699].
Semántica y valor de retorno
La función está definida como noexcept y especificada como segura frente a excepciones (exception safe) [SWS_DM_00699]. Como tipo de retorno proporciona ara::core::Result<void>, que o bien no devuelve ningún valor o bien devuelve un error ocurrido [SWS_DM_00699].
Manejo de errores
La especificación no define códigos de error estandarizados para SetSecurityLevelNotifier[SWS_DM_00699]. Por tanto, los errores devueltos eventualmente en el ara::core::Result probablemente sean específicos del fabricante o se deban al tiempo de ejecución de la plataforma subyacente. Pregunta Q-c8dd53e9d661cc78 (abierta)
Concurrencia y restricciones
En cuanto a la seguridad de hilos, el método está clasificado explícitamente como not thread-safe[SWS_DM_00699]. Por tanto, los accesos paralelos a la misma instancia de ara::diag::Conversation deben sincronizarse en el lado del llamador. Además, la definición de la API posee en el estado de documentación presente el estado DRAFTAUTOSAR_AP_SWS_Diagnostics §8.9.3.2.2.13 «SetSecurityLevelNotifier».
Esta nota de uso se basa en la especificación AUTOSAR Adaptive Platform Release R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán