DEENESPTFRRUARHIKOZHNL
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 Operation StartTimer(std::chrono::duration<Rep,Period>, uint32_t) bereit und liefert ein ara::core::Future<std::uint32_t> zurück; besitzt eine interne Zeitüberwachung (std::chrono::duration).
  • Promise: Asynchrones Bereitstellungsobjekt (ara::core::Promise), empfängt set_value(std::uint32_t) von TimeBase.
  • Future: Asynchrones Rückgabeobjekt (ara::core::Future<std::uint32_t>), bietet die Methoden wait_for(std::chrono::duration), valid() und get() für die Application; wird durch das Signal fulfill von Promise bedient.

3. Dynamisches Verhalten & Sequenzablauf

Ablaufsequenz:

  1. Initialisierung: Application ruft StartTimer(std::chrono::duration<Rep,Period>, uint32_t) auf TimeBase auf und erhält synchron ein ara::core::Future<std::uint32_t> zurück.
  2. Verzweigung alt depending on status of timer:
    • Zweig [ timer has not expired yet ]:
      • Application ruft wait_for(std::chrono::duration) auf Future auf. Nach internem Ablauf der Wartezeit ({std::chrono::duration}) liefert wait_for den booleschen Rückgabewert false.
      • Application prüft mit valid() auf Future und erhält false.
    • Zweig [ timer has expired ]:
      • Nach Ablauf der Timer-Dauer (std::chrono::duration in TimeBase) ruft TimeBase auf Promise die Methode set_value(std::uint32_t) auf, woraufhin Promise das verknüpfte Future erfüllt (fulfill).
      • Nachfolgender Aufruf von wait_for(std::chrono::duration) durch Application liefert nach {std::chrono::duration} den Wert true.
      • Nachfolgender Aufruf von valid() auf Future liefert true.
      • Application ruft get() auf Future auf und erhält das Timer-Ergebnis als std::uint32_t.

4. Normative Relevanz & Entwickler-Hinweise

Normative Relevanz und Implementierungshinweise:

  • Das Diagramm spezifiziert das Polling- bzw. Blockierungsverhalten auf einem durch StartTimer erzeugten Future gemäß der ara::core-Spezifikation für asynchrone Operationen.
  • Ein blockierendes Warten über wait_for signalisiert durch false, dass die gesetzte Timer-Frist noch nicht abgelaufen ist bzw. das Future noch keinen gültigen Zustand eingenommen hat.
  • Erst nachdem die TimeBase den Ablauf über set_value am Promise bestätigt hat, wechselt valid() auf true und get() liefert den Nutzdatenwert (std::uint32_t), ohne zu blockieren oder eine Exception/Fehlerzustand auszulösen.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

Application Future Promise TimeBase | StartTimer(std::chrono::duration<Rep,Period>,uint32 t) | ara::core::Future<std::uint32 t> | wait for(std::chrono::duration) | {std::chrono::duration} false valid() | false | [ timer has expired ] | std::chrono::duration | set value(std::uint32 t) | fulfill | wait for(std::chrono::duration) | {std::chrono::duration} true | valid() | true | get() | std::uint32 t | alt depending on status of timer alt depending on status of timer [ timer has not expired yet ]

Vorkommen in AUTOSAR-Releases (4)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R19-03 AUTOSAR_SWS_TimeSynchronization S. 76 9.2 Figure 9.2: StartTimer - waiting for the future to be valid
R19-03 AUTOSAR_SWS_TimeSynchronization S. 76 9.2 Figure 9.2: StartTimer - waiting for the future to be valid
R19-11 AUTOSAR_SWS_TimeSynchronization S. 90 9.2 Figure 9.2: StartTimer - waiting for the future to be valid
R19-11 AUTOSAR_SWS_TimeSynchronization S. 90 9.2 Figure 9.2: StartTimer - waiting for the future to be valid