DEENESPTFRRUARHIKOZHNL

estructura ara::tsync::UserData

[SWS_TS_14230] Upstream: RS_TS_00014 texto aún no importado

struct UserData {...};

Structure to define user data. .

Header-Datei#include "ara/tsync/synchronized_time_base_status.h"
Forwarding-Header#include "ara/tsync/tsync_fwd.h"
Scopenamespace ara::tsync

Guía del usuarioGENERADO POR IA

Proporciona un búfer para la transmisión de datos útiles pequeños y específicos de la aplicación para bases de tiempo sincronizadas.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 44e6e39606c3 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Proporciona un búfer para la transmisión de datos útiles pequeños y específicos de la aplicación para bases de tiempo sincronizadas.

La estructura ara::tsync::UserData sirve para transmitir datos útiles compactos específicos de la aplicación en el marco de bases de tiempo sincronizadas. Gestiona un búfer estático con un límite superior invariable de tres bytes, definido a través de kMaxUserDataSize [SWS_TS_14231]. Las aplicaciones escriben datos útiles en el array e indican el número de bytes realmente válidos a través del campo size [SWS_TS_14232]. Como restricción central, la lógica de programación de la aplicación debe garantizar que size nunca supere la capacidad máxima establecida y que se eviten accesos a zonas del búfer no inicializadas.

Contexto

La estructura de datos ara::tsync::UserData se utiliza dentro del clúster funcional para sincronización de tiempo (tsync) de AUTOSAR Adaptive Platform para encapsular datos útiles específicos de la aplicación en el contexto de bases de tiempo sincronizadas. La estructura está declarada en el archivo de cabecera ara/tsync/synchronized_time_base_status.h. Su responsabilidad principal consiste en proporcionar un área de almacenamiento compacta y dimensionada estáticamente para datos adicionales de la aplicación que se transmiten o evalúan junto con la información de tiempo. El tamaño máximo de estos datos útiles está fijado en exactamente tres bytes mediante la constante estática kMaxUserDataSize [SWS_TS_14231]. Para el almacenamiento intermedio de los bytes de datos útiles propiamente dichos se utiliza el array data de tipo ara::core::Array<ara::core::Byte, kMaxUserDataSize> [SWS_TS_14233]. Este búfer se complementa con el campo size, que indica la cantidad de bytes de datos útiles realmente válidos en el búfer [SWS_TS_14232]. Interpretación: debido a su ubicación de definición en la cabecera ara/tsync/synchronized_time_base_status.h, UserData probablemente sirva principalmente como campo de estado para transmitir pequeñas informaciones adicionales relativas a la aplicación, tales como flags de control o contadores. Pregunta Q-a0fb20686141f042 (abierta) Los interlocutores suelen ser servicios de temporización y aplicaciones receptoras que consultan o reenvían el estado de una base de tiempo sincronizada.

Ciclo de vida

Como estructura ordinaria de C++ (Value Object), UserData carece de un ciclo de vida interno complejo y prescinde por completo de asignaciones dinámicas de memoria. Por lo general, las instancias se crean en la pila o como elemento de datos incrustado en estructuras de estado de nivel superior. La inicialización se realiza directamente mediante inicialización de miembros o asignación estándar de C++. En cuanto a la titularidad, la estructura está sujeta a la semántica de valor: los componentes creadores poseen plenamente su instancia local y la transfieren por copia o referencia a las interfaces. Dado que UserData no implementa mecanismos internos de sincronización ni bloqueos por mutex, el acceso concurrente de lectura y escritura desde múltiples hilos sobre la misma instancia no es seguro para hilos (thread-safe). Las aplicaciones deben asegurar los accesos simultáneos mediante medidas de sincronización externas, mientras que las instancias independientes entre sí pueden utilizarse con seguridad en contextos concurrentes. La destrucción no requiere ninguna limpieza explícita de recursos, ya que el campo de datos data [SWS_TS_14233] contenido está reservado estáticamente.

Ruta de uso

Una ruta de uso típica abarca el llenado, la transmisión y la evaluación del búfer de datos. En primer lugar, un componente emisor o proveedor de estado crea una instancia de UserData. A continuación, los datos útiles se copian en el array data, pudiendo ocupar un máximo de kMaxUserDataSize bytes [SWS_TS_14231], [SWS_TS_14233]. Inmediatamente después, el componente establece el campo size con el número real de bytes escritos [SWS_TS_14232]. En el lado del receptor, la aplicación procesadora comprueba primero el valor de size [SWS_TS_14232]. Si size es mayor que cero, la aplicación lee exactamente este prefijo válido del búfer data [SWS_TS_14233]. Los valores situados fuera de este rango, es decir, desde el índice size hasta kMaxUserDataSize - 1, se ignoran, ya que pueden contener datos residuales indefinidos u obsoletos.

Escenarios de error

Las situaciones de error en UserData se derivan principalmente de incoherencias entre la indicación de tamaño y la capacidad del búfer. Si el campo size adopta un valor que excede el tamaño máximo definido kMaxUserDataSize de tres bytes [SWS_TS_14231], se produce una infracción de los límites de la especificación. En tal caso, durante la lectura iterativa de data [SWS_TS_14233] existe el riesgo de desbordamientos de búfer o accesos fuera de los límites definidos del array. Otro riesgo reside en la lectura errónea de data cuando size es igual a cero [SWS_TS_14232], ya que en este estado no existen datos útiles válidos. La estructura en sí no genera códigos de error ni excepciones; por lo tanto, la validación de las precondiciones —en particular size <= kMaxUserDataSize— recae enteramente en la lógica de programación de la aplicación.

Esta guía se basa en la especificación AUTOSAR Adaptive R25-11. Todas las indicaciones se fundamentan en los requisitos SWS referenciados.

Mapa de miembros

Diagrama de clases

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__tsync__UserData398 «struct» UserData + data + kMaxUserDataSize + size

Vista de detalle

Selecciona una entrada en el índice.

Constantes

data variable

User data buffer (maximum size: kMaxUserDataSize). .

Maximum number of user data bytes. .

static constexpr std::size_t kMaxUserDataSize = 3u;
size variable

Number of valid user data bytes in data. .

Documentación de las constantes / variables

variable data [SWS_TS_14233] Upstream: RS_TS_00014 texto aún no importado

ara::core::Array<ara::core::Byte, kMaxUserDataSize> data;

User data buffer (maximum size: kMaxUserDataSize). .

Header-Datei#include "ara/tsync/synchronized_time_base_status.h"
Scopestruct ara::tsync::UserData
Symboldata
Typara::core::Array< ara::core::Byte, kMaxUserDataSize >

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_TS_14233
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_TS_14233@rel:R25-11#1f27c5a4
Content hash
1f27c5a4
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_TimeSynchronization.pdf#nameddest=SWS_TS_14233
Status: valid/unmigrated Version: rel:R25-11#1f27c5a4 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_TS_14233@rel:R25-11#1f27c5a4
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

variable kMaxUserDataSize [SWS_TS_14231] Upstream: RS_TS_00014 texto aún no importado

static constexpr std::size_t kMaxUserDataSize = 3u;

Maximum number of user data bytes. .

Header-Datei#include "ara/tsync/synchronized_time_base_status.h"
Scopestruct ara::tsync::UserData
SymbolkMaxUserDataSize
Typstd::size_t

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_TS_14231
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_TS_14231@rel:R25-11#df87c9f1
Content hash
df87c9f1
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_TimeSynchronization.pdf#nameddest=SWS_TS_14231
Status: valid/unmigrated Version: rel:R25-11#df87c9f1 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_TS_14231@rel:R25-11#df87c9f1
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

variable size [SWS_TS_14232] Upstream: RS_TS_00014 texto aún no importado

std::size_t size;

Number of valid user data bytes in data. .

Header-Datei#include "ara/tsync/synchronized_time_base_status.h"
Scopestruct ara::tsync::UserData
Symbolsize
Typstd::size_t

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_TS_14232
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_TS_14232@rel:R25-11#ddf624eb
Content hash
ddf624eb
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_TimeSynchronization.pdf#nameddest=SWS_TS_14232
Status: valid/unmigrated Version: rel:R25-11#ddf624eb Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_TS_14232@rel:R25-11#ddf624eb
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill