Coördineert Suspend-to-RAM-meldingen voor satellieten en leidt de slaapstand van het besturingssysteem in.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: c63fb68c31f7HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Coördineert Suspend-to-RAM-meldingen voor satellieten en leidt de slaapstand van het besturingssysteem in.
De klasse ara::sm::s2r::S2RHub coördineert in State Management het binnengaan en verlaten van de Suspend-to-RAM-toestand voor geregistreerde satellietapplicaties (AUTOSAR_AP_EXP_SWArchitecture §9.2.2.1.4 “Interfaces for Suspend-to-Ram Notifications”). Ze stelt een besturingstoepassing in staat om, voorafgaand aan het in de slaapstand brengen van het besturingssysteem, de voorbereiding van de satellieten aan te vragen en deze na het ontwaken weer over te brengen naar de normale werking ([SWS_SM_00701], [SWS_SM_81112]). Het gebruik van de C++-API sluit de interne StateMachine-benadering strikt uit en vereist geverifieerde IAM-machtigingen ([SWS_SM_00684], [SWS_SM_00706]).
Context
De klasse ara::sm::s2r::S2RHub vormt de centrale interface van State Management voor de coördinatie van Suspend-to-RAM-overgangen op het Adaptive Platform (AUTOSAR_AP_EXP_SWArchitecture §9.2.2.1.4 “Interfaces for Suspend-to-Ram Notifications”). Om het uitschakelen en starten van de machine qua tijd te optimaliseren, kan Suspend-to-RAM worden gebruikt in plaats van een volledige herstart van het systeem (AUTOSAR_AP_SWS_StateManagement §7.5 “Interaction with Suspend-to-RAM Functionality”). De primaire taak van de hub bestaat erin alle actief geregistreerde satellietinstanties (ara::sm::s2r::S2RSatellite) te benaderen, om voorafgaand aan het in de suspend-toestand brengen van het besturingssysteem een ordelijke voorbereiding in gang te zetten en na het ontwaken de hervatting van de werking te coördineren ([SWS_SM_00701], [SWS_SM_00703]).
Een instantie van ara::sm::s2r::S2RHub wordt expliciet aangemaakt via een ara::core::InstanceSpecifier ([SWS_SM_81103]). Tijdens de constructie vindt een verplichte IAM-machtigingscontrole plaats, waarbij de aanroepende procescontext wordt gevalideerd tegen de modelmapping (SuspendToRamHubMapping.process) ([SWS_SM_00706], [SWS_SM_00714]). Kopieeroperaties zijn voor de klasse volledig geblokkeerd ([SWS_SM_81107], [SWS_SM_81109]). De klasse ondersteunt echter move-semantiek via move-constructor en move-toewijzingsoperator ([SWS_SM_81106], [SWS_SM_81108]).
Met betrekking tot gelijktijdigheid zijn de geparametriseerde constructor en de move-operaties als thread-safe gespecificeerd ([SWS_SM_81103], [SWS_SM_81106], [SWS_SM_81108]). De virtuele destructor ~S2RHub() en de operationele methoden voor suspend-coördinatie zijn daarentegen niet thread-safe ([SWS_SM_81105], [SWS_SM_81110], [SWS_SM_81111], [SWS_SM_81112]). Aanroepers moeten er daarom voor zorgen dat de vernietiging en de uitvoering van de overgangen sequentieel en zonder concurrerende aanroepen plaatsvinden.
Gebruikspad
Het reguliere verloop voor het inleiden en beëindigen van Suspend-to-RAM is onderverdeeld in drie opeenvolgende fasen:
Voorbereiding van de suspend-toestand: Voorafgaand aan het suspenderen van het besturingssysteem moeten functiegroepen met niet-ondersteunende processen worden afgesloten (AUTOSAR_AP_SWS_StateManagement §7.5). Vervolgens roept de besturingstoepassing RequestToEnterSuspendMode() op de hub aan ([SWS_SM_81110]). De hub brengt alle via Offer geregistreerde satellieten op de hoogte via EnterSuspendMode ([SWS_SM_00701], [SWS_SM_00710], [SWS_SM_00711]). De methode retourneert een ara::core::Future<void> die pas wordt voltooid zodra alle geadresseerde satellieten hebben geantwoord, zich hebben afgemeld of in een time-out zijn geraakt ([SWS_SM_00702], [SWS_SM_81110]).
Activeren van de systeem-suspend: Na succesvolle terugkoppeling van alle satellieten triggert de aanroeper via de synchrone functie EnterSuspendToRamOs() het besturingssysteem om de machine in de Suspend-to-RAM-modus te zetten ([SWS_SM_81112]).
Hervatting na wake-up: Zodra het besturingssysteem weer ontwaakt, initieert de besturingstoepassing via RequestToLeaveSuspendMode() de hervatting van de reguliere werking ([SWS_SM_81111]). De hub verzoekt alle actieve satellieten via hun callback-functie om de suspend-modus te verlaten ([SWS_SM_00703], [SWS_SM_00711]). De geretourneerde future wordt positief opgelost wanneer alle satellieten positief bevestigen of zich via StopOffer afmelden ([SWS_SM_00707], [SWS_SM_81111]).
Foutcondities worden in S2RHub afhankelijk van de fase gesignaleerd via architectuur-violations of via foutcodes in ara::core::Future:
Constructiefouten en violations: Mislukt de machtigingscontrole van het aanroepende proces, dan worden de violation InsufficientPermissionsViolation en de veiligheidsgebeurtenis SEV_ACCESS_CONTROL_SM_IAM_ACCESS_DENIED geactiveerd ([SWS_SM_00706], [SWS_SM_81103]). Andere gedefinieerde violations omvatten InstanceSpecifierMappingIntegrityViolation (ongeldigheid van de model-identifier), PortInterfaceMappingViolation (incompatibel interfacetype), ProcessMappingViolation (ontbrekende procestoewijzing), InstanceSpecifierAlreadyInUseViolation (meervoudig gebruik in hetzelfde proces) en AraNotInitializedViolation (ontbrekende initialisatie van het Adaptive Platform) ([SWS_SM_81103]).
Fouten bij het binnengaan van de suspend-toestand: Als de communicatie op lagere lagen faalt, mislukt de future van RequestToEnterSuspendMode() met SmErrc::kCommunicationFailed ([SWS_SM_81110]). Antwoordt minstens één satelliet niet binnen het configureerbare tijdvenster (standaard: 1000 ms), dan resulteert dit in SmErrc::kCommunicationTimeout ([SWS_SM_81110]). Beide fouten hebben rollback-semantiek. Meldt minstens één satelliet de afwijzing van de overgang, dan levert de future de fout SmErrc::kAtLeastOneRejected op zonder rollback-semantiek ([SWS_SM_81110]).
Fouten bij het verlaten van de suspend-toestand: Analoog daaraan leiden communicatieproblemen of time-outs bij RequestToLeaveSuspendMode() tot respectievelijk SmErrc::kCommunicationFailed en SmErrc::kCommunicationTimeout ([SWS_SM_00707], [SWS_SM_81111]). Antwoordt een satelliet met kRejected, dan meldt de future de foutcode SmErrc::kAtLeastOneHadIssuesToLeave ([SWS_SM_00707], [SWS_SM_81111]).
Afgewezen satellietregistratie: Registratiepogingen van satellieten worden door de hub afgewezen als hun procescontext niet overeenkomt met de modelconfiguratie ([SWS_SM_00715]).
Deze handleiding is gebaseerd op de specificaties van de AUTOSAR Adaptive Platform Release R25-11 en vat de eisen voor de klasse S2RHub samen.
De methode heeft de signatuur void EnterSuspendToRamOs() noexcept;, accepteert geen parameters en levert geen retourwaarde op ([SWS_SM_81112]). Ze wordt gewoonlijk niet direct door gebruikerstoepassingen aangeroepen, maar uitgevoerd door State Management zodra een overeenkomstig actie-element EnterSuspendToRamOs binnen een ActionList wordt getriggerd ([SWS_SM_00692]). Voorwaarde hiervoor is een vooraf aangemaakte instantie van ara::sm::s2r::S2RHub ([SWS_SM_00690]).
Met betrekking tot gelijktijdigheid en randvoorwaarden geldt:
Thread-veiligheid: De functie is expliciet geclassificeerd als niet thread-safe (not-threadsafe) ([SWS_SM_81112]). Gelijktijdige aanroepen op dezelfde instantie moeten worden vermeden.
Foutafhandeling: De bewerking is gespecificeerd als noexcept en exception safe ([SWS_SM_81112]); er worden geen foutcodes geretourneerd of excepties gegenereerd.
Volgorde en uitvoeringscontext: Binnen ActionLists worden actie-elementen sequentieel in de geconfigureerde volgorde gestart ([SWS_SM_00609]). Voorafgaand aan de opschorting van het besturingssysteem via EnterSuspendToRamOs brengen voorafgaande acties (zoals EnterSuspendToRam) de S2R-geschikte applicaties naar de standby-modus (AUTOSAR_AP_SWS_StateManagement §7.7 “Trigger EnterSuspendState”). Het meermaals voorkomen van EnterSuspendToRamOs binnen dezelfde suspend-toestand van een controller is niet voorzien, aangezien herhaling geen functioneel nut heeft en tot conflicten kan leiden (AUTOSAR_AP_SWS_StateManagement §7.7 “Trigger EnterSuspendState”).
Deze tekst is opgesteld door een AI en baseert zich uitsluitend op de specificaties van release R25-11.
Function to Request all S2R Satellite to enter suspend state.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 90177316c9e3Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De functie RequestToEnterSuspendMode van de klasse ara::sm::s2r::S2RHub verzoekt alle actief geregistreerde satellieten om over te schakelen naar de suspend-modus [SWS_SM_81110]. De uitvoering wordt in State Management typisch getriggerd door een EnterSuspendToRam ActionListItem, waarbij de configuratie maxActionItemDuration als waarde voor de parameter timeout wordt doorgegeven [SWS_SM_00689].
Gebruik en semantiek: Na de aanroep stuurt de hub een bericht naar alle geregistreerde S2R Satellite-instanties, wat hun callback ara::sm::s2r::S2RSatellite::EnterSuspendMode activeert [SWS_SM_00701]. De functie accepteert de geheeltallige parameter timeout in milliseconden (standaardwaarde: 1000 ms) en retourneert een ara::core::Future<void>[SWS_SM_81110]. De bewerking keert terug zodra alle geadresseerde satellieten hebben geantwoord, zijn afgemeld of er een time-out is opgetreden [SWS_SM_00702]. Een afmelding via StopOffer geldt als een succesvolle terugmelding [SWS_SM_00702].
Foutafhandeling: Het totale resultaat is positief wanneer alle satellieten instemmen of zich afmelden [SWS_SM_00702]. Mislukt de communicatie op lagere lagen, dan wordt de fout SmErrc::kCommunicationFailed met rollback-semantiek geretourneerd [SWS_SM_00702][SWS_SM_81110]. Antwoordt minstens één satelliet niet tijdig, dan resulteert dit in de fout SmErrc::kCommunicationTimeout met rollback-semantiek [SWS_SM_00702][SWS_SM_81110]. Reageert een satelliet met kRejected, dan levert de functie SmErrc::kAtLeastOneRejected zonder rollback-semantiek [SWS_SM_00702][SWS_SM_81110].
Gelijktijdigheid: De methode is gedeclareerd als noexcept en uitzonderingsveilig (exception safe), maar niet thread-safe (not-threadsafe) [SWS_SM_81110].
Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie AUTOSAR R25-11.
ara::core::Future< void > RequestToLeaveSuspendMode (int timeout=1000) noexcept; DIRECTION NOT timeout -- DEFINED
Function to request all registered S2R Satellite to leave suspend state.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 374258ce3ad7Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De methode RequestToLeaveSuspendMode van de klasse ara::sm::s2r::S2RHub coördineert het wekken van applicaties na een suspend-to-RAM-toestand. Volgens [SWS_SM_00703] stuurt de functie een bericht naar alle actief geregistreerde instanties van S2R Satellite om daar LeaveSuspendMode aan te roepen. In State Management wordt de aanroep automatisch uitgevoerd wanneer het ActionListItem LeaveSuspendToRam wordt geactiveerd ([SWS_SM_00691]).
Via de parameter timeout (standaardwaarde 1000) wordt de bewakingsduur voor de terugmeldingen van de satellieten vastgelegd ([SWS_SM_81111]). De functie levert een ara::core::Future<void> op, die gereed is zodra alle geadresseerde satellieten hebben geantwoord, zijn afgemeld of een time-out hebben opgelopen ([SWS_SM_00707]). Het totale resultaat geldt als succesvol wanneer alle satellieten positief bevestigen of zich regulier via StopOffer afmelden.
Foutafhandeling
Treedt er bij de uitvoering een fout op, dan stelt het Future overeenkomstige foutcodes uit SmErrc beschikbaar ([SWS_SM_81111]):
SmErrc::kCommunicationTimeout: Minstens één satelliet heeft niet tijdig binnen de time-out geantwoord ([SWS_SM_00707]).
SmErrc::kCommunicationFailed: Er is een interne overdrachtsfout op lagere communicatielagen opgetreden ([SWS_SM_00707]).
SmErrc::kAtLeastOneHadIssuesToLeave: Minstens één satelliet heeft het verzoek negatief beantwoord met kRejected ([SWS_SM_00707]).
Gelijktijdigheid en beperkingen
De interface is gespecificeerd als noexcept (exception safe), maar geclassificeerd als not-threadsafe ([SWS_SM_81111]). Volgens de ontwerprestrictie [SWS_SM_CONSTR_00035] mag het activerende ActionListItem LeaveSuspendToRam niet worden toegewezen aan suspend-toestanden, maar is het uitsluitend bedoeld voor toestanden van de controller die het beëindigen van de suspend-to-RAM-modus besturen (SWS StateManagement §7.7 “ActionListItem”).
Deze gebruiksinstructie is automatisch gegenereerd op basis van de specificatie van AUTOSAR R25-11.
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-low· 2026-10-13 · Duits origineel