Biedt een foutdomein en foutcodes voor het aansturen van systeemtoestanden en suspend-to-RAM-processen.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 83e4718c6e9fHerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Biedt een foutdomein en foutcodes voor het aansturen van systeemtoestanden en suspend-to-RAM-processen.
De namespace ara::sm biedt de domeinspecifieke foutafhandeling en coördinatiestructuren voor State Management in AUTOSAR Adaptive (AUTOSAR_AP_SWS_StateManagement §7.5 p. 34). Deze definieert via SmErrc, SmErrorDomain en MakeErrorCode gestandaardiseerde mechanismen voor het detecteren van communicatiefouten, timeouts en afwijzingen bij gesynchroniseerde toestandsovergangen zoals suspend-to-RAM ([SWS_SM_81240], [SWS_SM_81244]). Een doorslaggevende randvoorwaarde is de wederzijdse uitsluiting tussen geautomatiseerde toestandsmachinesturing en directe API-toegang tot coördinatie-instanties ([SWS_SM_00684]).
Context
De namespace ara::sm vormt de fundamentele interface voor State Management van het AUTOSAR Adaptive Platform en stelt typen beschikbaar voor foutafhandeling en voor het aansturen van machinewijde toestandconfiguraties. Naast het centrale foutdomein SmErrorDomain en het bijbehorende uitzonderingstype SmException omvat de module functionele mechanismen voor de synchronisatie van systeemtoestanden, in het bijzonder in het kader van de suspend-to-RAM-functionaliteit conform AUTOSAR_AP_SWS_StateManagement §7.5 “Interaction with Suspend-to-RAM Functionality” p. 34. Tot de belangrijkste interactiepartners behoren besturingstoepassingen zoals de SMControlApplication, de interne StateMachine-controller van de State Management-daemon en via satellieten verbonden processen (AUTOSAR_AP_SWS_StateManagement §7.5.1 “S2R Hub” p. 35).
De architectuur scheidt strikt tussen declaratieve toestandsautomaten en programmatische besturing: volgt het systeem de StateMachine-benadering, dan integreert de besturingsinstantie de coördinatie intern, waardoor externe toepassingen directe toegang tot de C++-API van S2RHub wordt ontzegd ([SWS_SM_00684]; AUTOSAR_AP_SWS_StateManagement §7.7.15 p. 96). Veiligheidsrelevante interacties zijn bovendien onderworpen aan controles van Identity and Access Management (IAM), om te waarborgen dat uitsluitend geautoriseerde processen registraties mogen uitvoeren of toestandsveranderingen mogen aanvragen ([SWS_SM_00706], [SWS_SM_00714], [SWS_SM_00715]).
Het typische gebruik van de namespace is onderverdeeld in de registratie van toepassingsprocessen, het initiëren van gecoördineerde overgangen en het evalueren van de resulterende foutcodes. Voor processen die over suspend-to-RAM-capaciteiten beschikken, begint de cyclus met het beschikbaar stellen van hun interface via Offer ([SWS_SM_00710]). Voorafgaand aan de overgang van het besturingssysteem naar de slaapstand stuurt de aansturende instantie via RequestToEnterSuspendMode een verzoek naar alle geregistreerde satellieten, waarna hun callback EnterSuspendMode wordt geactiveerd ([SWS_SM_00701], [SWS_SM_00711]).
De coördinerende functie blokkeert resp. bewaakt de overgang totdat alle betrokken satellieten hebben geantwoord of zijn afgemeld ([SWS_SM_00702]). Bij het ontwaken vindt analoog de aanroep van RequestToLeaveSuspendMode plaats, die via LeaveSuspendMode het normale bedrijf herstelt ([SWS_SM_00703], [SWS_SM_00711]). Als er bij de communicatie of toestandswisselingen onderbrekingen optreden, grijpt de module terug op de vrije functie MakeErrorCode ([SWS_SM_81244]) om specifieke ara::core::ErrorCode-instanties op basis van de enumeratie SmErrc aan te maken en aan de aanroepende applicatie beschikbaar te stellen.
De foutafhandeling in ara::sm is strikt getypeerd en gebaseerd op de enumeratie SmErrc ([SWS_SM_81240]). Tot de gedefinieerde foutcodes behoren:
kOfferFailed: de service kon niet worden aangeboden omdat de communicatie met de State Management-daemon is mislukt ([SWS_SM_81240]).
kCommunicationFailed: fout op de onderste transportlagen bij de communicatie met satellieten ([SWS_SM_81240]).
kCommunicationTimeout: een aangesproken satelliet heeft de opgegeven responstijd overschreden ([SWS_SM_81240], [SWS_SM_00707]).
kAtLeastOneRejected: minstens één satelliet kon de suspend-toestand niet correct innemen ([SWS_SM_81240]).
kAtLeastOneHadIssuesToLeave: minstens één satelliet meldde kRejected bij het verlaten van de suspend-modus ([SWS_SM_81240], [SWS_SM_00707]).
kAuthenticationRequired: de IAM-authenticatie wordt afgedwongen en vereist een expliciete identiteitscontrole van de satelliet ([SWS_SM_81240], [SWS_SM_00716]).
Het aanbieden van het globale foutdomein via GetSmDomain ([SWS_SM_81251]) en het genereren van foutcodes via MakeErrorCode ([SWS_SM_81244]) zijn gedeclareerd als noexcept en garanderen uitzonderings- en thread-safety. Interpretatie: het opwerpen van een SmException zal vermoedelijk primair toepassing vinden wanneer aanroepers foutcodes van SmErrorDomain willen overdragen naar op uitzonderingen gebaseerde controlestromen, terwijl functionele interfaces bij fouten regulier ara::core::ErrorCode retourneren. Vraag Q-5afcc13f11bdf19b (open)
Deze handleiding is gebaseerd op de specificatie AUTOSAR Adaptive R25-11.
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.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 9557f5fb3cd6Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De hulpfunctie MakeErrorCode dient volgens [SWS_SM_81244] in de namespace ara::sm voor het genereren van een ara::core::ErrorCode-object voor State Management. De functie is gedeclareerd in het headerbestand #include "ara/sm/sm_error_domain.h" en heeft de documentatiestatus DRAFT (AUTOSAR_AP_SWS_StateManagement §8.1.2.1.2 “MakeErrorCode”).
Voor het aanmaken accepteert de synchrone functie twee invoerparameters:
code: de specifieke foutcode van het type SmErrc als foutnummer.
data: fabrikantspecifieke aanvullende gegevens (type ara::core::ErrorDomain::SupportDataType) die aan de fout zijn gekoppeld.
Als retourwaarde levert de functie een volledig ara::core::ErrorCode-object op ([SWS_SM_81244]). Door de aanduiding als constexpr kan de evaluatie reeds tijdens compileertijd plaatsvinden, en het trefwoord noexcept garandeert dat er bij de uitvoering geen excepties worden gegenereerd.
Met betrekking tot gelijktijdigheid en betrouwbaarheid is de functie gespecificeerd als thread-safe en exception safe ([SWS_SM_81244]). Ze kan zodoende zonder aanvullende synchronisatie vanuit willekeurige gelijktijdige aanroepcontexten worden gebruikt.
Deze tekst is gegenereerd door een AI en dient als oriëntatiehulp aan de hand van de specificatie.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel