namespace ara::sm::s2r
User GuideAI-GEGENEREERD
Coördineert het binnengaan en verlaten van de suspend-to-RAM-toestand voor adaptieve applicaties.
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]).
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:
- Registratie: De S2R-compatibele applicatie maakt haar satelliet aan en roept
ara::sm::s2r::S2RSatellite::Offeraan 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) - Suspend aanvragen: De besturingslaag roept
ara::sm::s2r::S2RHub::RequestToEnterSuspendModeaan ([SWS_SM_00701]). In deStateMachine-benadering wordt dit getriggerd door het elementEnterSuspendToRam, waarbij de configuratiewaardemaxActionItemDurationervan als time-outparameter wordt doorgegeven ([SWS_SM_00689]). - 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]).RequestToEnterSuspendModekeert terug zodra alle satellieten hebben gereageerd, zijn afgemeld of er een time-out is opgetreden ([SWS_SM_00702]). - Besturingssysteem onderbreken: Door het aanroepen van
ara::sm::s2r::S2RHub::EnterSuspendToRamOs(resp. via het actielijstelementEnterSuspendToRamOs) wordt de eigenlijke slaapstand van het besturingssysteem ingeleid ([SWS_SM_00692]). - Ontwaken coördineren: Na de herstart wordt
ara::sm::s2r::S2RHub::RequestToLeaveSuspendModeaangeroepen ([SWS_SM_00703], [SWS_SM_00691]). De hub instrueert de satellieten om de callbackara::sm::s2r::S2RSatellite::LeaveSuspendModeuit te voeren ([SWS_SM_00703], [SWS_SM_00711]). - Deregistratie: Als een proces niet langer wil deelnemen, meldt het zich af via
ara::sm::s2r::S2RSatellite::StopOffer([SWS_SM_00710], [SWS_SM_00713]).
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 schendingInsufficientPermissionsViolationgeactiveerd en de beveiligingsgebeurtenisSEV_ACCESS_CONTROL_SM_IAM_ACCESS_DENIED</a>gerapporteerd ([SWS_SM_00706]). - Weigering van niet-geauthenticeerde satellieten: Wijkt de context van
S2RSatelliteaf van het inSuspendToRamSatelliteMappingvastgelegde 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::Createmet de foutcodekAuthenticationRequired([SWS_SM_00716]). - Communicatietime-out: Antwoordt een geadresseerde satelliet tijdens de suspend- of ontwaakfase niet binnen de termijn
timeout, dan levert de operatie de foutcodekCommunicationTimeoutop ([SWS_SM_00707]). - Problemen bij het verlaten van de suspend-modus: Reageert ten minste één satelliet negatief met
kRejectedop het verzoek om de suspend-modus te verlaten, dan bevestigtRequestToLeaveSuspendModehet totale resultaat metkAtLeastOneHadIssuesToLeave([SWS_SM_00707]). - Gelijktijdig API-gebruik: Het gelijktijdige gebruik van de C++-API van
S2RHubnaast de interneStateMachine-benadering is verboden en leidt tot inconsistenties ([SWS_SM_00684]).
Deze handleiding is gebaseerd op de specificatie AUTOSAR_AP_SWS_StateManagement (release R25-11).
Geen elementgegevens voor deze release
Klassen
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.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel