AUTOSAR_AP_SWS_StateManagement
FIG-8a5426d26ce07d91
932 × 531 px
3 Release(s)
Figure 7.22: Example for an ActionList using ActionListItem Sleep
SHA-256 Inhalts-Fingerabdruck:
8a5426d26ce07d9140b6835af1504459103368d34b62a2068c8585f1531a7a07
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-description@2 · erstellt am 2026-10-07
1. Diagrammtyp & Architektur-Kontext
- Klassifikation: UML-Zustandsdiagramm-Ausschnitt (State Machine State) mit eingebetteter Aktionsliste (
<<ActionList>>). - Funktionale Einordnung: AUTOSAR Adaptive Platform (AP), Functional Cluster State Management (SM) gemäß
AUTOSAR_AP_SWS_StateManagement(Releases R23-11, R24-11, R25-11; bezugnehmend aufRS_SM_00001,RS_SM_00005,SWS_SM_00601). - Technischer Zweck: Spezifikation und Veranschaulichung der Ausführungssemantik einer
ActionListbeim Eintritt in den ZustandShutdown. Der Fokus liegt auf der deklarativen Steuerung heterogener Aktionen (Agenten-Kommunikation, Synchronisationsbarrieren, Wartezeiten und Function-Group-Zustandswechsel) innerhalb einer deterministischen Zustandsübergangskette.
2. Komponenten, Entitäten & Schnittstellen
<<StateMachineState>> Shutdown:- Konkreter Zustand innerhalb eines SM-Zustandsautomaten (
SWS_SM_00601). - Dient als Trägerzustand für die Entry- bzw. Do-Aktivität in Form einer
ActionList.
- Konkreter Zustand innerhalb eines SM-Zustandsautomaten (
<<ActionList>>:- Container-Metaklasse zur sequenziellen/parallelen Bündelung diskreter
ActionListItem-Instanzen (SWS_SM_00620).
- Container-Metaklasse zur sequenziellen/parallelen Bündelung diskreter
- Enthaltene
ActionListItem-Entitäten & Schnittstellen:Agent1.start(PrepareForShutdown): Aufruf/Event an einen externen bzw. internen Funktionsagenten (Agent1) mit Übergabe des Parameters bzw. TeilzustandsPrepareForShutdown(asynchrone Interaktionsschnittstelle, z. B. viaara::comField/Method/Event).Agent2.stop: Stop-Kommando anAgent2zur Beendigung der jeweiligen Prozess- bzw. Funktionsgruppe.SYNC(ActionListItemSync): Metamodell-Synchronisationsbarriere (SWS_SM_00621). Unterbricht das Voranschreiten in derActionList, bis alle vorhergehenden asynchronen Aktionen quittiert wurden oder ihren Zielzustand erreicht haben.Agent1.stop: Nachgelagerter Stopp-Befehl anAgent1, nachdem dieser die Vorbereitungen abgeschlossen hat.Sleep(120s)(ActionListItemSleep): Zeitgesteuertes Verzögerungselement (SWS_SM_00624). Blockiert das Weiterschreiten in derActionListfür die parametrierte Dauer von 120 Sekunden (z. B. für Nachlaufzeiten, Data-Flushes oder Busruhe-Vorbereitungen).MachineFG::Shutdown: Zustandsänderungsanforderung an das Execution Management (EM) viaara::exec::FunctionGroupStatefür die Maschinen-FunktionsgruppeMachineFG(SWS_SM_00651).
3. Dynamisches Verhalten & Sequenzablauf
- Zustandseintritt: Die State Machine wechselt in den Zustand
Shutdown. Die zugeordneteActionListwird instanziiert bzw. sequenziell gestartet. - Parallele/Asynchrone Initiierung:
Agent1.start(PrepareForShutdown)wird non-blocking abgesetzt.Agent2.stopwird unmittelbar danach non-blocking getriggert.
- Synchronisationsbarriere (
SYNC):- Die Abarbeitung der
ActionListpausiert. State Management wartet auf Bestätigungen (Responses/Acknowledgements) fürAgent1.startundAgent2.stop.
- Die Abarbeitung der
- Sequenzieller Folgeaufruf:
- Sobald beide Quittungen vorliegen, wird
Agent1.stopabgesetzt und synchron/asynchron abgeschlossen.
- Sobald beide Quittungen vorliegen, wird
- Zeitverzögerung (
Sleep):- Das Element
Sleep(120s)pausiert die weitere Bearbeitung derActionListfür exakt 120.000 ms. - Die Verzögerung läuft timerbasiert; andere, unbeteiligte Zustandsautomaten und die interne Event-Loop von SM dürfen dadurch nicht blockieren.
- Das Element
- Abschluss & Maschinenübergang:
- Nach Ablauf des Timers wird
MachineFG::Shutdownangefordert. - Execution Management leitet den finalen Shutdown der Machine-Function-Group (SIGTERM/SIGKILL-Kaskaden der verbleibenden Prozesse) ein.
- Nach Ablauf des Timers wird
4. Normative Relevanz & Entwickler-Hinweise
- Konfigurationsmodell (ARXML):
- Entwickler müssen
ActionListItems im ARXML-Manifest typisieren.Sleeperfordert die Angabe einer Zeiteinheit (TimeValuein Sekunden/Millisekunden) gemäß SchemaAUTOSAR_MOD_StateManagement.
- Entwickler müssen
- Event-Loop & Threading:
ActionListItemSleepdarf im SM-Daemon keinesfalls über ein synchrones OS-Sleep (wieposix::nanosleep/std::this_thread::sleep_for) auf dem Dispatcher-Thread realisiert werden, da sonst Watchdog-Triggerung (ara::phm), IPC-Abfertigung (ara::com) und Signalhandling eingefroren würden. Es muss ein asynchroner Timer (z. B. viatimerfd, Epoll oder Asio-Timer) genutzt werden.
- Watchdog- & Power-Management-Wechselwirkungen:
- Eine Wartezeit von 120 s übersteigt typische Watchdog-Alive-Supervision-Zyklen (
ara::phm). Beteiligte Entitäten müssen während dieser Phase ordnungsgemäß de-registriert oder die Checkpoints angepasst werden. - Hardware-Versorgung (Klemme 30/15 Nachlaufsteuerung) muss für die Dauer des
Sleepgarantiert sein, um Brownouts oder unvollständige Shutdowns zu verhindern.
- Eine Wartezeit von 120 s übersteigt typische Watchdog-Alive-Supervision-Zyklen (
- Fehlerbehandlung (
Error Handling):- Schlägt eine Quittung vor dem
SYNCfehl oder tritt ein Timeout bei Agent1/Agent2 auf, greift das inSWS_SM_00620spezifizierte Fallback-Verhalten (Triggerung einer Transitions-spezifischen Recovery-ActionList oder Eskalation an das PHM/Platform Health Management).
- Schlägt eine Quittung vor dem
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.