DEENESPTFRRUARHIKOZHNL

namespace ara::sm::s2r

User GuideAI-GEGENEREERD

Coördineert het binnengaan en verlaten van de suspend-to-RAM-toestand voor adaptieve applicaties.
DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: a8390997dcdf Herkomst Open vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Coördineert het binnengaan en verlaten van de suspend-to-RAM-toestand voor adaptieve applicaties.

De namespace ara::sm::s2r coördineert het suspend-to-RAM-mechanisme ter optimalisatie van uitschakel- en starttijden in het AUTOSAR Adaptive Platform (SWS StateManagement §7.5 “Interaction with Suspend-to-RAM Functionality”). Via de centrale component S2RHub en geregistreerde S2RSatellite-instanties worden S2R-compatibele processen vóór het binnengaan van de slaapstand van het besturingssysteem geïnformeerd en bij het ontwaken weer overgezet naar normaal bedrijf. Als essentiële randvoorwaarde sluit het gebruik via de interne StateMachine-benadering toegang via de C++-API strikt uit, terwijl IAM-controles alle betrokken procescontexten beveiligen ([SWS_SM_00684]).

Context

De namespace ara::sm::s2r stelt functionaliteiten voor de coördinatie van Suspend-to-RAM (S2R) binnen de module State Management beschikbaar. Doel van dit mechanisme is de optimalisatie van uitschakel- en opstarttijden van de machine door in plaats van een volledige shutdown en koude start gebruik te maken van een RAM-gebaseerde slaapstand van het besturingssysteem (SWS StateManagement §7.5 “Interaction with Suspend-to-RAM Functionality”). Vóór de overgang naar de suspend-toestand van het besturingssysteem moeten functie-entiteiten zonder S2R-ondersteuning worden gedeactiveerd en processen waarvan de executable als suspendToRamAware is gemarkeerd tijdig worden geïnformeerd (SWS StateManagement §7.5 “Interaction with Suspend-to-RAM Functionality”).

De centrale spil wordt gevormd door de klasse S2RHub, die de communicatie met instanties van de abstracte klasse S2RSatellite aanstuurt (SWS StateManagement §7.5.1 “S2R Hub”). De orkestratie van S2RHub kan intern via de StateMachine-benadering van State Management of extern via een C++-API (bijvoorbeeld in een SMControlApplication) plaatsvinden; beide benaderingen sluiten elkaar wederzijds strikt uit ([SWS_SM_00684], SWS StateManagement p. 96). Toegang tot de hub en de registratie van satellieten zijn beveiligd door Identity and Access Management (IAM) ([SWS_SM_00706], [SWS_SM_00714], [SWS_SM_00715]).

diag_s2r_kontext sm_control SMControlApplication / State Management hub ara::sm::s2r::S2RHub sm_control->hub orkestreert suspend en resume satellite ara::sm::s2r::S2RSatellite hub->satellite koordiniert Suspend-Modus process S2R-Aware Process satellite->process roept callbacks aan iam IAM (Identity & Access Management) iam->hub validiert Prozesskontext iam->satellite authentifiziert Satelliten

Contextdiagram: samenspel van State Management, S2RHub, S2RSatellite en IAM. Bronnen: SWS StateManagement §7.5.1 “S2R Hub”, [SWS_SM_00684], [SWS_SM_00715].

Levenscyclus

De instantiëring van ara::sm::s2r::S2RHub vindt plaats afhankelijk van de architectuurbenadering: in de StateMachine-modus wordt de instantie automatisch door State Management aangemaakt zodra de actielijstelementen EnterSuspendToRam, EnterSuspendToRamOS of LeaveSuspendToRam worden beëindigd ([SWS_SM_00690]). Bij het aanroepen van de constructor ara::sm::s2r::S2RHub::S2RHub wordt via IAM gecontroleerd of de huidige procescontext overeenkomt met de configuratie SuspendToRamHubMapping.process ([SWS_SM_00706]). Alleen bevoegde processen mogen de instantiëring uitvoeren ([SWS_SM_00714]).

Satellieten worden geïnitialiseerd via de factory-methode ara::sm::s2r::S2RSatellite::Create ([SWS_SM_00716]). Aangezien S2RSatellite een abstracte klasse is, zou een applicatiespecifieke afleiding geïmplementeerd moeten worden om de concrete reacties beschikbaar te stellen (interpretatie). Vraag Q-e4747345883235e0 (open) De registratie bij de hub vindt actief plaats door het aanroepen van ara::sm::s2r::S2RSatellite::Offer ([SWS_SM_00710]). De hub valideert de procescontext van de satelliet aan de hand van SuspendToRamSatelliteMapping.process ([SWS_SM_00715]). Een satelliet blijft in de toestand van actieve registratie totdat deze zich via ara::sm::s2r::S2RSatellite::StopOffer weer afmeldt ([SWS_SM_00710], [SWS_SM_00713]).

Met betrekking tot de levenscyclus van toestandsmachines geldt de randvoorwaarde dat toestanden die verantwoordelijk zijn voor de suspend-toestand niet mogen worden geconfigureerd met het actielijstelement LeaveSuspendToRam ([SWS_SM_CONSTR_00035]). Dit element is uitsluitend gereserveerd voor de terugkeerfase bij het ontwaken (SWS StateManagement p. 98).

Gebruikspad

Het typische gebruik van de namespace is onderverdeeld in de registratie, de voorbereiding van de slaapstand, de suspend van het besturingssysteem en het daaropvolgende ontwaken:

  1. Registratie: De S2R-compatibele applicatie maakt haar satelliet aan en roept ara::sm::s2r::S2RSatellite::Offer aan om zich bij de hub aan te melden ([SWS_SM_00710]). Vermoedelijk vindt de communicatie tussen hub en satellieten plaats via platforminterne interprocescommunicatie (interpretatie). Vraag (open)
  2. Suspend aanvragen: De besturingslaag roept ara::sm::s2r::S2RHub::RequestToEnterSuspendMode aan ([SWS_SM_00701]). In de StateMachine-benadering wordt dit getriggerd door het element EnterSuspendToRam, waarbij de configuratiewaarde maxActionItemDuration ervan als time-outparameter wordt doorgegeven ([SWS_SM_00689]).
  3. Satellieten informeren: De hub adresseert alle geregistreerde satellieten en initieert de uitvoering van de callback ara::sm::s2r::S2RSatellite::EnterSuspendMode ([SWS_SM_00701], [SWS_SM_00711]). RequestToEnterSuspendMode keert terug zodra alle satellieten hebben gereageerd, zijn afgemeld of er een time-out is opgetreden ([SWS_SM_00702]).
  4. Besturingssysteem onderbreken: Door het aanroepen van ara::sm::s2r::S2RHub::EnterSuspendToRamOs (resp. via het actielijstelement EnterSuspendToRamOs) wordt de eigenlijke slaapstand van het besturingssysteem ingeleid ([SWS_SM_00692]).
  5. Ontwaken coördineren: Na de herstart wordt ara::sm::s2r::S2RHub::RequestToLeaveSuspendMode aangeroepen ([SWS_SM_00703], [SWS_SM_00691]). De hub instrueert de satellieten om de callback ara::sm::s2r::S2RSatellite::LeaveSuspendMode uit te voeren ([SWS_SM_00703], [SWS_SM_00711]).
  6. Deregistratie: Als een proces niet langer wil deelnemen, meldt het zich af via ara::sm::s2r::S2RSatellite::StopOffer ([SWS_SM_00710], [SWS_SM_00713]).
Verloop van de suspend-to-RAM-coördinatieAufrufer (SMControlApplication / SM)ara::sm::s2r::S2RHubara::sm::s2r::S2RSatelliteOffer()Use Case: Overgang naar de suspend-toestandRequestToEnterSuspendMode(timeout)EnterSuspendMode()Terugmelding gereedheidResultEnterSuspendToRamOs()Use Case: Verlaten van de suspend-toestandRequestToLeaveSuspendMode()LeaveSuspendMode()Bevestiging of kRejectedGesamtergebnisUse Case: DeregistrierungStopOffer()

Sequentiediagram: aanroepvolgorde voor het voorbereiden en beëindigen van Suspend-to-RAM. Bronnen: [SWS_SM_00701], [SWS_SM_00702], [SWS_SM_00703], [SWS_SM_00707], [SWS_SM_00710], [SWS_SM_00711].

Foutscenario's

In het samenspel van de klassen treden specifieke foutcondities op:

  • IAM-schending bij aanmaken van de hub: Als de procescontext bij de aanroep van de constructor niet overeenkomt met SuspendToRamHubMapping.process, wordt de schending InsufficientPermissionsViolation geactiveerd en de beveiligingsgebeurtenis SEV_ACCESS_CONTROL_SM_IAM_ACCESS_DENIED</a> gerapporteerd ([SWS_SM_00706]).
  • Weigering van niet-geauthenticeerde satellieten: Wijkt de context van S2RSatellite af van het in SuspendToRamSatelliteMapping vastgelegde proces, dan wijst de hub de registratie af ([SWS_SM_00715]).
  • Authenticatievereiste op de satelliet: Indien de configuratie Force IAM switch is ingesteld, mislukt ara::sm::s2r::S2RSatellite::Create met de foutcode kAuthenticationRequired ([SWS_SM_00716]).
  • Communicatietime-out: Antwoordt een geadresseerde satelliet tijdens de suspend- of ontwaakfase niet binnen de termijn timeout, dan levert de operatie de foutcode kCommunicationTimeout op ([SWS_SM_00707]).
  • Problemen bij het verlaten van de suspend-modus: Reageert ten minste één satelliet negatief met kRejected op het verzoek om de suspend-modus te verlaten, dan bevestigt RequestToLeaveSuspendMode het totale resultaat met kAtLeastOneHadIssuesToLeave ([SWS_SM_00707]).
  • Gelijktijdig API-gebruik: Het gelijktijdige gebruik van de C++-API van S2RHub naast de interne StateMachine-benadering is verboden en leidt tot inconsistenties ([SWS_SM_00684]).

Deze handleiding is gebaseerd op de specificatie AUTOSAR_AP_SWS_StateManagement (release R25-11).

Klassen

S2RHub klasse

S2RHub class.

S2RSatellite abstract class.

Klassendiagram

Abgerundete Rahmen = Namespace- bzw. Klassen-Scopes; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = namespace-fremde bzw. externe Basisklassen. Klicken öffnet die jeweilige Klassen- bzw. cppreference-Seite.

G cluster_ns ara::sm::s2r nara__sm__s2r__S2RHub S2RHub nara__sm__s2r__S2RSatellite S2RSatellite