Registra el estado, el progreso porcentual y el código de error de una subentidad en actualizaciones de software basadas en SOVD.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 86b478c2c357ProcedenciaPreguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Registra el estado, el progreso porcentual y el código de error de una subentidad en actualizaciones de software basadas en SOVD.
La estructura ara::diag::SovdSwUpdate::SubProgress encapsula el progreso actual, el estado y los posibles errores de una entidad específica durante una actualización de software basada en SOVD ([SWS_DM_01896]). Las rutinas de actualización registran en ella el componente a actualizar, actualizan el progreso porcentual y transmiten el estado general a la gestión de diagnóstico. Si la actualización falla, el campo error especifica el código de error producido, mientras que en el flujo normal no se tiene en cuenta ([SWS_DM_01901]). Dado que SubProgress es un tipo de valor de datos puro sin sincronización interna, la modificación concurrente requiere protección del lado de la aplicación.
Contexto
La estructura ara::diag::SovdSwUpdate::SubProgress forma parte de la interfaz de C++ para actualizaciones de software basadas en SOVD en el módulo diag de AUTOSAR Adaptive Platform ([SWS_DM_01896], AUTOSAR_AP_SWS_Diagnostics §8.58.3 «Struct: SubProgress»). En el marco de Service-Oriented Vehicle Diagnostics (SOVD), los procesos de actualización pueden constar de varios subpasos paralelos o secuenciales. SubProgress asume la responsabilidad de representar el estado de procesamiento de un subcomponente específico durante la actualización. Entre los interlocutores se incluyen las rutinas de actualización internas de diagnóstico que ejecutan actualizaciones parciales, así como entidades de control superiores que coordinan el progreso general de una actualización y lo notifican a herramientas de diagnóstico externas.
entity: Un ara::core::String que identifica la entidad que se está actualizando actualmente ([SWS_DM_01898]).
status: Un valor de tipo SovdUpdateStatus que representa el estado actual de la actualización ([SWS_DM_01899]).
progress: Un valor opcional de tipo ara::core::Optional<std::uint8_t> para el progreso en porcentaje ([SWS_DM_01900]).
error: Un código de error de tipo ara::core::ErrorCode para especificar los errores ocurridos en caso de fallo ([SWS_DM_01901]).
Ciclo de vida
Diseñado como struct, SubProgress posee semántica de valor (AUTOSAR_AP_SWS_Diagnostics §8.58.3.1 «Public Member Variables»). Típicamente, se crea una instancia en la pila o dentro de un contenedor de estado superior tan pronto como comienza un nuevo subpaso dentro del procesamiento de la actualización. Al inicio, el componente de gestión asigna a la instancia el identificador de la entidad de destino mediante entity ([SWS_DM_01898]) y establece el estado inicial en status ([SWS_DM_01899]).
Durante el proceso, el progreso porcentual y los cambios de estado se actualizan continuamente en la estructura. Una vez completada o cancelada la actualización parcial, la estructura se transfiere o se lee y, finalmente, se destruye automáticamente al salir del ámbito. Dado que la especificación no define métodos propios ni primitivas de sincronización, la estructura probablemente actúe como un mero contenedor de datos sin seguridad para subprocesos propia (interpretación). Pregunta Q-92b3fcc698f7bab8 (abierta) Por tanto, el acceso concurrente de varios subprocesos requiere sincronización del lado de la aplicación.
Ruta de uso
El flujo regular para la notificación del progreso se divide en una secuencia fija de pasos:\nEn primer lugar, la lógica de actualización que ejecuta la operación instancia un objeto de tipo SubProgress y establece el identificador de la entidad correspondiente en entity ([SWS_DM_01898]). Al mismo tiempo, se establece el valor inicial para status, por ejemplo, para señalizar el inicio del procesamiento ([SWS_DM_01899]). En pasos continuos, la lógica escribe periódicamente el progreso en porcentaje en el campo progress ([SWS_DM_01900], AUTOSAR_AP_SWS_Diagnostics §8.58.3.1.3 «progress»). Dado que progress está declarado como ara::core::Optional, el campo permanece vacío mientras el progreso sea indeterminado. Finalmente, la estructura se transfiere a la interfaz central SovdSwUpdate para que los clientes SOVD externos puedan consultar el estado ([SWS_DM_01896]).
En caso de irregularidades o errores durante el procesamiento de una subentidad, interviene el escenario de error de la estructura. Si se produce un error, el valor en status pasa a un estado de error ([SWS_DM_01899]). Conforme a [SWS_DM_01901], la variable error especifica el código de error exacto solo si el estado es fallido («Specifies the error if status is failed»). Esto representa un acoplamiento lógico vinculante entre status y error: los receptores de la estructura solo deben evaluar el campo error como significativo si status notifica efectivamente un estado fallido; de lo contrario, el contenido probablemente no se tenga en cuenta o represente un valor por defecto (interpretación). Pregunta Q-3caa7622672dcb8e (abierta)
Otro escenario de error concierne a los progresos indeterminados: si la entidad de procesamiento no puede determinar un valor porcentual concreto o el cálculo se interrumpe prematuramente, el campo opcional progress permanece sin valor (ara::core::nullopt), lo que evita que valores numéricos inválidos se interpreten erróneamente como indicación porcentual ([SWS_DM_01900]).
Esta guía se basa en la especificación AUTOSAR Adaptive Platform Release R25-11 y resume los requisitos para la estructura ara::diag::SovdSwUpdate::SubProgress.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán