DEENESPTFRRUARHIKOZHNL

namespace ara::sm

User GuideKI-GENERIERT

Stellt Fehlerdomäne und Fehlercodes zur Steuerung von Systemzuständen und Suspend-to-RAM-Abläufen bereit.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 83e4718c6e9f Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Stellt Fehlerdomäne und Fehlercodes zur Steuerung von Systemzuständen und Suspend-to-RAM-Abläufen bereit.

Der Namespace ara::sm stellt die domänenspezifische Fehlerbehandlung und Koordinationsstrukturen für das State Management in AUTOSAR Adaptive bereit (AUTOSAR_AP_SWS_StateManagement §7.5 S. 34). Er definiert über SmErrc, SmErrorDomain und MakeErrorCode standardisierte Mechanismen zur Erfassung von Kommunikationsfehlern, Timeouts und Ablehnungen bei synchronisierten Zustandsübergängen wie Suspend-to-RAM ([SWS_SM_81240], [SWS_SM_81244]). Eine maßgebliche Randbedingung ist die wechselseitige Ausschließlichkeit zwischen automatisierter Zustandsmaschinensteuerung und direktem API-Zugriff auf Koordinationsinstanzen ([SWS_SM_00684]).

Kontext

Der Namespace ara::sm bildet die fundamentale Schnittstelle für das Zustandsmanagement (State Management) der AUTOSAR Adaptive Platform und stellt Typen zur Fehlerbehandlung sowie zur Steuerung maschinenweiter Zustandskonfigurationen bereit. Neben der zentralen Fehlerdomäne SmErrorDomain und dem zugehörigen Ausnahmetyp SmException umfasst das Modul funktionale Mechanismen zur Synchronisation von Systemzuständen, insbesondere im Rahmen der Suspend-to-RAM-Funktionalität gemäß AUTOSAR_AP_SWS_StateManagement §7.5 „Interaction with Suspend-to-RAM Functionality“ S. 34. Zu den maßgeblichen Interaktionspartnern zählen Steuerungsanwendungen wie die SMControlApplication, der interne StateMachine-Controller des State-Management-Dämons sowie über Satelliten angebundene Prozesse (AUTOSAR_AP_SWS_StateManagement §7.5.1 „S2R Hub“ S. 35).

Die Architektur trennt strikt zwischen deklarativen Zustandsautomaten und programmatischer Steuerung: Folgt das System dem StateMachine-Ansatz, integriert die Steuerungsinstanz die Koordination intern, sodass externen Anwendungen der direkte Zugriff auf die C++-API des S2RHub verwehrt ist ([SWS_SM_00684]; AUTOSAR_AP_SWS_StateManagement §7.7.15 S. 96). Sicherheitsrelevante Interaktionen unterliegen zudem Prüfungen des Identity and Access Management (IAM), um sicherzustellen, dass nur autorisierte Prozesse Registrierungen vornehmen oder Zustandsänderungen anfordern dürfen ([SWS_SM_00706], [SWS_SM_00714], [SWS_SM_00715]).

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

Kontextdiagramm: Rollenverteilung und Interaktionspfade zwischen Steuerungsanwendung, State-Management-Daemon, Satelliten und Fehlerdomäne. Quellen: [SWS_SM_00684], [SWS_SM_00701], [SWS_SM_00710], [SWS_SM_81240], [SWS_SM_81251].

Nutzungspfad

Die typische Nutzung des Namespace gliedert sich in die Registrierung anwendungsseitiger Prozesse, die Auslösung koordinierter Übergänge und die Auswertung resultierender Fehlercodes. Für Prozesse, die über Suspend-to-RAM-Fähigkeiten verfügen, beginnt der Zyklus mit der Bereitstellung ihrer Schnittstelle über Offer ([SWS_SM_00710]). Vor dem Übergang des Betriebssystems in den Ruhezustand sendet die steuernde Instanz mittels RequestToEnterSuspendMode eine Aufforderung an alle registrierten Satelliten, woraufhin deren Callback EnterSuspendMode ausgelöst wird ([SWS_SM_00701], [SWS_SM_00711]).

Die koordinierende Funktion blockiert bzw. überwacht den Übergang, bis alle beteiligten Satelliten geantwortet haben oder abgemeldet wurden ([SWS_SM_00702]). Beim Aufwachen erfolgt analog der Aufruf von RequestToLeaveSuspendMode, welcher über LeaveSuspendMode den Normalbetrieb wiederherstellt ([SWS_SM_00703], [SWS_SM_00711]). Treten bei der Kommunikation oder den Zustandswechseln Abbrüche auf, greift das Modul auf die freie Funktion MakeErrorCode zurück ([SWS_SM_81244]), um spezifische ara::core::ErrorCode-Instanzen auf Basis der Aufzählung SmErrc zu erzeugen und der aufrufenden Applikation bereitzustellen.

Ablauf der Suspend-to-RAM-Koordination und FehlerbehandlungSMControlApplicationS2RHubS2RSatelliteSmErrorDomainUse Case: Suspend-AnforderungRequestToEnterSuspendMode()EnterSuspendMode() CallbackaltSatelliten quittieren erfolgreichBestätigung ohne FehlerErfolgsrückgabe (Resultat positiv)Mindestens ein Satellit lehnt abRückmeldung kRejectedMakeErrorCode(SmErrc::kAtLeastOneRejected)ara::core::ErrorCodeFehlercode kAtLeastOneRejected

Sequenzdiagramm: Typischer Ablauf der Suspend-Koordination mit Satelliten und Fehlerbehandlung. Quellen: [SWS_SM_00701], [SWS_SM_00702], [SWS_SM_00707], [SWS_SM_81240], [SWS_SM_81244].

Fehlerszenarien

Die Fehlerbehandlung in ara::sm ist strikt typisiert und basiert auf der Enumeration SmErrc ([SWS_SM_81240]). Zu den definierten Fehlercodes gehören:

  • kOfferFailed: Der Dienst konnte nicht angeboten werden, da die Kommunikation mit dem State-Management-Dämon fehlgeschlagen ist ([SWS_SM_81240]).
  • kCommunicationFailed: Fehler auf den unteren Transportschichten bei der Kommunikation mit Satelliten ([SWS_SM_81240]).
  • kCommunicationTimeout: Ein angesprochener Satellit hat die vorgegebene Antwortzeit überschritten ([SWS_SM_81240], [SWS_SM_00707]).
  • kAtLeastOneRejected: Mindestens ein Satellit konnte den Suspend-Zustand nicht ordnungsgemäß einnehmen ([SWS_SM_81240]).
  • kAtLeastOneHadIssuesToLeave: Mindestens ein Satellit meldete beim Verlassen des Suspend-Modus kRejected ([SWS_SM_81240], [SWS_SM_00707]).
  • kAuthenticationRequired: Die IAM-Authentifizierung wird erzwungen und verlangt eine explizite Identitätsüberprüfung des Satelliten ([SWS_SM_81240], [SWS_SM_00716]).

Die Bereitstellung der globalen Fehlerdomäne über GetSmDomain ([SWS_SM_81251]) und die Erzeugung von Fehlercodes über MakeErrorCode ([SWS_SM_81244]) sind als noexcept deklariert und garantieren Ausnahme- sowie Threadsicherheit. Interpretation: Das Werfen einer SmException dürfte primär dann Anwendung finden, wenn Aufrufer Fehlercodes der SmErrorDomain in ausnahmebasierte Kontrollflüsse überführen möchten, während funktionale Schnittstellen im Fehlerfall regulär ara::core::ErrorCode zurückliefern. Frage Q-5afcc13f11bdf19b (offen)

Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive R25-11.

Themenkarte

Typen und Konstanten

1

Klassendiagramm

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

Detailansicht

Wähle in der Gliederung einen Eintrag aus.

Klassen

Defines the error domain for State Management.

erbt von ara::core::ErrorDomain

Exception type thrown by State Management.

erbt von ara::core::Exception

Funktionen

GetSmDomain function

Returns the global SmErrorDomain object.

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

Creates an error code.

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

Typen und Konstanten

SmErrc enumeration

Defines an enumeration class for the State Management error codes.

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

Enumerationen

enumeration 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#5d63dfbc
Content hash
5d63dfbc
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

Dokumentation der freien Funktionen

function 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#e09ae583
Content hash
e09ae583
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

function 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.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 9557f5fb3cd6 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Hilfsfunktion MakeErrorCode dient gemäß [SWS_SM_81244] im Namensraum ara::sm der Erzeugung eines ara::core::ErrorCode-Objekts für das State Management. Die Funktion ist in der Header-Datei #include "ara/sm/sm_error_domain.h" deklariert und besitzt den Dokumentationsstatus DRAFT (AUTOSAR_AP_SWS_StateManagement §8.1.2.1.2 „MakeErrorCode“).

Zur Erstellung nimmt die synchrone Funktion zwei Eingabeparameter entgegen:

  • code: der spezifische Fehlercode vom Typ SmErrc als Fehlernummer.
  • data: herstellerspezifische Zusatzdaten (Typ ara::core::ErrorDomain::SupportDataType), die mit dem Fehler verknüpft sind.

Als Rückgabewert liefert die Funktion ein vollständiges ara::core::ErrorCode-Objekt zurück ([SWS_SM_81244]). Durch die Kennzeichnung als constexpr kann die Auswertung bereits zur Übersetzungszeit erfolgen, und das Schlüsselwort noexcept garantiert, dass bei der Ausführung keine Ausnahmen ausgelöst werden.

Hinsichtlich der Nebenläufigkeit und Zuverlässigkeit ist die Funktion als thread-safe sowie exception safe spezifiziert ([SWS_SM_81244]). Sie kann somit ohne zusätzliche Synchronisation aus beliebigen nebenläufigen Aufrufkontexten genutzt werden.

Dieser Text wurde von einer KI generiert und dient als Orientierungshilfe anhand der Spezifikation.

Implementer's Guide folgt (Komplexität 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#7c0ada43
Content hash
7c0ada43
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