AUTOSAR_SWS_TimeSynchronization
FIG-8661bab7b87b8633
834 × 865 px
2 Release(s)
Figure 9.2: StartTimer - waiting for the future to be valid
SHA-256 Inhalts-Fingerabdruck:
8661bab7b87b8633a31871dc53f5f2c35c811cdbb1fbb92cccd222a083369b8c
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-series@1 · erstellt am 2026-10-08
1. Diagrammtyp & Architektur-Kontext
UML-Sequenzdiagramm zur Spezifikation des asynchronen Verhaltens der Zeitsynchronisation in der AUTOSAR Adaptive Platform (ara::ts / Time Synchronization). Das Diagramm veranschaulicht das Zusammenspiel zwischen einer anwendenden Instanz, einer Zeitbasis (TimeBase) sowie dem ara::core-Muster aus Promise und Future beim Starten und Überwachen eines Timers.
2. Komponenten, Entitäten & Schnittstellen
Beteiligte Lebenslinien und Schnittstellen:
Application: Aufrufende adaptive Anwendungskomponente.TimeBase: Funktionale Einheit der Zeitsynchronisation, stellt die OperationStartTimer(std::chrono::duration<Rep,Period>, uint32_t)bereit und liefert einara::core::Future<std::uint32_t>zurück; besitzt eine interne Zeitüberwachung (std::chrono::duration).Promise: Asynchrones Bereitstellungsobjekt (ara::core::Promise), empfängtset_value(std::uint32_t)vonTimeBase.Future: Asynchrones Rückgabeobjekt (ara::core::Future<std::uint32_t>), bietet die Methodenwait_for(std::chrono::duration),valid()undget()für dieApplication; wird durch das SignalfulfillvonPromisebedient.
3. Dynamisches Verhalten & Sequenzablauf
Ablaufsequenz:
- Initialisierung:
ApplicationruftStartTimer(std::chrono::duration<Rep,Period>, uint32_t)aufTimeBaseauf und erhält synchron einara::core::Future<std::uint32_t>zurück. - Verzweigung
alt depending on status of timer:- Zweig
[ timer has not expired yet ]:Applicationruftwait_for(std::chrono::duration)aufFutureauf. Nach internem Ablauf der Wartezeit ({std::chrono::duration}) liefertwait_forden booleschen Rückgabewertfalse.Applicationprüft mitvalid()aufFutureund erhältfalse.
- Zweig
[ timer has expired ]:- Nach Ablauf der Timer-Dauer (
std::chrono::durationinTimeBase) ruftTimeBaseaufPromisedie Methodeset_value(std::uint32_t)auf, woraufhinPromisedas verknüpfteFutureerfüllt (fulfill). - Nachfolgender Aufruf von
wait_for(std::chrono::duration)durchApplicationliefert nach{std::chrono::duration}den Werttrue. - Nachfolgender Aufruf von
valid()aufFuturelieferttrue. Applicationruftget()aufFutureauf und erhält das Timer-Ergebnis alsstd::uint32_t.
- Nach Ablauf der Timer-Dauer (
- Zweig
4. Normative Relevanz & Entwickler-Hinweise
Normative Relevanz und Implementierungshinweise:
- Das Diagramm spezifiziert das Polling- bzw. Blockierungsverhalten auf einem durch
StartTimererzeugten Future gemäß derara::core-Spezifikation für asynchrone Operationen. - Ein blockierendes Warten über
wait_forsignalisiert durchfalse, dass die gesetzte Timer-Frist noch nicht abgelaufen ist bzw. das Future noch keinen gültigen Zustand eingenommen hat. - Erst nachdem die
TimeBaseden Ablauf überset_valueamPromisebestätigt hat, wechseltvalid()auftrueundget()liefert den Nutzdatenwert (std::uint32_t), ohne zu blockieren oder eine Exception/Fehlerzustand auszulösen.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.