[SWS_TS_01100]Upstream: RS_TS_00030 Wortlaut noch nicht übernommen
class SynchronizedTimeBaseProvider final {...};
Class SynchronizedTimeBaseProvider is the access to the synchronized timebase referenced by the IntstanceSpecifier. It allows to get the current time_point, the rate deviation, the current status and the received user data
Dient Zeit-Provider-Anwendungen zum Einstellen, Korrigieren und Validieren einer synchronisierten Zeitbasis auf dem Bus.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 29af5ad2e896HerkunftOffene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Dient Zeit-Provider-Anwendungen zum Einstellen, Korrigieren und Validieren einer synchronisierten Zeitbasis auf dem Bus.
Die Move-Only-Klasse ara::tsync::SynchronizedTimeBaseProvider dient Zeit-Provider-Anwendungen zur Einspeisung, Ratenkorrektur und Validierung einer synchronisierten Zeitbasis [SWS_TS_01101][SWS_TS_01110]. Aktualisierungen können entweder sofortige Busübertragungen auslösen oder als lokales Update für den nächsten Übertragungszyklus eingeplant werden [SWS_TS_01107][SWS_TS_01108]. Während Lesezugriffe threadsicher sind, erfordern alle verändernden Methoden sowie die Notifier-Registrierung thread-lokalen oder synchronisierten Aufruf [SWS_TS_01109][SWS_TS_01114].
Kontext
Die Klasse ara::tsync::SynchronizedTimeBaseProvider stellt für Zeit-Provider-Anwendungen den aktiven Steuerungszugang zu einer synchronisierten Zeitbasis bereit, die über einen ara::core::InstanceSpecifier modelliert ist [SWS_TS_01101]. In AUTOSAR Adaptive fungiert die Instanz als Schnittstelle zwischen der bereitstellenden Applikationslogik, dem lokalen Time-Sync-Daemon und den angebundenen Kommunikationsbussen. Über diese Komponente speist die Anwendung neue Zeitwerte und anwenderspezifische Nutzdaten in das System ein, gleicht Driften über Ratenkorrekturen aus und erfasst Validierungsparameter [SWS_TS_01107][SWS_TS_01110][SWS_TS_01114].
Kontextdiagramm: Einbindung des SynchronizedTimeBaseProvider zwischen Provider-Anwendung, Validierung und Busübertragung. Quellen: [SWS_TS_01101], [SWS_TS_01107], [SWS_TS_01114]
Lebenszyklus
Die Instanziierung erfolgt explizit über einen ara::core::InstanceSpecifier, der auf einen PortPrototype verweisen muss, welcher durch ein SynchronizedTimeBaseProviderInterface typisiert ist [SWS_TS_01101]. Der Konstruktor ist ausnahmesicher und threadsicher deklariert [SWS_TS_01101]. Ein Objekt der Klasse ist ein exklusives Move-Only-Objekt: Kopierkonstruktor und Kopierzuweisungsoperator sind explizit gelöscht [SWS_TS_01104][SWS_TS_01105], während Move-Konstruktion und Move-Zuweisung unterstützt werden [SWS_TS_01102][SWS_TS_01103].
Hinsichtlich der Nebenläufigkeit gilt eine strikte Trennung: Reine Leseoperationen auf den Status wie GetCurrentTime(), GetRateDeviation() und GetUserData() sind threadsicher und können nebenläufig ausgeführt werden [SWS_TS_01109][SWS_TS_01111][SWS_TS_01113]. Alle modifizierenden Operationen, die Registrierung von Benachrichtigungen sowie die Zerstörung des Objekts über den Destruktor sind dagegen nicht threadsicher und erfordern anwendungsseitige Synchronisation [SWS_TS_01106][SWS_TS_01107][SWS_TS_01114].
Nutzungspfad
Der typische Einsatz gliedert sich in die Registrierung für Validierungsrückmeldungen sowie die zyklische oder ereignisgesteuerte Zeitübermittlung:
Validierung registrieren: Bei Bedarf hinterlegt die Provider-Anwendung über RegisterTimeValidationNotification() ein Benachrichtigungsobjekt, um neu aufgezeichnete Zeit-Synchronisations-Datenblöcke zu empfangen [SWS_TS_01114]. Es kann maximal ein Benachrichtigungsempfänger aktiv sein; eine Neu-Registrierung überschreibt eine bestehende [SWS_TS_01114], während UnregisterTimeValidationNotification() die Bindung löst [SWS_TS_01115].
Zeitwert setzen: Bei einer sofort erforderlichen Verteilung ruft die Anwendung SetTime() auf. Dies setzt den lokalen Zeitwert und stößt unmittelbar die Übertragung auf den Bus an [SWS_TS_01107]. Soll die Busübertragung stattdessen erst im nächsten regulären Zyklus erfolgen, wird UpdateTime() genutzt, wodurch die Uhr zunächst nur lokal aktualisiert wird [SWS_TS_01108].
Korrektur und Nutzdaten: Über SetRateCorrection() kann die Drift der lokalen Uhr durch einen Korrekturfaktor angepasst werden (Werte kleiner 1.0 verlangsamen die Uhr, Werte größer 1.0 beschleunigen sie) [SWS_TS_01110]. Zusätzliche anwenderspezifische Zeitbasis-Daten lassen sich via SetUserData() aktualisieren [SWS_TS_01112].
Sequenzdiagramm: Ablauf von Notifier-Registrierung und Zeitaktualisierung mit alternativen Busübertragungspfaden. Quellen: [SWS_TS_01107], [SWS_TS_01108], [SWS_TS_01114]
Fehlerszenarien
Methoden mit Rückgabewert ara::core::Result<void> signalisieren Fehlschläge über Fehlercodes des Typs TsyncErrc ohne Rollback-Semantik:
TsyncErrc::kInvalidUserDataSize: Tritt bei SetTime(), UpdateTime() und SetUserData() auf, wenn die übergebenen UserData die Maximallänge von UserData::kMaxUserDataSize (derzeit 3 Bytes) überschreiten [SWS_TS_01107][SWS_TS_01108][SWS_TS_01112].
TsyncErrc::kDaemonConnectionLost: Tritt bei SetTime() auf, falls die IPC-Verbindung zum Time-Sync-Daemon zum Aufrufzeitpunkt unterbrochen ist [SWS_TS_01107].
TsyncErrc::kLimitsExceeded: Wird von SetRateCorrection() zurückgegeben, wenn der angeforderte Ratenkorrekturfaktor außerhalb des zulässigen Wertebereichs liegt [SWS_TS_01110].
TsyncErrc::kFunctionNotSupported: Wird von SetRateCorrection() gemeldet, wenn die zugrunde liegende Plattform oder Zeitbasis keine Ratenkorrektur unterstützt [SWS_TS_01110].
Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive Platform R25-11 (Modul tsync) und wurde für autodocs erstellt.
Method that can be used by time provider applications to receive time sync parameters. A maximum of one notifier can be registered. Every further registration overwrites the current registration.
A method that can be used to set a new time value for the clock. The clock value is only updated locally, transmission on the bus will happen in the next cycle.
🚫Requirement entfallen: Dieses Element ist im gewählten Release nicht mehr enthalten.
Requirement Text as-of this release:
Curation Decisions:
Reachable Artifacts & Dependents:
Date
Actor
Transition
Reason / Rationale
Campaign
2026-08-13
tool
none → valid/unmigrated
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
2026-08-13-status-backfill
function RegisterTimeValidationNotification [SWS_TS_01114]Upstream: RS_TS_00034 Wortlaut noch nicht übernommen, RS_TS_00030 Wortlaut noch nicht übernommen
Method that can be used by time provider applications to receive time sync parameters. A maximum of one notifier can be registered. Every further registration overwrites the current registration.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 89b44278d606Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung
Die Methode RegisterTimeValidationNotification ist Teil der Klasse ara::tsync::SynchronizedTimeBaseProvider und wird über den Header #include "ara/tsync/synchronized_time_base_provider.h" eingebunden [SWS_TS_01114]. Sie dient Time-Provider-Anwendungen dazu, Zeitsynchronisationsparameter zu empfangen [SWS_TS_01114]. Über den Parameter timeBaseValidationNotification wird eine Referenz auf ein Benachrichtigungsobjekt vom Typ ProviderTimeBaseValidationNotification übergeben, welches informiert wird, sobald ein neuer Datenblock für die Zeitbasis bereitsteht [SWS_TS_01114]. Die Methode liefert keinen Rückgabewert (void) [SWS_TS_01114].
Fehlerbehandlung
Die Methode ist als noexcept deklariert und besitzt die Eigenschaft exception safe[SWS_TS_01114]. Sie wirft keine Ausnahmen und gibt keine Fehlercodes zurück [SWS_TS_01114].
Nebenläufigkeit und Einschränkungen
Bei der Verwendung sind folgende Restriktionen zu beachten:
Registrierungsbegrenzung: Es kann maximal ein Notifier registriert werden; jede weitere Registrierung überschreibt die aktuelle Registrierung [SWS_TS_01114].
Threadsicherheit: Die Funktion ist als non_threadsafe spezifiziert [SWS_TS_01114]. Aufrufe an derselben Instanz müssen bei parallelem Zugriff anwendungsseitig synchronisiert werden.
Zusammenspiel
Während diese Funktion die Registrierung auf Seiten des Zeitgebers (Provider) implementiert [SWS_TS_01114], stellt die Klasse ara::tsync::SynchronizedTimeBaseConsumer mit RegisterTimeValidationNotification und dem Typ ConsumerTimeBaseValidationNotification das funktionale Pendant für Zeitverbraucher (Consumer) dar [SWS_TS_01016].
Dieser Nutzungshinweis wurde automatisch auf Basis der AUTOSAR-Spezifikation generiert.
🚫Requirement entfallen: Dieses Element ist im gewählten Release nicht mehr enthalten.
Requirement Text as-of this release:
Curation Decisions:
Reachable Artifacts & Dependents:
Date
Actor
Transition
Reason / Rationale
Campaign
2026-08-13
tool
none → valid/unmigrated
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
2026-08-13-status-backfill
function SetRateCorrection [SWS_TS_01110]Upstream: RS_TS_00029 Wortlaut noch nicht übernommen, RS_TS_00026 Wortlaut noch nicht übernommen, RS_TS_00018 Wortlaut noch nicht übernommen
Rate correction factor applied to the local clock value. A factor smaller than 1.0 slows down the local clock by that factor, a value greater than 1.0 speeds up the clock.
🚫Requirement entfallen: Dieses Element ist im gewählten Release nicht mehr enthalten.
Requirement Text as-of this release:
Curation Decisions:
Reachable Artifacts & Dependents:
Date
Actor
Transition
Reason / Rationale
Campaign
2026-08-13
tool
none → valid/unmigrated
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
2026-08-13-status-backfill
function SetUserData [SWS_TS_01112]Upstream: RS_TS_00029 Wortlaut noch nicht übernommen, RS_TS_00026 Wortlaut noch nicht übernommen, RS_TS_00015 Wortlaut noch nicht übernommen
PortInterfaceMap- A PortPrototype that is referenced by a pingViolation TimeSyncPortPrototypeToTimeBaseMapping needs to be typed by a SynchronizedTimeBaseProviderInterface.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to an PortPrototype of a PortPrototype typed by a SynchronizedTimeBaseProviderInterface
Request a governed re-review of this record. The record is not changed immediately.
🚫Requirement entfallen: Dieses Element ist im gewählten Release nicht mehr enthalten.
Requirement Text as-of this release:
Curation Decisions:
Reachable Artifacts & Dependents:
Date
Actor
Transition
Reason / Rationale
Campaign
2026-08-13
tool
none → valid/unmigrated
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
2026-08-13-status-backfill
function UnregisterTimeValidationNotification [SWS_TS_01115]Upstream: RS_TS_00034 Wortlaut noch nicht übernommen, RS_TS_00030 Wortlaut noch nicht übernommen
Method that can be used by time provider applications to receive time sync parameters.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 4be2caa7a1a0HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Methode UnregisterTimeValidationNotification der Klasse ara::tsync::SynchronizedTimeBaseProvider wird über die Header-Datei ara/tsync/synchronized_time_base_provider.h bereitgestellt [SWS_TS_01115]. Sie dient Zeitanbieteranwendungen (Time Provider Applications) im Kontext der Zeitsynchronisation und der Entgegennahme von Zeitsynchronisationsparametern [SWS_TS_01115]; dem Bezeichner nach dürfte ihr Zweck in der Abmeldung einer zuvor registrierten Benachrichtigung zur Zeitvalidierung liegen. Frage Q-49ba26b4b16dd5c7 (offen)
Hinsichtlich Aufrufkontext und Semantik gelten folgende Vorgaben:
Signatur und Rückgabe: Die Funktion nimmt keine Parameter entgegen und besitzt keinen Rückgabewert (void) [SWS_TS_01115].
Fehlerbehandlung: Die Operation ist als noexcept deklariert und als ausnahmesicher (exception safe) spezifiziert [SWS_TS_01115]. Fehlercodes oder Benachrichtigungen an DET oder DEM sind für diese Schnittstelle nicht vorgesehen.
Nebenläufigkeit: Die Funktion ist explizit als non_threadsafe eingestuft [SWS_TS_01115]. Parallele Aufrufe auf derselben Instanz von SynchronizedTimeBaseProvider müssen daher vom Aufrufer synchronisiert werden.
Im Zusammenspiel der Zeitsynchronisationsarchitektur existiert für Zeitempfänger (Time Consumer Applications) ein direktes Pendant in der Klasse ara::tsync::SynchronizedTimeBaseConsumer (definiert in ara/tsync/synchronized_time_base_consumer.h), welches identische Eigenschaften bezüglich Thread-Sicherheit und Exception-Sicherheit aufweist [SWS_TS_01017].
Dieser Nutzungshinweis wurde automatisiert erstellt und stützt sich ausschließlich auf die Spezifikation R25-11.
🚫Requirement entfallen: Dieses Element ist im gewählten Release nicht mehr enthalten.
Requirement Text as-of this release:
Curation Decisions:
Reachable Artifacts & Dependents:
Date
Actor
Transition
Reason / Rationale
Campaign
2026-08-13
tool
none → valid/unmigrated
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
2026-08-13-status-backfill
function UpdateTime [SWS_TS_01108]Upstream: RS_TS_00010 Wortlaut noch nicht übernommen, RS_TS_00011 Wortlaut noch nicht übernommen, RS_TS_00029 Wortlaut noch nicht übernommen, RS_TS_00026 Wortlaut noch nicht übernommen, RS_TS_00009 Wortlaut noch nicht übernommen
A method that can be used to set a new time value for the clock. The clock value is only updated locally, transmission on the bus will happen in the next cycle.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: a90a9a9d69eeHerkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung
Die Methode UpdateTime aus dem Header ara/tsync/synchronized_time_base_provider.h gehört zur Klasse ara::tsync::SynchronizedTimeBaseProvider[SWS_TS_01108]. Sie dient dazu, einen neuen Zeitwert für die Uhr festzulegen. Die Methode nimmt den zu setzenden Zeitpunkt timePoint mit dem Template-Parameter Duration sowie benutzerdefinierte Anwendungsdaten userData entgegen [SWS_TS_01108]. Der Uhrenwert wird dabei unmittelbar lokal aktualisiert; die Übertragung über den Bus erfolgt erst im darauffolgenden Zyklus [SWS_TS_01108].
Fehlerbehandlung
Der Aufruf ist mit noexcept deklariert und gibt ein ara::core::Result<void> zurück [SWS_TS_01108]. Sollte die Länge der übergebenen userData die maximal zulässige Größe überschreiten, die durch UserData::kMaxUserDataSize auf gegenwärtig 3 Bytes begrenzt ist, schlägt die Operation fehl [SWS_TS_01108]. In diesem Fall liefert das Result-Objekt den Fehlercode TsyncErrc::kInvalidUserDataSize, wobei für den Fehlerfall keine Rollback-Semantik (no_rollback_semantics) vorgesehen ist [SWS_TS_01108].
Nebenläufigkeit und Einschränkungen
Für die Integration ist zu beachten, dass UpdateTime als nicht threadsicher (non_threadsafe) spezifiziert ist [SWS_TS_01108]. Werden Instanzen von SynchronizedTimeBaseProvider in nebenläufigen Ausführungskontexten genutzt, muss der aufrufende Code für eine geeignete Synchronisation sorgen. Die Funktion garantiert jedoch Ausnahmesicherheit (exception safe) [SWS_TS_01108].
Dieser Text wurde von einer KI auf Basis der Spezifikation erstellt.
gemini-3.8-flash-medium· 2026-10-13