DEENESPTFRRUARHIKOZHNL

struct ara::tsync::UserData

[SWS_TS_14230] Upstream: RS_TS_00014 Wortlaut noch nicht übernommen

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

User GuideKI-GENERIERT

Stellt einen Puffer zur Übertragung kleiner anwendungsspezifischer Nutzdaten für synchronisierte Zeitbasen bereit.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 44e6e39606c3 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Stellt einen Puffer zur Übertragung kleiner anwendungsspezifischer Nutzdaten für synchronisierte Zeitbasen bereit.

Die Struktur ara::tsync::UserData dient zur Übertragung kompakter anwendungsspezifischer Nutzdaten im Rahmen synchronisierter Zeitbasen. Sie verwaltet einen statischen Puffer mit einer unveränderlichen Obergrenze von drei Byte, die über kMaxUserDataSize definiert ist [SWS_TS_14231]. Anwendungen schreiben Nutzdaten in das Array und kennzeichnen die Anzahl der tatsächlich gültigen Bytes über das Feld size [SWS_TS_14232]. Als zentrale Randbedingung muss die anwendende Programmlogik sicherstellen, dass size die festgelegte Maximalkapazität niemals überschreitet und Zugriffe auf uninitialisierte Pufferbereiche vermieden werden.

Kontext

Die Datenstruktur ara::tsync::UserData dient innerhalb des Funktionsclusters für Zeitsynchronisation (tsync) der AUTOSAR Adaptive Platform zur Kapselung anwendungsspezifischer Nutzdaten im Rahmen synchronisierter Zeitbasen. Deklariert ist die Struktur in der Header-Datei ara/tsync/synchronized_time_base_status.h. Ihre primäre Verantwortung besteht darin, einen kompakten, statisch dimensionierten Speicherbereich für applikative Zusatzdaten bereitzustellen, die gemeinsam mit Zeitinformationen übertragen oder ausgewertet werden. Der maximale Umfang dieser Nutzdaten ist durch die statische Konstante kMaxUserDataSize auf genau drei Byte festgelegt [SWS_TS_14231]. Für die Pufferung der eigentlichen Nutzdatenbytes kommt das Array data vom Typ ara::core::Array<ara::core::Byte, kMaxUserDataSize> zum Einsatz [SWS_TS_14233]. Ergänzt wird dieser Puffer durch das Feld size, welches die Anzahl der tatsächlich gültigen Nutzdatenbytes im Puffer ausweist [SWS_TS_14232]. Interpretation: Aufgrund des Definitionsorts im Header ara/tsync/synchronized_time_base_status.h dürfte UserData vor allem als Statusfeld zur Übertragung kleiner anwendungsbezogener Zusatzinformationen wie Kontrollflags oder Zähler dienen. Frage Q-a0fb20686141f042 (offen) Als Interaktionspartner treten typischerweise zeitgebende Dienste und empfangende Applikationen auf, die den Status einer synchronisierten Zeitbasis abfragen oder weiterreichen.

Lebenszyklus

Als gewöhnliche C++-Struktur (Value Object) besitzt UserData keinen komplexen internen Lebenszyklus und verzichtet vollständig auf dynamische Speicherallokationen. Instanzen entstehen üblicherweise auf dem Stack oder als eingebettetes Datenelement übergeordneter Statusstrukturen. Die Initialisierung erfolgt direkt über Elementinitialisierung oder standardmäßige C++-Zuweisung. Bezüglich der Besitzverhältnisse unterliegt die Struktur der Wertsemantik: Erzeugende Komponenten besitzen ihre lokale Instanz vollständig und übergeben diese per Kopie oder Referenz an Schnittstellen. Da UserData keine internen Synchronisationsmechanismen oder Mutex-Sperren implementiert, ist ein nebenläufiger Lese- und Schreibzugriff aus mehreren Threads auf dieselbe Instanz nicht threadsicher. Anwendungen müssen gleichzeitige Zugriffe durch externe Synchronisationsmaßnahmen absichern, während voneinander unabhängige Instanzen in nebenläufigen Kontexten gefahrlos verwendet werden können. Die Zerstörung erfordert keine explizite Bereinigung von Ressourcen, da das enthaltene Datenfeld data [SWS_TS_14233] statisch reserviert ist.

Nutzungspfad

Ein typischer Nutzungspfad umfasst die Befüllung, Weitergabe und Auswertung des Datenpuffers. Zunächst erzeugt eine sendende oder statusbereitstellende Komponente eine Instanz von UserData. Anschließend werden die Nutzdaten in das Array data kopiert, wobei maximal kMaxUserDataSize Bytes belegt werden dürfen [SWS_TS_14231], [SWS_TS_14233]. Unmittelbar danach setzt die Komponente das Feld size auf die tatsächliche Anzahl der geschriebenen Bytes [SWS_TS_14232]. Auf der Empfängerseite prüft die verarbeitende Anwendung zuerst den Wert von size [SWS_TS_14232]. Ist size größer als null, liest die Applikation genau diesen gültigen Präfix aus dem Puffer data [SWS_TS_14233] aus. Werte außerhalb dieses Bereichs, also ab Index size bis kMaxUserDataSize - 1, werden ignoriert, da sie undefinierte oder veraltete Restdaten enthalten können.

Fehlerszenarien

Fehlersituationen resultieren bei UserData primär aus Inkonsistenzen zwischen der Größenangabe und der Pufferkapazität. Nimmt das Feld size einen Wert an, der die definierte Maximalgröße kMaxUserDataSize von drei Bytes übersteigt [SWS_TS_14231], liegt eine Verletzung der Spezifikationsgrenzen vor. In einem solchen Fall drohen beim iterativen Auslesen von data [SWS_TS_14233] Pufferüberläufe oder Zugriffe außerhalb der definierten Arraygrenzen. Ein weiteres Risiko besteht im fehlerhaften Auslesen von data, wenn size gleich null ist [SWS_TS_14232], da in diesem Zustand keine gültigen Nutzdaten vorliegen. Fehlercodes oder Ausnahmen werden von der Struktur selbst nicht erzeugt; die Validierung von Vorbedingungen – insbesondere size <= kMaxUserDataSize – obliegt somit vollständig der anwendenden Programmlogik.

Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive R25-11. Alle Angaben stützen sich auf die referenzierten SWS-Anforderungen.

Mitgliederkarte

Klassendiagramm

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

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

Detailansicht

Wähle in der Gliederung einen Eintrag aus.

Konstanten

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

Dokumentation der Konstanten / Variablen

variable data [SWS_TS_14233] Upstream: RS_TS_00014 Wortlaut noch nicht übernommen

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 Wortlaut noch nicht übernommen

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 Wortlaut noch nicht übernommen

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