Configura la concurrencia permitida para accesos de lectura y escritura en puertos para identificadores de datos.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: ec523fe189beProcedenciaPreguntas abiertas (3)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Configura la concurrencia permitida para accesos de lectura y escritura en puertos para identificadores de datos.
La estructura ara::diag::DataIdentifierConcurrencyType especifica el comportamiento de concurrencia permitido para puertos de diagnóstico vinculados a identificadores de datos (Data Identifier) [SWS_DM_00936]. A través de las variables miembro read, write y readWrite, la aplicación define en qué medida el Diagnostic Management (DM) puede ejecutar llamadas de lectura y escritura en paralelo. Como condición de contorno esencial, todos los campos están preinicializados por defecto de forma defensiva con ConcurrencyType::kNotConcurrent, con lo cual la ejecución concurrente solo se habilita mediante el establecimiento explícito a kConcurrent[SWS_DM_00939].
Contexto
La estructura de C++ ara::diag::DataIdentifierConcurrencyType sirve en la AUTOSAR Adaptive Platform para especificar el comportamiento de concurrencia en puertos vinculados a identificadores de datos de diagnóstico (Data Identifier, DID) [SWS_DM_00936]. Actúa como un tipo de datos de configuración estandarizado a través del cual un software de aplicación declara sus capacidades de procesamiento en paralelo frente al sistema de tiempo de ejecución de diagnóstico (AUTOSAR_AP_SWS_Diagnostics §8.8.2 «Struct: DataIdentifierConcurrencyType»). La estructura forma parte de las definiciones de interfaz para el módulo diag (AUTOSAR_AP_SWS_Diagnostics p. 79).
El interlocutor esencial es el Diagnostic Management (DM). El DM recibe las solicitudes de diagnóstico entrantes y las reenvía a los métodos correspondientes del puerto de DataIdentifier. A partir de los valores almacenados en DataIdentifierConcurrencyType, el DM decide si las operaciones de lectura y escritura pueden invocarse de manera concurrente o si deben serializarse secuencialmente [SWS_DM_00939].
Ciclo de vida
La estructura se incluye mediante el archivo de encabezado ara/diag/concurrency.h y se instancia como un objeto de datos puro de C++ (struct) [SWS_DM_00936]. Durante la creación, todas las variables miembro contenidas se inicializan de forma defensiva con el valor predeterminado ConcurrencyType::kNotConcurrent[SWS_DM_00937]. Esto garantiza que no se produzcan llamadas paralelas por parte del DM sin una habilitación explícita por parte de la aplicación.
El ciclo de vida de la configuración de la estructura está típicamente vinculado a la inicialización del puerto de DataIdentifier asociado. La aplicación crea el objeto, establece los grados de concurrencia deseados y transfiere la configuración al puerto. Durante el posterior funcionamiento activo de diagnóstico, los ajustes permanecen sin cambios, de modo que el Diagnostic Management puede planificar las llamadas a métodos de forma determinista (AUTOSAR_AP_SWS_Diagnostics §8.8.2.1 «Public Member Variables»).
La estructura subdivide la concurrencia en tres campos de configuración ortogonales:
read: define el tipo de concurrencia para accesos de solo lectura (Reads) [SWS_DM_00937].
write: define el tipo de concurrencia para accesos de escritura (Writes) [SWS_DM_00938].
readWrite: define el comportamiento en caso de llamada conjunta y paralela de métodos de lectura y escritura [SWS_DM_00939].
Ruta de uso
Una ruta de uso habitual comienza con la provisión de un servicio de diagnóstico por parte de una aplicación adaptativa. Si la implementación interna del puerto es segura para subprocesos, la aplicación puede habilitar la ejecución paralela de accesos de lectura y escritura. Para ello, se crea una instancia de DataIdentifierConcurrencyType y se establece el campo readWrite a ConcurrencyType::kConcurrent[SWS_DM_00939]. Del mismo modo, read y write se pueden configurar según las necesidades [SWS_DM_00937], [SWS_DM_00938].
Tan pronto como el puerto de DataIdentifier está registrado en el DM, el DM recibe comandos de diagnóstico externos y los reenvía (AUTOSAR_AP_SWS_Diagnostics p. 1115). Si kConcurrent está establecido, el DM puede ejecutar llamadas de lectura y escritura entrantes al mismo tiempo, lo que optimiza el rendimiento y la latencia [SWS_DM_00939]. Si la configuración permanece en el valor predeterminado kNotConcurrent, el DM serializa las llamadas.
Diagrama de secuencia: flujo típico de configuración y control de llamadas concurrentes mediante el Diagnostic Management (DM). Fuentes: [SWS_DM_00936], [SWS_DM_00939].
Esta guía resume la especificación de ara::diag::DataIdentifierConcurrencyType en AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán