Koordiniert Suspend-to-RAM-Benachrichtigungen für Satelliten und leitet den Ruhezustand des Betriebssystems ein.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: c63fb68c31f7HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Koordiniert Suspend-to-RAM-Benachrichtigungen für Satelliten und leitet den Ruhezustand des Betriebssystems ein.
Die Klasse ara::sm::s2r::S2RHub koordiniert im State Management das Eintreten und Verlassen des Suspend-to-RAM-Zustands für registrierte Satelliten-Anwendungen (AUTOSAR_AP_EXP_SWArchitecture §9.2.2.1.4 „Interfaces for Suspend-to-Ram Notifications“). Sie ermöglicht einer Steuerungsanwendung, vor dem Versetzen des Betriebssystems in den Ruhezustand die Vorbereitung der Satelliten anzufordern und diese nach dem Aufwachen wieder in den Normalbetrieb zu überführen ([SWS_SM_00701], [SWS_SM_81112]). Die Nutzung der C++-API schließt den internen StateMachine-Ansatz strikt aus und erfordert verifizierte IAM-Berechtigungen ([SWS_SM_00684], [SWS_SM_00706]).
Kontext
Die Klasse ara::sm::s2r::S2RHub bildet die zentrale Schnittstelle des State Managements zur Koordination von Suspend-to-RAM-Übergängen auf der Adaptive Platform (AUTOSAR_AP_EXP_SWArchitecture §9.2.2.1.4 „Interfaces for Suspend-to-Ram Notifications“). Um das Herunterfahren und Starten der Maschine zeitlich zu optimieren, kann ein Suspend-to-RAM anstelle eines vollständigen Systemneustarts genutzt werden (AUTOSAR_AP_SWS_StateManagement §7.5 „Interaction with Suspend-to-RAM Functionality“). Die primäre Aufgabe des Hubs besteht darin, alle aktiv registrierten Satelliten-Instanzen (ara::sm::s2r::S2RSatellite) anzusprechen, um vor dem Versetzen des Betriebssystems in den Suspend-Zustand eine geordnete Vorbereitung einzuleiten und nach dem Aufwachen die Wiederaufnahme des Betriebs zu koordinieren ([SWS_SM_00701], [SWS_SM_00703]).
Eine Instanz von ara::sm::s2r::S2RHub wird explizit über einen ara::core::InstanceSpecifier erzeugt ([SWS_SM_81103]). Während der Konstruktion erfolgt eine zwingende IAM-Berechtigungsprüfung, bei welcher der aufrufende Prozesskontext gegen das Modell-Mapping (SuspendToRamHubMapping.process) validiert wird ([SWS_SM_00706], [SWS_SM_00714]). Kopieroperationen sind für die Klasse vollständig unterbunden ([SWS_SM_81107], [SWS_SM_81109]). Die Klasse unterstützt jedoch Move-Semantik via Move-Konstruktor und Move-Zuweisungsoperator ([SWS_SM_81106], [SWS_SM_81108]).
Hinsichtlich der Nebenläufigkeit sind der parametrisierte Konstruktor sowie die Move-Operationen als threadsicher spezifiziert ([SWS_SM_81103], [SWS_SM_81106], [SWS_SM_81108]). Der virtuelle Destruktor ~S2RHub() sowie die operativen Methoden zur Suspend-Koordination sind hingegen nicht threadsicher ([SWS_SM_81105], [SWS_SM_81110], [SWS_SM_81111], [SWS_SM_81112]). Aufrufer müssen daher sicherstellen, dass die Zerstörung und die Durchführung der Übergänge sequenziell und ohne konkurrierende Aufrufe erfolgen.
Nutzungspfad
Der reguläre Ablauf zur Einleitung und Beendigung des Suspend-to-RAM gliedert sich in drei aufeinanderfolgende Phasen:
Vorbereitung des Suspend-Zustands: Vor dem Suspendieren des Betriebssystems müssen Funktionsgruppen mit nicht-unterstützenden Prozessen heruntergefahren werden (AUTOSAR_AP_SWS_StateManagement §7.5). Anschließend ruft die Steuerungsanwendung RequestToEnterSuspendMode() am Hub auf ([SWS_SM_81110]). Der Hub benachrichtigt alle über Offer registrierten Satelliten via EnterSuspendMode ([SWS_SM_00701], [SWS_SM_00710], [SWS_SM_00711]). Die Methode liefert ein ara::core::Future<void> zurück, das erst abgeschlossen wird, sobald alle adressierten Satelliten geantwortet haben, sich abgemeldet haben oder in einen Timeout gelaufen sind ([SWS_SM_00702], [SWS_SM_81110]).
Auslösen des System-Suspend: Nach erfolgreicher Rückmeldung aller Satelliten triggert der Aufrufer über die synchrone Funktion EnterSuspendToRamOs() das Betriebssystem, um die Maschine in den Suspend-to-RAM-Modus zu versetzen ([SWS_SM_81112]).
Wiederaufnahme nach Wake-up: Sobald das Betriebssystem wieder aufwacht, initiiert die Steuerungsanwendung über RequestToLeaveSuspendMode() die Wiederaufnahme des regulären Betriebs ([SWS_SM_81111]). Der Hub fordert alle aktiven Satelliten über deren Rückruffunktion auf, den Suspend-Modus zu verlassen ([SWS_SM_00703], [SWS_SM_00711]). Das zurückgegebene Future wird positiv aufgelöst, wenn alle Satelliten positiv quittieren oder sich über StopOffer abmelden ([SWS_SM_00707], [SWS_SM_81111]).
Fehlerbedingungen werden in S2RHub je nach Phase über Architektur-Violations oder über Fehlercodes im ara::core::Future signalisiert:
Konstruktionsfehler und Violations: Schlägt die Berechtigungsprüfung des aufrufenden Prozesses fehl, werden die Violation InsufficientPermissionsViolation sowie das Sicherheitsereignis SEV_ACCESS_CONTROL_SM_IAM_ACCESS_DENIED ausgelöst ([SWS_SM_00706], [SWS_SM_81103]). Weitere definierte Violations umfassen InstanceSpecifierMappingIntegrityViolation (Ungültigkeit des Modellbezeichners), PortInterfaceMappingViolation (inkompatibler Schnittstellentyp), ProcessMappingViolation (fehlende Prozesszuordnung), InstanceSpecifierAlreadyInUseViolation (Mehrfachverwendung im selben Prozess) und AraNotInitializedViolation (fehlende Initialisierung der Adaptive Platform) ([SWS_SM_81103]).
Fehler beim Eintreten in den Suspend-Zustand: Wenn die Kommunikation auf unteren Schichten scheitert, schlägt das Future von RequestToEnterSuspendMode() mit SmErrc::kCommunicationFailed fehl ([SWS_SM_81110]). Antwortet mindestens ein Satellit nicht innerhalb des konfigurierbaren Zeitfensters (Standard: 1000 ms), resultiert dies in SmErrc::kCommunicationTimeout ([SWS_SM_81110]). Beide Fehler besitzen Rollback-Semantik. Meldet mindestens ein Satellit die Ablehnung des Übergangs, liefert das Future den Fehler SmErrc::kAtLeastOneRejected ohne Rollback-Semantik ([SWS_SM_81110]).
Fehler beim Verlassen des Suspend-Zustands: Analog dazu führen Kommunikationsprobleme oder Timeouts bei RequestToLeaveSuspendMode() zu SmErrc::kCommunicationFailed bzw. SmErrc::kCommunicationTimeout ([SWS_SM_00707], [SWS_SM_81111]). Antwortet ein Satellit mit kRejected, meldet das Future den Fehlercode SmErrc::kAtLeastOneHadIssuesToLeave ([SWS_SM_00707], [SWS_SM_81111]).
Abgewiesene Satellitenregistrierung: Registrierungsversuche von Satelliten werden vom Hub abgewiesen, falls deren Prozesskontext nicht mit der Modellkonfiguration übereinstimmt ([SWS_SM_00715]).
Dieser Leitfaden basiert auf den Spezifikationen der AUTOSAR Adaptive Platform Release R25-11 und fasst die Anforderungen an die Klasse S2RHub zusammen.
Die Methode besitzt die Signatur void EnterSuspendToRamOs() noexcept;, nimmt keine Parameter entgegen und liefert keinen Rückgabewert ([SWS_SM_81112]). Sie wird typischerweise nicht direkt von Benutzeranwendungen aufgerufen, sondern durch das State Management ausgeführt, sobald ein entsprechendes Aktionselement EnterSuspendToRamOs innerhalb einer ActionList getriggert wird ([SWS_SM_00692]). Voraussetzung hierfür ist eine zuvor erzeugte Instanz von ara::sm::s2r::S2RHub ([SWS_SM_00690]).
Hinsichtlich Nebenläufigkeit und Randbedingungen gilt:
Thread-Sicherheit: Die Funktion ist explizit als nicht threadsicher (not-threadsafe) eingestuft ([SWS_SM_81112]). Nebenläufige Aufrufe an derselben Instanz müssen vermieden werden.
Fehlerbehandlung: Die Operation ist als noexcept und exception safe spezifiziert ([SWS_SM_81112]); es werden keine Fehlercodes zurückgegeben oder Exceptions geworfen.
Reihenfolge und Ausführungskontext: Innerhalb von ActionLists werden Aktionselemente sequenziell in der konfigurierten Reihenfolge gestartet ([SWS_SM_00609]). Vor der Betriebssystem-Suspendierung über EnterSuspendToRamOs überführen vorgelagerte Aktionen (wie EnterSuspendToRam) die S2R-fähigen Applikationen in den Bereitschaftsmodus (AUTOSAR_AP_SWS_StateManagement §7.7 „Trigger EnterSuspendState“). Ein mehrfaches Vorkommen von EnterSuspendToRamOs innerhalb desselben Suspend-Zustands eines Controllers ist nicht vorgesehen, da eine Wiederholung keinen funktionalen Nutzen bringt und zu Konflikten führen kann (AUTOSAR_AP_SWS_StateManagement §7.7 „Trigger EnterSuspendState“).
Dieser Text wurde von einer KI erstellt und basiert ausschließlich auf den Spezifikationen des Releases R25-11.
Function to Request all S2R Satellite to enter suspend state.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 90177316c9e3Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Funktion RequestToEnterSuspendMode der Klasse ara::sm::s2r::S2RHub fordert alle aktiv registrierten Satelliten auf, in den Suspend-Modus zu wechseln [SWS_SM_81110]. Die Ausführung wird im State Management typischerweise durch ein EnterSuspendToRam ActionListItem ausgelöst, wobei die Konfiguration maxActionItemDuration als Wert für den Parameter timeout übergeben wird [SWS_SM_00689].
Verwendung und Semantik: Nach dem Aufruf sendet der Hub eine Nachricht an alle registrierten S2R Satellite-Instanzen, was deren Callback ara::sm::s2r::S2RSatellite::EnterSuspendMode auslöst [SWS_SM_00701]. Die Funktion akzeptiert den ganzzahligen Parameter timeout in Millisekunden (Standardwert: 1000 ms) und gibt ein ara::core::Future<void> zurück [SWS_SM_81110]. Die Operation kehrt zurück, sobald alle adressierten Satelliten geantwortet haben, abgemeldet sind oder ein Timeout eingetreten ist [SWS_SM_00702]. Eine Deregistrierung über StopOffer gilt als erfolgreiche Rückmeldung [SWS_SM_00702].
Fehlerbehandlung: Das Gesamtergebnis ist positiv, wenn alle Satelliten zustimmen oder sich deregistrieren [SWS_SM_00702]. Schlägt die Kommunikation auf unteren Schichten fehl, wird der Fehler SmErrc::kCommunicationFailed mit Rollback-Semantik zurückgegeben [SWS_SM_00702][SWS_SM_81110]. Antwortet mindestens ein Satellit nicht rechtzeitig, resultiert dies im Fehler SmErrc::kCommunicationTimeout mit Rollback-Semantik [SWS_SM_00702][SWS_SM_81110]. Reagiert ein Satellit mit kRejected, liefert die Funktion SmErrc::kAtLeastOneRejected ohne Rollback-Semantik [SWS_SM_00702][SWS_SM_81110].
Nebenläufigkeit: Die Methode ist als noexcept deklariert und ausnahmesicher (exception safe), jedoch nicht threadsicher (not-threadsafe) [SWS_SM_81110].
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR R25-11 generiert.
ara::core::Future< void > RequestToLeaveSuspendMode (int timeout=1000) noexcept; DIRECTION NOT timeout -- DEFINED
Function to request all registered S2R Satellite to leave suspend state.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 374258ce3ad7Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Methode RequestToLeaveSuspendMode der Klasse ara::sm::s2r::S2RHub koordiniert das Aufwecken von Anwendungen nach einem Suspend-to-RAM-Zustand. Gemäß [SWS_SM_00703] sendet die Funktion eine Nachricht an alle aktiv registrierten Instanzen von S2R Satellite, um dort LeaveSuspendMode aufzurufen. Im State Management wird der Aufruf automatisch ausgeführt, wenn das ActionListItem LeaveSuspendToRam ausgelöst wird ([SWS_SM_00691]).
Über den Parameter timeout (Standardwert 1000) wird die Überwachungsdauer für die Rückmeldungen der Satelliten festgelegt ([SWS_SM_81111]). Die Funktion liefert ein ara::core::Future<void> zurück, welches bereitsteht, sobald alle adressierten Satelliten geantwortet haben, abgemeldet wurden oder in ein Timeout gelaufen sind ([SWS_SM_00707]). Das Gesamtergebnis gilt als erfolgreich, wenn alle Satelliten positiv bestätigen oder sich regulär über StopOffer deregistrieren.
Fehlerbehandlung
Tritt bei der Ausführung ein Fehler auf, stellt das Future entsprechende Fehlercodes aus SmErrc bereit ([SWS_SM_81111]):
SmErrc::kCommunicationTimeout: Mindestens ein Satellit hat nicht rechtzeitig innerhalb des Timeouts geantwortet ([SWS_SM_00707]).
SmErrc::kCommunicationFailed: Ein interner Übertragungsfehler auf unteren Kommunikationsschichten ist aufgetreten ([SWS_SM_00707]).
SmErrc::kAtLeastOneHadIssuesToLeave: Mindestens ein Satellit hat die Anfrage negativ mit kRejected beantwortet ([SWS_SM_00707]).
Nebenläufigkeit und Einschränkungen
Die Schnittstelle ist als noexcept (exception safe) spezifiziert, jedoch als not-threadsafe eingestuft ([SWS_SM_81111]). Gemäß der Entwurfsbeschränkung [SWS_SM_CONSTR_00035] darf das auslösende ActionListItem LeaveSuspendToRam keinen Suspend-Zuständen zugeordnet werden, sondern ist ausschließlich für Zustände des Controllers vorgesehen, die das Beenden des Suspend-to-RAM-Modus steuern (SWS StateManagement §7.7 „ActionListItem“).
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation von AUTOSAR R25-11 generiert.
InsufficientPer- Sent in case the caller had insufficient permissions for the missionsViolation requested operation. InstanceSpeci- InstanceSpecifier either cannot be resolved in the model in the fierMappingIn- context of your executable, or it refers to a model element other tegrityViolation than a PortPrototype. PortInterfaceMap- The type of mapping does not match the expected type of Port pingViolation Interface: {portInterfaceTypeName} referenced by a {mappingType Name}. ProcessMappingVio- Matching InstanceRef exists, but no matching (modelled) Process lation found that matches the (runtime) process. InstanceSpecifier- Violation message that is sent in case a constructor in the ara AlreadyInUseViola- framework was called with an InstanceSpecifier already in use in tion this process. AraNotInitialized- Violation message that is sent in case a constructor or function Violation checks for an initialized ara and identifies that ara is not initialized.
Parameter (in)
Parameter
Beschreibung
instance
instance specifier to the PPortPrototype of a SM...
Request a governed re-review of this record. The record is not changed immediately.
gemini-3.8-flash-medium· 2026-10-13