DEENESPTFRRUARHIKOZHNL

namespace ara::sm

Guide utilisateurGÉNÉRÉ PAR IA

Fournit le domaine d'erreur et les codes d'erreur pour la commande des états du système et des déroulements de Suspend-to-RAM.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 83e4718c6e9f Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Fournit le domaine d'erreur et les codes d'erreur pour la commande des états du système et des déroulements de Suspend-to-RAM.

L'espace de noms ara::sm fournit la gestion des erreurs spécifique au domaine et des structures de coordination pour le State Management dans AUTOSAR Adaptive (AUTOSAR_AP_SWS_StateManagement §7.5 p. 34). Il définit via SmErrc, SmErrorDomain et MakeErrorCode des mécanismes standardisés pour consigner les erreurs de communication, les délais d'attente (timeouts) et les rejets lors de transitions d'état synchronisées telles que Suspend-to-RAM ([SWS_SM_81240], [SWS_SM_81244]). Une contrainte déterminante est l'exclusion mutuelle entre la commande automatisée par machine à états et l'accès direct par l'API aux instances de coordination ([SWS_SM_00684]).

Contexte

L'espace de noms ara::sm constitue l'interface fondamentale pour la gestion des états (State Management) de l'AUTOSAR Adaptive Platform et fournit des types pour la gestion des erreurs ainsi que pour la commande de configurations d'état à l'échelle de la machine. Outre le domaine d'erreur central SmErrorDomain et le type d'exception associé SmException, le module comprend des mécanismes fonctionnels pour la synchronisation des états du système, en particulier dans le cadre de la fonctionnalité Suspend-to-RAM selon AUTOSAR_AP_SWS_StateManagement §7.5 « Interaction with Suspend-to-RAM Functionality » p. 34. Parmi les partenaires d'interaction déterminants figurent des applications de commande telles que la SMControlApplication, le contrôleur interne StateMachine du démon de State Management ainsi que des processus raccordés via des satellites (AUTOSAR_AP_SWS_StateManagement §7.5.1 « S2R Hub » p. 35).

L'architecture sépare strictement les automates d'état déclaratifs de la commande programmatique : si le système suit l'approche StateMachine, l'instance de commande intègre la coordination en interne, de sorte que l'accès direct à l'API C++ du S2RHub est refusé aux applications externes ([SWS_SM_00684] ; AUTOSAR_AP_SWS_StateManagement §7.7.15 p. 96). Les interactions touchant à la sécurité sont en outre soumises à des contrôles de l'Identity and Access Management (IAM) afin de garantir que seuls les processus autorisés puissent effectuer des enregistrements ou demander des changements d'état ([SWS_SM_00706], [SWS_SM_00714], [SWS_SM_00715]).

G app SMControlApplication ou StateMachine hub S2RHub / State Management Daemon app->hub S2RHub-Steuerung [SWS_SM_00684] errdomain SmErrorDomain (ara::sm) app->errdomain Vérification des erreurs [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]

Diagramme de contexte : répartition des rôles et voies d'interaction entre l'application de commande, le démon de State Management, les satellites et le domaine d'erreur. Sources : [SWS_SM_00684], [SWS_SM_00701], [SWS_SM_00710], [SWS_SM_81240], [SWS_SM_81251].

Parcours d'utilisation

L'utilisation typique de l'espace de noms se divise en l'enregistrement de processus côté application, le déclenchement de transitions coordonnées et l'évaluation des codes d'erreur résultants. Pour les processus disposant de capacités Suspend-to-RAM, le cycle commence par la mise à disposition de leur interface via Offer ([SWS_SM_00710]). Avant le passage du système d'exploitation à l'état de repos, l'instance de commande envoie au moyen de RequestToEnterSuspendMode une invite à tous les satellites enregistrés, à la suite de quoi leur rappel EnterSuspendMode est déclenché ([SWS_SM_00701], [SWS_SM_00711]).

La fonction coordinatrice bloque ou surveille la transition jusqu'à ce que tous les satellites participants aient répondu ou aient été désenregistrés ([SWS_SM_00702]). Lors du réveil, l'appel de RequestToLeaveSuspendMode s'effectue de manière analogue, rétablissant le fonctionnement normal via LeaveSuspendMode ([SWS_SM_00703], [SWS_SM_00711]). Si des interruptions surviennent lors de la communication ou des changements d'état, le module recourt à la fonction libre MakeErrorCode ([SWS_SM_81244]) pour créer des instances spécifiques de ara::core::ErrorCode sur la base de l'énumération SmErrc et les mettre à la disposition de l'application appelante.

Déroulement de la coordination Suspend-to-RAM et traitement des erreursSMControlApplicationS2RHubS2RSatelliteSmErrorDomainUse Case: Suspend-AnforderungRequestToEnterSuspendMode()EnterSuspendMode() CallbackaltSatelliten quittieren erfolgreichConfirmation sans erreurRetour de succès (résultat positif)Au moins un satellite refuseRetour kRejectedMakeErrorCode(SmErrc::kAtLeastOneRejected)ara::core::ErrorCodeFehlercode kAtLeastOneRejected

Diagramme de séquence : déroulement typique de la coordination du suspend avec des satellites et gestion des erreurs. Sources : [SWS_SM_00701], [SWS_SM_00702], [SWS_SM_00707], [SWS_SM_81240], [SWS_SM_81244].

Scénarios d'erreur

La gestion des erreurs dans ara::sm est strictement typée et repose sur l'énumération SmErrc ([SWS_SM_81240]). Parmi les codes d'erreur définis figurent :

  • kOfferFailed : le service n'a pas pu être proposé car la communication avec le démon de State Management a échoué ([SWS_SM_81240]).
  • kCommunicationFailed : erreur sur les couches de transport inférieures lors de la communication avec les satellites ([SWS_SM_81240]).
  • kCommunicationTimeout : un satellite sollicité a dépassé le temps de réponse prédéfini ([SWS_SM_81240], [SWS_SM_00707]).
  • kAtLeastOneRejected : au moins un satellite n'a pas pu adopter correctement l'état suspend ([SWS_SM_81240]).
  • kAtLeastOneHadIssuesToLeave : au moins un satellite a signalé kRejected lors de la sortie du mode suspend ([SWS_SM_81240], [SWS_SM_00707]).
  • kAuthenticationRequired : l'authentification IAM est forcée et exige une vérification d'identité explicite du satellite ([SWS_SM_81240], [SWS_SM_00716]).

La mise à disposition du domaine d'erreur global via GetSmDomain ([SWS_SM_81251]) et la création de codes d'erreur via MakeErrorCode ([SWS_SM_81244]) sont déclarées comme noexcept et garantissent la sécurité vis-à-vis des exceptions et des threads. Interprétation : la levée d'une SmException ne devrait trouver d'application principalement que si les appelants souhaitent convertir des codes d'erreur de la SmErrorDomain en flux de contrôle basés sur des exceptions, tandis que les interfaces fonctionnelles renvoient régulièrement ara::core::ErrorCode en cas d'erreur. Question Q-5afcc13f11bdf19b (ouverte)

Ce guide est basé sur la spécification AUTOSAR Adaptive R25-11.

Carte des thèmes

Types et constantes

1

Diagramme de classes

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

Vue détaillée

Sélectionnez une entrée dans le plan.

Classes

Defines the error domain for State Management.

hérite de ara::core::ErrorDomain

Exception type thrown by State Management.

hérite de ara::core::Exception

Fonctions

GetSmDomain fonction

Returns the global SmErrorDomain object.

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

Creates an error code.

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

Types et constantes

SmErrc énumération

Defines an enumeration class for the State Management error codes.

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

Énumérations

énumération 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#2bb3d537
Content hash
2bb3d537
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

Documentation des fonctions libres

fonction 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#80ab24b2
Content hash
80ab24b2
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

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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 9557f5fb3cd6 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction utilitaire MakeErrorCode sert, conformément à [SWS_SM_81244] dans l'espace de noms ara::sm, à créer un objet ara::core::ErrorCode pour State Management. La fonction est déclarée dans le fichier d'en-tête #include "ara/sm/sm_error_domain.h" et possède le statut de documentation DRAFT (AUTOSAR_AP_SWS_StateManagement §8.1.2.1.2 « MakeErrorCode »).

Pour la création, la fonction synchrone prend deux paramètres d'entrée :

  • code : le code d'erreur spécifique de type SmErrc en tant que numéro d'erreur.
  • data : des données supplémentaires spécifiques au constructeur (type ara::core::ErrorDomain::SupportDataType) associées à l'erreur.

En guise de valeur de retour, la fonction renvoie un objet ara::core::ErrorCode complet ([SWS_SM_81244]). Grâce à la désignation constexpr, l'évaluation peut avoir lieu dès la compilation, et le mot-clé noexcept garantit qu'aucune exception n'est levée lors de l'exécution.

En matière de concurrence et de fiabilité, la fonction est spécifiée comme thread-safe ainsi qu'exception safe ([SWS_SM_81244]). Elle peut ainsi être utilisée sans synchronisation supplémentaire depuis des contextes d'appel concurrents quelconques.

Ce texte a été généré par une IA et sert de guide d’orientation basé sur la spécification.

Guide de l'implémenteur à venir (complexité 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#0ef3fdcf
Content hash
0ef3fdcf
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