Define un intervalo cerrado de valores de byte para patrones de servicio de diagnóstico en listas de acceso dinámicas.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 772c8ed103ebProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Define un intervalo cerrado de valores de byte para patrones de servicio de diagnóstico en listas de acceso dinámicas.
La clase ara::diag::DynamicAccessListDiagServiceBuilder::ByteRange representa un intervalo cerrado de valores de byte para definir patrones de servicio de diagnóstico en listas de acceso dinámicas [SWS_DM_01182]. Las aplicaciones crean estos objetos de valor con valores mínimos y máximos y los transfieren al generador para la configuración progresiva de patrones de servicio [SWS_DM_01183]. Además, los límites de intervalo fijados se pueden leer en cualquier momento a través de inspectores. Todas las funciones miembro están declaradas como seguras frente a excepciones como noexcept, mientras que los operadores de asignación modificadores requieren una sincronización independiente en caso de acceso concurrente.
Contexto
La clase ara::diag::DynamicAccessListDiagServiceBuilder::ByteRange representa un intervalo cerrado de valores de byte dentro de un patrón de servicio de diagnóstico [SWS_DM_01182]. En el marco de la gestión dinámica de acceso (DynamicAccessList), actúa como un componente elemental para definir con precisión criterios y rangos de valores de bytes individuales para solicitudes de diagnóstico AUTOSAR_AP_SWS_Diagnostics §8.15.2 «Class: ByteRange».
Como tipo de valor anidado, ByteRange interactúa directamente con el DynamicAccessListDiagServiceBuilder de nivel superior. Mientras que la aplicación de diagnóstico crea instancias con valores de umbral específicos, el generador consume estos objetos a través de métodos como Add[SWS_DM_01177] o EndsWith[SWS_DM_01180] para construir secuencias de patrones de bytes secuenciales para servicios de diagnóstico. De forma complementaria, la clase permite consultar los límites configurados mediante GetMin[SWS_DM_01189] y GetMax[SWS_DM_01190].
Ciclo de vida
Las instancias de ByteRange se crean habitualmente mediante el constructor parametrizado, que toma el valor mínimo (min) y el valor máximo (max) como un intervalo cerrado de valores [SWS_DM_01183]. Al tratarse de un objeto de valor sin estado y sin vinculación dinámica de recursos, no existen fases operativas internas complejas.
La clase implementa una semántica de valores conforme a los estándares: proporciona tanto un constructor de copia [SWS_DM_01184] como un constructor de movimiento [SWS_DM_01185], con lo cual los ejemplares se pueden transferir sin problemas por copia o por movimiento a los métodos del generador. De manera análoga, están disponibles el operador de asignación por copia [SWS_DM_01186] y el operador de asignación por movimiento [SWS_DM_01187]. El ciclo de vida finaliza con el destructor [SWS_DM_01188].
Con respecto a la concurrencia, AUTOSAR especifica requisitos diferenciados: los constructores y las operaciones de lectura están clasificados como seguros para subprocesos, mientras que los operadores de asignación operator= ([SWS_DM_01186], [SWS_DM_01187]) y el destructor [SWS_DM_01188] expresamente no son seguros para subprocesos. Por lo tanto, las operaciones modificadoras sobre la misma instancia requieren medidas de sincronización en el nivel del llamante.
Ruta de uso
El uso típico de ByteRange se realiza en el marco de la configuración secuencial de patrones de servicio mediante el generador:
La aplicación crea un objeto ByteRange indicando los límites min y max[SWS_DM_01183].
El intervalo se transfiere a DynamicAccessListDiagServiceBuilder::Add para ampliar el patrón en la posición actual [SWS_DM_01177].
Con EndsWith se puede definir un intervalo final que constituye la conclusión del patrón [SWS_DM_01180].
En caso necesario, la aplicación lee los valores límite mediante GetMin[SWS_DM_01189] y GetMax[SWS_DM_01190] para su verificación.
Diagrama de secuencia: interacción típica en la definición de un patrón de diagnóstico con ByteRange. Fuentes: [SWS_DM_01183], [SWS_DM_01177], [SWS_DM_01180], [SWS_DM_01189], [SWS_DM_01190].
Escenarios de error
Todas las funciones miembro de la clase están declaradas con noexcept y, por tanto, son completamente seguras frente a excepciones (exception safe) [SWS_DM_01183]. Ni la construcción ni las asignaciones o consultas lanzan excepciones de C++.
Las posibles situaciones de error atañen principalmente a errores lógicos de parametrización: si una aplicación transfiere un valor mínimo min que es mayor que el valor máximo max, la especificación no define un comportamiento de error explícito (interpretación: es de presumir que dicho par de valores no válido no sea rechazado hasta el procesamiento posterior de patrones en el generador o que dé lugar a un patrón de coincidencia vacío). Pregunta Q-ea9c65d175d48946 (abierta) Otro riesgo de error radica en la asignación no protegida a través de operator= con acceso concurrente de múltiples subprocesos al mismo objeto, ya que las asignaciones no son seguras para subprocesos [SWS_DM_01186].
Esta guía de clase se basa en la especificación AUTOSAR Adaptive R25-11 para el módulo diag.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán