DEENESPTFRRUARHIKOZHNL

namespace ara::sm

User GuideAI-GEGENEREERD

Biedt een foutdomein en foutcodes voor het aansturen van systeemtoestanden en suspend-to-RAM-processen.
DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 83e4718c6e9f Herkomst Open 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]).

G app SMControlApplication of StateMachine hub S2RHub / State Management Daemon app->hub S2RHub-Steuerung [SWS_SM_00684] errdomain SmErrorDomain (ara::sm) app->errdomain Foutcontrole [SWS_SM_81251] satellite S2RSatellite (Prozesskontext) hub->satellite Suspend-Trigger [SWS_SM_00701] hub->errdomain Fehlercode erzeugen [SWS_SM_81240] satellite->hub Offer / Status [SWS_SM_00710]

Contextdiagram: rollenverdeling en interactiepaden tussen besturingstoepassing, State Management-daemon, satellieten en foutdomein. Bronnen: [SWS_SM_00684], [SWS_SM_00701], [SWS_SM_00710], [SWS_SM_81240], [SWS_SM_81251].

Gebruikspad

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.

Verloop van de suspend-to-RAM-coördinatie en foutafhandelingSMControlApplicationS2RHubS2RSatelliteSmErrorDomainUse Case: Suspend-AnforderungRequestToEnterSuspendMode()EnterSuspendMode() CallbackaltSatelliten quittieren erfolgreichBevestiging zonder foutSuccesrespons (resultaat positief)Minstens één satelliet wijst afTerugmelding kRejectedMakeErrorCode(SmErrc::kAtLeastOneRejected)ara::core::ErrorCodeFehlercode kAtLeastOneRejected

Sequentiediagram: typisch verloop van de suspend-coördinatie met satellieten en foutafhandeling. Bronnen: [SWS_SM_00701], [SWS_SM_00702], [SWS_SM_00707], [SWS_SM_81240], [SWS_SM_81244].

Foutscenario's

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.

Themakaart

Typen en constanten

1

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 nara__sm__SmErrorDomain SmErrorDomain next_ara__core__ErrorDomain ara::core::ErrorDomain nara__sm__SmErrorDomain->next_ara__core__ErrorDomain nara__sm__SmException SmException next_ara__core__Exception ara::core::Exception nara__sm__SmException->next_ara__core__Exception

Detailweergave

Kies een item in de inhoudsopgave.

Klassen

Defines the error domain for State Management.

erft van ara::core::ErrorDomain

Exception type thrown by State Management.

erft van ara::core::Exception

Functies

GetSmDomain functie

Returns the global SmErrorDomain object.

constexpr const ara::core::ErrorDomain & GetSmDomain () noexcept;

Creates an error code.

constexpr ara::core::ErrorCode MakeErrorCode (SmErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;

Typen en constanten

SmErrc enumeratie

Defines an enumeration class for the State Management error codes.

enum class SmErrc : ara::core::ErrorDomain::CodeType {...};

Enumeraties

enumeratie SmErrc [SWS_SM_81240] Upstream: RS_AP_00119

enum class SmErrc :          ara::core::ErrorDomain::CodeType {...};

Defines an enumeration class for the State Management error codes.

Header-Datei#include "ara/sm/sm_error_domain.h"
Forwarding-Header#include "ara/sm/sm_fwd.h"
Scopenamespace ara::sm
SymbolSmErrc
Basistypara::core::ErrorDomain::CodeType

Werte

EnumeratorBeschreibung
kOfferFailed=2 Service could not be offered due to failure of communication with Sm daemon
kCommunicationFailed=3 Communication to satellites failed on lower layers.
kCommunicationTimeout=4 Timeout of communication with satellites.
kAtLeastOneRejected=5 At least one Satellite instance had issues to enter Suspend Mode.
kAtLeastOneHadIssuesToLeave=6 At least one Satellite instance had issues to leave Suspend Mode.
kRejected=7 Issue to enter or leave the Suspend Mode.
kAuthenticationRequired=8 S2R Satellite requires IAM authentication. ara::sm::s2r:: S2RSatellite::S2RSatellite has to be used instead.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_SM_81240
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_SM_81240@rel:R25-11#d6d909b9
Content hash
d6d909b9
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_StateManagement.pdf#nameddest=SWS_SM_81240
Status: valid/unmigrated Version: rel:R25-11#5d63dfbc Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_SM_81240@rel:R25-11#5d63dfbc
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

Documentatie van de vrije functies

functie GetSmDomain [SWS_SM_81251] Upstream: RS_AP_00119, RS_AP_00159

constexpr const ara::core::ErrorDomain & GetSmDomain () noexcept;

Returns the global SmErrorDomain object.

Header-Datei#include "ara/sm/sm_error_domain.h"
Scopenamespace ara::sm
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Rückgabewert

TypBeschreibung
const ara::core::ErrorDomain &The global SmErrorDomain object.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_SM_81251
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_SM_81251@rel:R25-11#6da518a4
Content hash
6da518a4
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_StateManagement.pdf#nameddest=SWS_SM_81251
Status: valid/unmigrated Version: rel:R25-11#e09ae583 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_SM_81251@rel:R25-11#e09ae583
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

functie MakeErrorCode [SWS_SM_81244] Upstream: RS_AP_00119, RS_AP_00159

constexpr ara::core::ErrorCode MakeErrorCode (SmErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;

Creates an error code.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 9557f5fb3cd6 Herkomst
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.

Implementer's Guide volgt (complexiteit I1)

Header-Datei#include "ara/sm/sm_error_domain.h"
Scopenamespace ara::sm
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
codeError code number.
dataVendor defined data associated with the error.

Rückgabewert

TypBeschreibung
ara::core::ErrorCodeAn ErrorCode object.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_SM_81244
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_SM_81244@rel:R25-11#0d451364
Content hash
0d451364
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_StateManagement.pdf#nameddest=SWS_SM_81244
Status: valid/unmigrated Version: rel:R25-11#7c0ada43 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_SM_81244@rel:R25-11#7c0ada43
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill