Stellt standardisierte Schnittstellen für synchronisierte Zeitbasen, hochpräzise Zeitstempel und Statusüberwachung bereit.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: aa3b87a713ceHerkunftOffene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Stellt standardisierte Schnittstellen für synchronisierte Zeitbasen, hochpräzise Zeitstempel und Statusüberwachung bereit.
Der Namespace ara::tsync stellt Schnittstellen für den synchronisierten Zeitzugriff auf der Adaptive Platform bereit, indem er Anwendungen über SynchronizedTimeBaseConsumer an konfigurierte Zeitbasen anbindet. Die Zeiterfassung erfolgt über hochpräzise Zeitstempel vom Typ Timestamp auf Basis einer Nanosekunden-Auflösung [SWS_TS_01251]. Anwendungen überwachen die Synchronität über Zustandsindikatoren wie SynchronizationStatus[SWS_TS_01050]. Als wesentliche Randbedingung sind die asynchronen Benachrichtigungs-Callbacks nicht thread-sicher ausgelegt und Verbindungsverluste zum Zeit-Daemon müssen behandelt werden.
Kontext
Der Namespace ara::tsync stellt innerhalb der AUTOSAR Adaptive Platform die Schnittstellen zur hochpräzisen Zeitsynchronisation bereit. Er ermöglicht Anwendungen das Auslesen synchronisierter Zeitpunkte, die Überwachung des Synchronisationszustands sowie die Protokollierung von Messwerten für Validierungszwecke. Die zentrale Rolle für konsumierende Applikationen nimmt die Klasse SynchronizedTimeBaseConsumer ein, die den Zugriff auf eine über einen InstanceSpecifier konfigurierte Zeitbasis kapselt. Auf Anbieterseite dient SynchronizedTimeBaseProvider als Zugriffspunkt zur Bereitstellung und Steuerung von Zeitbasen.
Grundlage der zeitlichen Repräsentation ist die Pseudo-Uhr TimeBase, über welche der Typalias Timestamp als std::chrono::time_point<TimeBase, std::chrono::nanoseconds>[SWS_TS_01251] definiert ist. Die eigentliche Synchronisationsarbeit und Anbindung an Busprotokolle wie IEEE 802.1AS oder PTP erfolgt typischerweise über einen Hintergrunddienst. Interpretation: Dieser Zeit-Daemon kommuniziert prozessübergreifend mit den Instanzen von ara::tsync, was sich durch den spezifischen Fehler TsyncErrc::kDaemonConnectionLost[SWS_TS_00901] belegen lässt. Frage Q-dd9d1a36f7573a03 (offen) Ergänzt wird die Architektur durch Schnittstellen wie ConsumerTimeBaseValidationNotification und ProviderTimeBaseValidationNotification sowie Datenstrukturen für Laufzeit- und Präzisionsmessungen (z. B. TimeMasterMeasurementType, TimeSlaveMeasurementType, PdelayInitiatorMeasurementType und PdelayResponderMeasurementType).
Kontextdiagramm: Zusammenspiel von Anwendungen, Schnittstellenklassen und Zeit-Daemon im Namespace ara::tsync. Quellen: [SWS_TS_00901], [SWS_TS_01251].
Lebenszyklus
Der Lebenszyklus einer synchronisierten Zeitbasis wird durch Zustandsstrukturen und diskrete Statuswechsel bestimmt. Eine Momentaufnahme des zeitlichen Zustands inklusive aller Metadaten wird durch SynchronizedTimeBaseStatus repräsentiert. Der Kommunikations- und Synchronisationszustand wird über die Enumeration SynchronizationStatus[SWS_TS_01050] gesteuert:
kNotSynchronizedUntilStartup: Ausgangszustand vor der ersten erfolgreichen Synchronisation nach Systemstart.
kSynchronized: Die Zeitbasis ist synchron mit dem Time-Master.
kSynchToGateway: Die Synchronisation erfolgt über ein Gateway.
kTimeOut: Innerhalb eines definierten Zeitfensters konnte keine Synchronisation hergestellt oder aufrechterhalten werden.
Neben dem Kommunikationsstatus erfasst die Enumeration LeapJump[SWS_TS_01051] sprunghafte Korrekturen der Zeitbasis: kTimeLeapNone signalisiert einen kontinuierlichen Lauf ohne Schwellenwertüberschreitung, während kTimeLeapFuture und kTimeLeapPast signifikante Korrekturen in die Zukunft bzw. Vergangenheit anzeigen.
Hinsichtlich der Nebenläufigkeit ist zu beachten, dass Callback-Typen wie SynchronizationNotifier[SWS_TS_14222], SynchronizedTimeBaseNotifier[SWS_TS_14221] und TimePrecisionNotifier[SWS_TS_14223] spezifikationsgemäß als nicht thread-sicher eingestuft sind. Zustandsübergänge, insbesondere das Auftreten von Timeouts oder Re-Synchronisationen, erfordern daher eine anwendungsseitige Synchronisation.
Zustandsdiagramm: Lebenszyklus und Kommunikationszustände einer synchronisierten Zeitbasis. Quellen: [SWS_TS_01050].
Nutzungspfad
Der typische Ablauf zur Nutzung einer synchronisierten Zeitbasis durch eine Konsumenten-Anwendung gliedert sich in folgende Schritte:
Initialisierung und Bindung: Die Anwendung instanziiert SynchronizedTimeBaseConsumer für die gewünschte Zeitbasis unter Angabe des passenden InstanceSpecifier.
Registrierung von Benachrichtigungen: Zur Überwachung des Synchronisationszustands übergibt die Anwendung Rückruffunktionen. Dazu zählen SynchronizationNotifier[SWS_TS_14222] für Änderungen des SynchronizationStatus, SynchronizedTimeBaseNotifier[SWS_TS_14221] für detaillierte Status-Snapshots (SynchronizedTimeBaseStatus) sowie TimePrecisionNotifier[SWS_TS_14223] für Präzisionsmessdaten (TimePrecisionMeasurement).
Zeitstempelabfrage: Bei vorliegendem Zustand kSynchronized oder kSynchToGateway[SWS_TS_01050] liest die Anwendung hochpräzise Zeitwerte vom Typ Timestamp[SWS_TS_01251] aus.
Reaktion auf Status- und Zeitsprünge: Signalisieren Benachrichtigungen einen LeapJump ungleich kTimeLeapNone[SWS_TS_01051] oder einen Übergang in kTimeOut[SWS_TS_01050], passt die Applikation interne Zeitgeber an oder geht in einen Degradationsmodus über.
Übertragung von Benutzerdaten: Werden anwenderspezifische Nutzdaten im Rahmen der Zeitsynchronisation übertragen, kommt die Struktur UserData zum Einsatz.
Fehlerszenarien
Die Fehlerbehandlung des Namespace folgt dem AUTOSAR-Standardmodell über die Fehlerdomäne TsyncErrorDomain. Der Zugriff auf diese globale Domäne erfolgt über GetTsyncErrorDomain()[SWS_TS_00909]. Fehlerursachen werden durch den Enumerationstyp TsyncErrc[SWS_TS_00901] beschrieben:
kDaemonConnectionLost: Die angeforderte Operation schlägt fehl, da die Verbindung zum Time-Sync-Daemon unterbrochen ist.
kLimitsExceeded: Ein übergebener oder berechneter Wert liegt außerhalb des zulässigen Wertebereichs.
kFunctionNotSupported: Die angeforderte Funktion wird in der aktuellen Konfiguration oder Plattformumgebung nicht unterstützt.
kInvalidUserDataSize: Die Länge der übergebenen Benutzerdaten überschreitet das durch UserData::kMaxUserDataSize definierte Maximum von derzeit 3 Bytes.
Instanzen von ara::core::ErrorCode werden über die Hilfsfunktion MakeErrorCode[SWS_TS_00910] erzeugt. Die Funktion ist als noexcept deklariert und thread-sicher. Für Ausnahme-basierte Architekturen stellt der Namespace die Ausnahmeklasse TsyncException bereit.
Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive Platform R25-11 für das Modul tsync.
KI-gestützte Gruppierung auf Basis der Records und Spezifikationsauszüge; keine Gliederung aus der AUTOSAR-Spezifikation.
Klassendiagramm
Abgerundete Rahmen = Namespace- bzw. Klassen-Scopes; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = namespace-fremde bzw. externe Basisklassen. Klicken öffnet die jeweilige Klassen- bzw. cppreference-Seite.
=0 The TB is not synchronized until startup (inital state)
kTimeOut
= 0x1 The TB was not synchronized within a certain time frame.
kSynchronized
= 0x2 The TB is in sync with the time master.
kSynchToGateway
= 0x3 The TB is in sync with the gateway.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 2b617e90b13fHerkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Enumeration SynchronizationStatus drückt den Kommunikations- und Synchronisationsstatus einer Zeitbasis im Namensraum ara::tsync aus [SWS_TS_01050]. Der Typ basiert auf std::uint32_t und wird über die Header-Datei ara/tsync/synchronized_time_base_status.h sowie den Forwarding-Header ara/tsync/tsync_fwd.h bereitgestellt [SWS_TS_01050]. Die Enumeration definiert vier Zustände:
kNotSynchronizedUntilStartup (= 0): Die Zeitbasis ist vor dem Systemstart nicht synchronisiert (Initialzustand) [SWS_TS_01050].
kTimeOut (= 0x1): Die Zeitbasis wurde innerhalb eines vorgegebenen Zeitfensters nicht synchronisiert [SWS_TS_01050].
kSynchronized (= 0x2): Die Zeitbasis ist synchron mit dem Time-Master [SWS_TS_01050].
kSynchToGateway (= 0x3): Die Zeitbasis ist synchron mit dem Gateway [SWS_TS_01050].
Der synchrone Abruf des Status erfolgt über die Methode GetSynchronizationStatus() der Klasse ara::tsync::SynchronizedTimeBaseStatus, welche den Zustand zum Erstellungszeitpunkt des Status-Objekts threadsicher und ausnahmesicher (noexcept) liefert [SWS_TS_01053]. Für Benachrichtigungen bei Statusänderungen existiert in ara/tsync/synchronized_time_base_consumer.h der Typalias SynchronizationNotifier (std::function<void(const SynchronizationStatus &)>), der explizit als nicht threadsicher spezifiziert ist [SWS_TS_14222].
Im Fehlerfall bzw. bei fehlender Synchronisation ist das Verhalten verknüpfter Methoden zu beachten: Wurde die Zeitbasis noch nie synchronisiert und weist den Status kNotSynchronizedUntilStartup auf, liefert die Methode GetCreationTime() ein leeres ara::core::Optional zurück, da kein gültiger Erstellungszeitpunkt in synchronisierter Zeit vorliegt [SWS_TS_01055].
Dieser Text wurde durch ein KI-System generiert und stützt sich ausschließlich auf die Spezifikationsdaten aus AUTOSAR R25-11.
Implementer's Guide folgt (Komplexität I1)
Request a governed re-review of this record. The record is not changed immediately.
=1 The action cannot be executed, because the connection to time sync daemon is currently lost.
kLimitsExceeded
=2 The value exceeds valid value range
kFunctionNotSupported
=3 The requested function is not supported
kInvalidUserDataSize
=4 The length of the user data exceeded the maximum allowed size, defined by UserData::kMaxUserDataSize (currently 3 bytes).
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: bf6ea0154525HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Enumeration TsyncErrc definiert die standardisierten Fehlercodes des Funktionsclusters Time Synchronization [SWS_TS_00901]. Sie basiert auf ara::core::ErrorDomain::CodeType und wird innerhalb des Namespace ara::tsync deklariert; über ara::tsync::TsyncErrorDomain::Errc steht zudem ein Alias bereit [SWS_TS_01266]. Zur Erzeugung vollständiger Fehlerobjekte dient die thread-sichere Funktion MakeErrorCode, welche einen TsyncErrc-Wert mit herstellerspezifischen Zusatzdaten zu einem ara::core::ErrorCode verknüpft [SWS_TS_00910].
Die Spezifikation definiert vier konkrete Fehlerwerte [SWS_TS_00901]:
kDaemonConnectionLost (=1): Die Aktion kann nicht ausgeführt werden, da die Verbindung zum Time-Sync-Daemon unterbrochen ist.
kLimitsExceeded (=2): Ein übergebener Parameter überschreitet den zulässigen Wertebereich. Dies tritt beispielsweise bei SetRateCorrection auf, wenn die angeforderte Ratenkorrektur ungültig ist [SWS_TS_01110].
kFunctionNotSupported (=3): Die angeforderte Funktion wird nicht unterstützt. Interpretation: Dies dürfte Implementierungen betreffen, bei denen optionale Hardware- oder Schnittstellenfunktionen nicht verfügbar sind. Frage Q-e22067d84fd6adb4 (offen)
kInvalidUserDataSize (=4): Die Länge der Nutzdaten überschreitet die durch UserData::kMaxUserDataSize vorgegebene Maximalgröße von 3 Bytes. Dieser Fehler tritt bei SetTime[SWS_TS_01107] sowie SetUserData[SWS_TS_01112] auf.
Methoden zur Zeit- und Datenaktualisierung wie SetTime, UpdateTime, SetRateCorrection und SetUserData der Klasse ara::tsync::SynchronizedTimeBaseProvider liefern Ergebnisse synchron über ara::core::Result<void> zurück und sind als nicht-threadsicher spezifiziert [SWS_TS_01107][SWS_TS_01108][SWS_TS_01110][SWS_TS_01112]. Im Fehlerfall greift laut Spezifikation keine Rollback-Semantik (no_rollback_semantics) [SWS_TS_01107][SWS_TS_01110][SWS_TS_01112].
Dieser Text wurde von einer KI erstellt und basiert auf dem Spezifikationsstand R25-11.
Implementer's Guide folgt (Komplexität I1)
Request a governed re-review of this record. The record is not changed immediately.
Returns a reference to the global TsyncErrorDomain object.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 3848538f31e7HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung
Die synchrone Funktion GetTsyncErrorDomain gehört zum Namensraum ara::tsync und wird über die Header-Datei ara/tsync/tsync_error_domain.h eingebunden [SWS_TS_00909]. Der Aufruf erfolgt parameterlos und dient dem Zweck, eine Referenz auf das globale TsyncErrorDomain-Objekt der Zeitsynchronisation abzurufen [SWS_TS_00909].
Als Rückgabewert liefert die Funktion eine konstante Referenz auf dieses globale Fehlerdomänen-Objekt vom Typ const ara::core::ErrorDomain &[SWS_TS_00909]. Interpretation: Die bereitgestellte Instanz dürfte im Fehlerbehandlungskonzept von AUTOSAR Adaptive als Bezugspunkt dienen, um modulspezifische Fehlercodes aus dem Bereich der Zeitsynchronisation zu identifizieren, zuzuordnen oder mit anderen Fehlerdomänen zu vergleichen. Frage Q-cf1fce412576bca3 (offen)
Fehlerbehandlung und Exception-Sicherheit
Die Funktionssignatur ist explizit als noexcept deklariert und als ausnahmesicher (exception safe) spezifiziert [SWS_TS_00909]. Das bedeutet, dass während der Ausführung keine Ausnahmen geworfen werden können. Da die Funktion lediglich den Verweis auf das bereits existierende globale Domänenobjekt zurückgibt, treten keine internen Fehlerzustände auf, und es existieren weder spezifische Fehlercodes noch Fehlermeldungen für den Aufruf [SWS_TS_00909].
Nebenläufigkeit und Einschränkungen
Gemäß Spezifikation ist GetTsyncErrorDomain als threadsicher (thread-safe) eingestuft [SWS_TS_00909]. Aufrufe können somit parallel aus unterschiedlichen Threads ohne vorherige Synchronisation oder Sperrmechanismen durchgeführt werden. Besondere Reihenfolgebedingungen oder Vorbedingungen für den Aufruf bestehen laut Spezifikation nicht [SWS_TS_00909].
Dieser Text wurde von einer KI erstellt und basiert auf AUTOSAR-Spezifikationen.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: ad8052caa2c8Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Funktion MakeErrorCode dient der synchronen Erstellung eines ara::core::ErrorCode-Objekts für die Fehlerdomäne der Zeitsynchronisation im Namespace ara::tsync[SWS_TS_00910]. Sie ist über den Header ara/tsync/tsync_error_domain.h verfügbar und überführt Fehlernummern der Zeitsynchronisation in das standardisierte Fehlerbehandlungsmodell von AUTOSAR Adaptive.
Parameter und Rückgabewert
code (ara::tsync::TsyncErrc): Bezeichnet die spezifische Fehlernummer der Domäne [SWS_TS_00910].
data (ara::core::ErrorDomain::SupportDataType): Übergibt herstellerspezifische Zusatzdaten zum aufgetretenen Fehler [SWS_TS_00910].
Rückgabewert: Liefert ein initialisiertes ara::core::ErrorCode-Objekt zurück [SWS_TS_00910].
Nebenläufigkeit und Ausführungssicherheit
Die Funktion ist mit noexcept deklariert und als Exception-sicher eingestuft [SWS_TS_00910]; sie wirft zur Laufzeit keine Ausnahmen. Zudem ist die Implementierung als thread-safe spezifiziert [SWS_TS_00910], weshalb sie ohne zusätzliche Synchronisationsmaßnahmen parallel aus mehreren Threads heraus aufgerufen werden darf.
Zusammenspiel
Ergänzend zu dieser Basisfunktion spezifiziert die verwandte Anforderung [SWS_TS_14213] eine analoge Überladung für TsyncFvmErrc im Namespace apext::tsync (Header apext/tsync/fvm_error_domain.h), die als constexpr definiert ist.
Dieser Text wurde von einer KI auf Basis der Spezifikation AUTOSAR R25-11 generiert.
gemini-3.8-flash-medium· 2026-10-13