DEENESPTFRRUARHIKOZHNL

structure ara::tsync::UserData

[SWS_TS_14230] Upstream: RS_TS_00014 libellé pas encore importé

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

Guide utilisateurGÉNÉRÉ PAR IA

Fournit un tampon pour le transfert de petites données utiles spécifiques à l'application pour des bases de temps synchronisées.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 44e6e39606c3 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Fournit un tampon pour le transfert de petites données utiles spécifiques à l'application pour des bases de temps synchronisées.

La structure ara::tsync::UserData sert au transfert de données utiles compactes spécifiques à l'application dans le cadre de bases de temps synchronisées. Elle gère un tampon statique doté d'une limite supérieure immuable de trois octets, définie via kMaxUserDataSize [SWS_TS_14231]. Les applications écrivent des données utiles dans le tableau et indiquent le nombre d'octets réellement valides via le champ size [SWS_TS_14232]. En tant que contrainte centrale, la logique de programmation applicative doit garantir que size ne dépasse jamais la capacité maximale définie et que les accès à des zones de tampon non initialisées soient évités.

Contexte

La structure de données ara::tsync::UserData sert, au sein du cluster fonctionnel pour la synchronisation horaire (tsync) de l'AUTOSAR Adaptive Platform, à encapsuler des données utiles spécifiques à l'application dans le cadre de bases de temps synchronisées. La structure est déclarée dans le fichier d'en-tête ara/tsync/synchronized_time_base_status.h. Sa responsabilité première consiste à fournir une zone mémoire compacte et dimensionnée statiquement pour des données applicatives supplémentaires qui sont transmises ou évaluées conjointement avec des informations temporelles. La taille maximale de ces données utiles est fixée à exactement trois octets par la constante statique kMaxUserDataSize [SWS_TS_14231]. Pour la mise en mémoire tampon des octets de données utiles proprement dits, le tableau data de type ara::core::Array<ara::core::Byte, kMaxUserDataSize> est utilisé [SWS_TS_14233]. Ce tampon est complété par le champ size, qui indique le nombre d'octets de données utiles réellement valides dans le tampon [SWS_TS_14232]. Interprétation : compte tenu de son lieu de définition dans l'en-tête ara/tsync/synchronized_time_base_status.h, UserData devrait surtout servir de champ d'état pour la transmission de petites informations supplémentaires liées à l'application, telles que des indicateurs de contrôle ou des compteurs. Question Q-a0fb20686141f042 (ouverte) Les partenaires d'interaction sont typiquement des services d'horloge maîtresse et des applications réceptrices qui interrogent ou relaient l'état d'une base de temps synchronisée.

Cycle de vie

En tant que structure C++ ordinaire (Value Object), UserData ne possède pas de cycle de vie interne complexe et renonce complètement aux allocations de mémoire dynamiques. Les instances sont généralement créées sur la pile ou sous la forme d'un élément de données imbriqué de structures d'état de niveau supérieur. L'initialisation s'effectue directement par initialisation d'éléments ou affectation C++ standard. Concernant les relations de propriété, la structure est soumise à la sémantique de valeur : les composants créateurs possèdent entièrement leur instance locale et la transmettent par copie ou par référence aux interfaces. Comme UserData n'implémente aucun mécanisme de synchronisation interne ni aucun verrou mutex, un accès concurrent en lecture et en écriture depuis plusieurs threads sur la même instance n'est pas sûr pour les threads. Les applications doivent sécuriser les accès simultanés par des mesures de synchronisation externes, tandis que des instances mutuellement indépendantes peuvent être utilisées sans danger dans des contextes concurrents. La destruction ne nécessite aucun nettoyage explicite de ressources, étant donné que le champ de données contenu data [SWS_TS_14233] est alloué statiquement.

Parcours d'utilisation

Un chemin d'utilisation typique comprend le remplissage, la transmission et l'évaluation du tampon de données. Tout d'abord, un composant expéditeur ou fournissant un état crée une instance de UserData. Ensuite, les données utiles sont copiées dans le tableau data, sachant qu'au maximum kMaxUserDataSize octets peuvent être occupés [SWS_TS_14231], [SWS_TS_14233]. Immédiatement après, le composant définit le champ size sur le nombre réel d'octets écrits [SWS_TS_14232]. Du côté récepteur, l'application de traitement vérifie d'abord la valeur de size [SWS_TS_14232]. Si size est supérieur à zéro, l'application lit exactement ce préfixe valide dans le tampon data [SWS_TS_14233]. Les valeurs en dehors de cette plage, c'est-à-dire de l'indice size jusqu'à kMaxUserDataSize - 1, sont ignorées car elles peuvent contenir des données résiduelles indéfinies ou obsolètes.

Scénarios d'erreur

Pour UserData, les situations d'erreur résultent principalement d'incohérences entre l'indication de taille et la capacité du tampon. Si le champ size prend une valeur qui dépasse la taille maximale définie kMaxUserDataSize de trois octets [SWS_TS_14231], il s'agit d'une violation des limites de la spécification. Dans un tel cas, des dépassements de tampon ou des accès en dehors des limites définies du tableau risquent de se produire lors de la lecture itérative de data [SWS_TS_14233]. Un autre risque réside dans la lecture erronée de data lorsque size est égal à zéro [SWS_TS_14232], car aucune donnée utile valide n'est présente dans cet état. Les codes d'erreur ou les exceptions ne sont pas générés par la structure elle-même ; la validation des préconditions – en particulier size <= kMaxUserDataSize – incombe donc entièrement à la logique du programme appelant.

Ce guide est basé sur la spécification AUTOSAR Adaptive R25-11. Toutes les indications s'appuient sur les exigences SWS référencées.

Carte des membres

Diagramme de classes

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

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

Vue détaillée

Sélectionnez une entrée dans le plan.

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. .

Documentation des constantes / variables

variable data [SWS_TS_14233] Upstream: RS_TS_00014 libellé pas encore importé

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 libellé pas encore importé

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 libellé pas encore importé

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