DEENESPTFRRUARHIKOZHNL

namespace ara::sm

Guía del usuarioGENERADO POR IA

Proporciona el dominio de errores y los códigos de error para el control de estados del sistema y flujos de Suspend-to-RAM.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 83e4718c6e9f Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Proporciona el dominio de errores y los códigos de error para el control de estados del sistema y flujos de Suspend-to-RAM.

El namespace ara::sm proporciona el tratamiento de errores específico del dominio y las estructuras de coordinación para State Management en AUTOSAR Adaptive (AUTOSAR_AP_SWS_StateManagement §7.5 p. 34). Define a través de SmErrc, SmErrorDomain y MakeErrorCode mecanismos estandarizados para registrar errores de comunicación, tiempos de espera agotados (timeouts) y rechazos en transiciones de estado sincronizadas como Suspend-to-RAM ([SWS_SM_81240], [SWS_SM_81244]). Una condición de contorno fundamental es la exclusión mutua entre el control automatizado de la máquina de estados y el acceso directo por API a las instancias de coordinación ([SWS_SM_00684]).

Contexto

El namespace ara::sm constituye la interfaz fundamental para la gestión de estados (State Management) de la AUTOSAR Adaptive Platform y proporciona tipos para el tratamiento de errores, así como para el control de configuraciones de estado en toda la máquina. Además del dominio de errores central SmErrorDomain y del tipo de excepción correspondiente SmException, el módulo incluye mecanismos funcionales para sincronizar estados del sistema, especialmente en el marco de la funcionalidad Suspend-to-RAM según AUTOSAR_AP_SWS_StateManagement §7.5 «Interaction with Suspend-to-RAM Functionality» p. 34. Entre los interlocutores clave se encuentran aplicaciones de control como la SMControlApplication, el controlador interno StateMachine del demonio de State Management, así como procesos conectados mediante satélites (AUTOSAR_AP_SWS_StateManagement §7.5.1 «S2R Hub» p. 35).

La arquitectura distingue estrictamente entre autómatas de estado declarativos y control programático: si el sistema sigue el enfoque StateMachine, la instancia de control integra la coordinación internamente, de modo que a las aplicaciones externas se les deniega el acceso directo a la API de C++ del S2RHub ([SWS_SM_00684]; AUTOSAR_AP_SWS_StateManagement §7.7.15 p. 96). Las interacciones relevantes para la seguridad están sujetas además a comprobaciones de Identity and Access Management (IAM) para garantizar que solo los procesos autorizados puedan realizar registros o solicitar cambios de estado ([SWS_SM_00706], [SWS_SM_00714], [SWS_SM_00715]).

G app SMControlApplication o StateMachine hub S2RHub / State Management Daemon app->hub S2RHub-Steuerung [SWS_SM_00684] errdomain SmErrorDomain (ara::sm) app->errdomain Comprobación de errores [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]

Diagrama de contexto: distribución de roles y rutas de interacción entre la aplicación de control, el demonio de State Management, los satélites y el dominio de errores. Fuentes: [SWS_SM_00684], [SWS_SM_00701], [SWS_SM_00710], [SWS_SM_81240], [SWS_SM_81251].

Ruta de uso

El uso típico del namespace se divide en el registro de procesos del lado de la aplicación, el desencadenamiento de transiciones coordinadas y la evaluación de los códigos de error resultantes. Para los procesos que disponen de capacidades de Suspend-to-RAM, el ciclo comienza con la puesta a disposición de su interfaz a través de Offer ([SWS_SM_00710]). Antes de la transición del sistema operativo al estado de reposo, la instancia de control envía mediante RequestToEnterSuspendMode una solicitud a todos los satélites registrados, tras lo cual se desencadena su callback EnterSuspendMode ([SWS_SM_00701], [SWS_SM_00711]).

La función coordinadora bloquea o supervisa la transición hasta que todos los satélites involucrados hayan respondido o hayan cancelado su registro ([SWS_SM_00702]). Al despertar, de manera análoga se produce la llamada de RequestToLeaveSuspendMode, la cual restablece el funcionamiento normal a través de LeaveSuspendMode ([SWS_SM_00703], [SWS_SM_00711]). Si se producen interrupciones en la comunicación o en los cambios de estado, el módulo recurre a la función libre MakeErrorCode ([SWS_SM_81244]) para crear instancias específicas de ara::core::ErrorCode sobre la base de la enumeración SmErrc y ponerlas a disposición de la aplicación invocadora.

Secuencia de coordinación de Suspend-to-RAM y tratamiento de erroresSMControlApplicationS2RHubS2RSatelliteSmErrorDomainUse Case: Suspend-AnforderungRequestToEnterSuspendMode()EnterSuspendMode() CallbackaltSatelliten quittieren erfolgreichConfirmación sin erroresRetorno con éxito (resultado positivo)Al menos un satélite rechazaRespuesta kRejectedMakeErrorCode(SmErrc::kAtLeastOneRejected)ara::core::ErrorCodeFehlercode kAtLeastOneRejected

Diagrama de secuencia: flujo típico de la coordinación de suspensión con satélites y tratamiento de errores. Fuentes: [SWS_SM_00701], [SWS_SM_00702], [SWS_SM_00707], [SWS_SM_81240], [SWS_SM_81244].

Escenarios de error

El tratamiento de errores en ara::sm está estrictamente tipado y se basa en la enumeración SmErrc ([SWS_SM_81240]). Entre los códigos de error definidos se encuentran:

  • kOfferFailed: el servicio no se pudo ofrecer debido a que falló la comunicación con el demonio de State Management ([SWS_SM_81240]).
  • kCommunicationFailed: error en las capas de transporte inferiores durante la comunicación con los satélites ([SWS_SM_81240]).
  • kCommunicationTimeout: un satélite interpelado ha superado el tiempo de respuesta predefinido ([SWS_SM_81240], [SWS_SM_00707]).
  • kAtLeastOneRejected: al menos un satélite no pudo adoptar debidamente el estado de suspensión ([SWS_SM_81240]).
  • kAtLeastOneHadIssuesToLeave: al menos un satélite notificó kRejected al salir del modo de suspensión ([SWS_SM_81240], [SWS_SM_00707]).
  • kAuthenticationRequired: se fuerza la autenticación IAM y se exige una verificación explícita de la identidad del satélite ([SWS_SM_81240], [SWS_SM_00716]).

La puesta a disposición del dominio de errores global a través de GetSmDomain ([SWS_SM_81251]) y la generación de códigos de error mediante MakeErrorCode ([SWS_SM_81244]) están declaradas como noexcept y garantizan la seguridad frente a excepciones y entre hilos. Interpretación: el lanzamiento de una SmException probablemente tenga aplicación principalmente cuando los invocadores deseen transferir códigos de error de la SmErrorDomain a flujos de control basados en excepciones, mientras que las interfaces funcionales devuelven regularmente ara::core::ErrorCode en caso de error. Pregunta Q-5afcc13f11bdf19b (abierta)

Esta guía se basa en la especificación AUTOSAR Adaptive R25-11.

Mapa de temas

Tipos y constantes

1

Diagrama de clases

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

Vista de detalle

Selecciona una entrada en el índice.

Clases

Defines the error domain for State Management.

hereda de ara::core::ErrorDomain

Exception type thrown by State Management.

hereda de ara::core::Exception

Funciones

GetSmDomain función

Returns the global SmErrorDomain object.

constexpr const ara::core::ErrorDomain & GetSmDomain () noexcept;
MakeErrorCode función

Creates an error code.

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

Tipos y constantes

SmErrc enumeración

Defines an enumeration class for the State Management error codes.

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

Enumeraciones

enumeración 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#d64a3d21
Content hash
d64a3d21
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

Documentación de las funciones libres

función 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#95a08a43
Content hash
95a08a43
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

función 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 9557f5fb3cd6 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

La función auxiliar MakeErrorCode sirve, de acuerdo con [SWS_SM_81244], en el espacio de nombres ara::sm para crear un objeto ara::core::ErrorCode para State Management. La función está declarada en el archivo de cabecera #include "ara/sm/sm_error_domain.h" y posee el estado de documentación DRAFT (AUTOSAR_AP_SWS_StateManagement §8.1.2.1.2 «MakeErrorCode»).

Para su creación, la función síncrona acepta dos parámetros de entrada:

  • code: el código de error específico de tipo SmErrc como número de error.
  • data: datos adicionales específicos del fabricante (tipo ara::core::ErrorDomain::SupportDataType) que están asociados al error.

Como valor de retorno, la función devuelve un objeto ara::core::ErrorCode completo ([SWS_SM_81244]). Gracias a la designación como constexpr, la evaluación puede llevarse a cabo ya en tiempo de compilación, y la palabra clave noexcept garantiza que no se lancen excepciones durante la ejecución.

En cuanto a la concurrencia y la fiabilidad, la función está especificada como thread-safe y exception safe ([SWS_SM_81244]). Por lo tanto, puede utilizarse sin sincronización adicional desde cualquier contexto de llamada concurrente.

Este texto ha sido generado por una IA y sirve como guía orientativa basada en la especificación.

Guía del implementador pendiente (complejidad 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#420dcec3
Content hash
420dcec3
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