Liefert einen konsistenten Zeit- und Status-Snapshot einer synchronisierten Zeitbasis zur Auswertung.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: fbf296ab413aHerkunftOffene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Liefert einen konsistenten Zeit- und Status-Snapshot einer synchronisierten Zeitbasis zur Auswertung.
Die Klasse ara::tsync::SynchronizedTimeBaseStatus kapselt einen unveränderlichen Snapshot einer synchronisierten Zeitbasis zum Erstellungszeitpunkt. Sie stellt Methoden bereit, um lokale und synchronisierte Erstellungszeitstempel, den Synchronisationszustand sowie Statusflags zur Ratenkorrektur und anwenderspezifische Nutzdaten thread-sicher auszulesen [SWS_TS_01053]. Falls die Zeitbasis seit Systemstart noch nicht synchronisiert wurde, liefert die Abfrage der synchronisierten Zeit ein leeres Optional [SWS_TS_01055]. Da der Standardkonstruktor gelöscht ist, wird das Objekt typischerweise von der Zeitbasis erzeugt und per Wertsemantik an die Anwendung übergeben.
Kontext
Die Klasse ara::tsync::SynchronizedTimeBaseStatus repräsentiert einen unveränderlichen Schnappschuss (Snapshot) eines Zeitpunkts einschließlich aller zugehörigen Zustände einer synchronisierten Zeitbasis. In verteilten automobilen Systemen dient sie der zeitlichen Entkopplung zwischen der dynamisch fortschreitenden Zeitbasis und der auswertenden Anwendung: Statt flüchtige Zustände direkt auf der laufenden Zeitbasis abzufragen, erhält die Anwendung ein in sich konsistentes Abbild der Zeit- und Statusinformationen zum Erstellungszeitpunkt des Objekts. Die Klasse führt dabei Zeitwerte der lokalen Monouhr sowie der synchronisierten Zeit zusammen und verknüpft diese mit dem Synchronisationszustand [SWS_TS_01053], Statusflags zur Ratenkorrektur sowie anwendungsspezifischen Nutzdaten, die vom Time Master der Zeitbasis empfangen wurden [SWS_TS_01056]. Als wesentliche Interaktionspartner treten somit die bereitstellende Zeitbasis des Moduls tsync und die konsumierende Anwendung auf.
Lebenszyklus
Der Lebenszyklus einer Instanz von SynchronizedTimeBaseStatus ist auf die Erhaltung der Snapshot-Konsistenz ausgelegt:
Erzeugung: Der Standardkonstruktor ist gelöscht ([SWS_TS_01061]). Anwendungen können Statusobjekte somit nicht instanziieren; die Erzeugung dürfte ausschließlich intern durch die jeweilige Zeitbasis der Plattform erfolgen. Frage Q-ed50a9c63b8e2481 (offen)
Besitz und Übergabe: Um den Snapshot per Wertsemantik an Anwendungen zurückzugeben, stellt die Klasse einen noexcept-Kopierkonstruktor bereit ([SWS_TS_01058]). Für ressourceneffiziente Eigentumsübertragungen existieren zudem ein Move-Konstruktor ([SWS_TS_01057]) sowie entsprechende Kopier- und Verschiebe-Zuweisungsoperatoren ([SWS_TS_01060], [SWS_TS_01059]). Die empfangende Anwendung übernimmt den vollständigen Besitz des Objekts.
Zerstörung: Der Destruktor ist als Standarddestruktor mit noexcept spezifiziert ([SWS_TS_01062]) und gibt Ressourcen deterministisch frei.
Nebenläufigkeit: Alle lesenden Methoden zur Statusabfrage sind als thread-safe und ausnahmesicher (exception safe) definiert ([SWS_TS_14176], [SWS_TS_01055]). Mehrere Threads können denselben Snapshot somit nebenläufig und ohne zusätzliche Synchronisation auswerten. Lediglich die Zuweisungs- und Konstruktionsoperationen sind non_threadsafe ([SWS_TS_01057], [SWS_TS_01058]).
Nutzungspfad
Sobald eine Anwendung eine Instanz von SynchronizedTimeBaseStatus von der Zeitbasis erhalten hat ([SWS_TS_01058]), erfolgt die Auswertung typischerweise entlang einer festgelegten Reihenfolge:
Zunächst prüft die Anwendung die synchronisierte Erstellungszeit mittels GetCreationTime() ([SWS_TS_01055]). War die Zeitbasis seit dem Systemstart noch nie synchronisiert, liefert der Aufruf ein leeres ara::core::Optional. In diesem Fall kann die Anwendung über GetCreationLocalTime() ([SWS_TS_14176]) auf den Erstellungszeitpunkt bezogen auf die lokale Monouhr (ara::core::SteadyClock) ausweichen.
Im synchronisierten Zustand ermittelt die Anwendung über GetSynchronizationStatus() ([SWS_TS_01053]) die exakte Synchronisationsphase und prüft mit GetLeapJump() ([SWS_TS_01054]), ob und in welche Richtung seit der vorangegangenen Snapshot-Erzeugung ein Zeitsprung aufgetreten ist. Anschließend wird kontrolliert, ob eine Ratenkorrektur berechnet wird (GetRateCorrected(), [SWS_TS_14226]) und ob die berechnete Ratenabweichung den Schwellenwert rateCorrectionThreshold übersteigt (GetRateExceeded(), [SWS_TS_14229]). Zuletzt können über GetUserData() ([SWS_TS_01056]) vom Time Master übermittelte Nutzdaten abgefragt werden.
Die Schnittstelle von SynchronizedTimeBaseStatus ist vollständig als noexcept deklariert und wirft keine C++-Ausnahmen. Ungültige Zustände oder Fehler werden über semantische Rückgabetypen signalisiert:
Ein fehlender Synchronisationsbezug wird durch ein leeres ara::core::Optional bei GetCreationTime() abgebildet, wenn die Zeitbasis seit Systemstart den Status kNotSynchronizedUntilStartup aufweist ([SWS_TS_01055]). Schwellenwertverletzungen bei der Frequenznachführung meldet GetRateExceeded() über den booleschen Wert in ara::core::Result<bool> ([SWS_TS_14229]). Standardisierte Fehlercodes sind für GetRateCorrected() ([SWS_TS_14226]) und GetRateExceeded() ([SWS_TS_14229]) nicht spezifiziert; Interpretation: Ein im Result transportierter Fehlerzustand dürfte auf interne Plattform- oder Treiberprobleme hindeuten. Frage (offen)
Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive R25-11 (Modul tsync) und wurde durch einen KI-Kurations-Assistenten aufbereitet.
SynchronizedTimeBaseStatus & operator= (const SynchronizedTimeBase Status &) noexcept; DIRECTION NOT const SynchronizedTime -- DEFINED BaseStatus &SWS_TS_01060
Dokumentation der Methoden
function GetCreationLocalTime [SWS_TS_14176]Upstream: RS_TS_00021 Wortlaut noch nicht übernommen
The point in time at which this object was created. Time point is expressed in synchronized time. If time was never synchronized (SynchronizationStatus = kNotSynchronizedUntilStartup), the returned optional is empty (i.e., no valid value).
Request a governed re-review of this record. The record is not changed immediately.
gemini-3.8-flash-medium· 2026-10-13