namespace ara::sm::s2r
Guía del usuarioGENERADO POR IA
Coordina la entrada y la salida del estado Suspend-to-RAM para aplicaciones adaptativas.
Coordina la entrada y la salida del estado Suspend-to-RAM para aplicaciones adaptativas.
El espacio de nombres ara::sm::s2r coordina el mecanismo de Suspend-to-RAM para optimizar los tiempos de apagado y arranque en la AUTOSAR Adaptive Platform (SWS StateManagement §7.5 «Interaction with Suspend-to-RAM Functionality»). A través del componente central S2RHub y de instancias S2RSatellite registradas, los procesos compatibles con S2R son notificados antes de entrar en el estado de reposo del sistema operativo y, al despertar, se reincorporan al funcionamiento regular. Como condición de contorno fundamental, el uso mediante el enfoque interno StateMachine excluye estrictamente el acceso a través de la API de C++, mientras que las comprobaciones de IAM protegen todos los contextos de proceso involucrados ([SWS_SM_00684]).
Contexto
El espacio de nombres ara::sm::s2r proporciona funcionalidades para la coordinación de Suspend-to-RAM (S2R) dentro del módulo State Management. El objetivo de este mecanismo es optimizar los tiempos de apagado y arranque de la máquina, utilizando un estado de reposo en RAM del sistema operativo en lugar de un apagado completo y arranque en frío (SWS StateManagement §7.5 «Interaction with Suspend-to-RAM Functionality»). Antes de pasar al estado de suspensión del sistema operativo, deben desactivarse los elementos funcionales sin soporte para S2R y notificarse a tiempo a los procesos cuyo ejecutable esté marcado como suspendToRamAware (SWS StateManagement §7.5 «Interaction with Suspend-to-RAM Functionality»).
El núcleo central está constituido por la clase S2RHub, la cual controla la comunicación con instancias de la clase abstracta S2RSatellite (SWS StateManagement §7.5.1 «S2R Hub»). La orquestación del S2RHub puede llevarse a cabo bien de forma interna a través del enfoque StateMachine de State Management o externamente a través de una API de C++ (por ejemplo, en una SMControlApplication); ambos enfoques son estrictamente excluyentes entre sí ([SWS_SM_00684], SWS StateManagement p. 96). Los accesos al hub y el registro de satélites están protegidos mediante Identity and Access Management (IAM) ([SWS_SM_00706], [SWS_SM_00714], [SWS_SM_00715]).
Diagrama de contexto: interacción entre State Management, S2RHub, S2RSatellite e IAM. Fuentes: SWS StateManagement §7.5.1 «S2R Hub», [SWS_SM_00684], [SWS_SM_00715].
Ciclo de vida
La instanciación de ara::sm::s2r::S2RHub se realiza en función del enfoque de arquitectura: en el modo StateMachine, State Management crea automáticamente la instancia tan pronto como finalizan los elementos de la lista de acciones EnterSuspendToRam, EnterSuspendToRamOS o LeaveSuspendToRam ([SWS_SM_00690]). Al llamar al constructor ara::sm::s2r::S2RHub::S2RHub, se comprueba a través de IAM si el contexto del proceso actual coincide con la configuración SuspendToRamHubMapping.process ([SWS_SM_00706]). Solo los procesos autorizados tienen permitido realizar la instanciación ([SWS_SM_00714]).
Los satélites se inicializan mediante el método de fábrica ara::sm::s2r::S2RSatellite::Create ([SWS_SM_00716]). Dado que S2RSatellite es una clase abstracta, es probable que se implemente una derivación específica de la aplicación para proporcionar las reacciones concretas (interpretación). Pregunta Q-e4747345883235e0 (abierta) El registro en el hub se realiza activamente invocando ara::sm::s2r::S2RSatellite::Offer ([SWS_SM_00710]). El hub valida el contexto de proceso del satélite mediante SuspendToRamSatelliteMapping.process ([SWS_SM_00715]). Un satélite permanece en el estado de registro activo hasta que vuelve a cancelar su registro mediante ara::sm::s2r::S2RSatellite::StopOffer ([SWS_SM_00710], [SWS_SM_00713]).
En cuanto al ciclo de vida de las máquinas de estados, rige la restricción de que los estados responsables del estado suspend no deben configurarse con el elemento de lista de acciones LeaveSuspendToRam ([SWS_SM_CONSTR_00035]). Este elemento está reservado exclusivamente para la fase de retorno durante la reactivación (SWS StateManagement p. 98).
Ruta de uso
El uso típico del namespace se divide en el registro, la preparación del estado de reposo, la suspensión del sistema operativo y la reactivación posterior:
- Registro: La aplicación compatible con S2R crea su satélite e invoca
ara::sm::s2r::S2RSatellite::Offerpara registrarse en el hub ([SWS_SM_00710]). Es de suponer que la notificación entre el hub y los satélites se realiza a través de comunicación entre procesos interna de la plataforma (interpretación). Pregunta (abierta) - Solicitar suspensión: El nivel de control invoca
ara::sm::s2r::S2RHub::RequestToEnterSuspendMode([SWS_SM_00701]). En el enfoqueStateMachine, esto se desencadena mediante el elementoEnterSuspendToRam, pasándose su valor de configuraciónmaxActionItemDurationcomo parámetro de tiempo de espera ([SWS_SM_00689]). - Notificar a los satélites: El hub se dirige a todos los satélites registrados e inicia la ejecución de la retrollamada
ara::sm::s2r::S2RSatellite::EnterSuspendMode([SWS_SM_00701], [SWS_SM_00711]).RequestToEnterSuspendModeretorna tan pronto como todos los satélites hayan reaccionado, hayan cancelado su registro o se haya producido un tiempo de espera ([SWS_SM_00702]). - Detener el sistema operativo: Al invocar
ara::sm::s2r::S2RHub::EnterSuspendToRamOs(o mediante el elemento de lista de accionesEnterSuspendToRamOs), se inicia el estado de reposo propiamente dicho del sistema operativo ([SWS_SM_00692]). - Coordinar la reactivación: Tras el reinicio, se invoca
ara::sm::s2r::S2RHub::RequestToLeaveSuspendMode([SWS_SM_00703], [SWS_SM_00691]). El hub instruye a los satélites para que ejecuten la retrollamadaara::sm::s2r::S2RSatellite::LeaveSuspendMode([SWS_SM_00703], [SWS_SM_00711]). - Cancelación de registro: Si un proceso no desea seguir participando, cancela su registro mediante
ara::sm::s2r::S2RSatellite::StopOffer([SWS_SM_00710], [SWS_SM_00713]).
Diagrama de secuencia: orden de invocación para la preparación y finalización de Suspend-to-RAM. Fuentes: [SWS_SM_00701], [SWS_SM_00702], [SWS_SM_00703], [SWS_SM_00707], [SWS_SM_00710], [SWS_SM_00711].
Escenarios de error
En la interacción entre las clases se producen condiciones de error específicas:
- Infracción de IAM al crear el hub: Si el contexto de proceso al invocar el constructor no coincide con
SuspendToRamHubMapping.process, se desencadena la infracciónInsufficientPermissionsViolationy se notifica el evento de seguridadSEV_ACCESS_CONTROL_SM_IAM_ACCESS_DENIED</a>([SWS_SM_00706]). - Rechazo de satélites no autenticados: Si el contexto de
S2RSatellitedifiere del proceso depositado enSuspendToRamSatelliteMapping, el hub rechaza el registro ([SWS_SM_00715]). - Requisito de autenticación en el satélite: En caso de que esté establecida la configuración Force IAM switch,
ara::sm::s2r::S2RSatellite::Createfalla con el código de errorkAuthenticationRequired([SWS_SM_00716]). - Tiempo de espera de comunicación agotado: Si un satélite contactado no responde dentro del plazo
timeoutdurante la fase de suspensión o de reactivación, la operación devuelve el código de errorkCommunicationTimeout([SWS_SM_00707]). - Problemas al salir del modo suspend: Si al menos un satélite responde negativamente con
kRejecteda la solicitud de salir del modo suspend,RequestToLeaveSuspendModeconfirma el resultado global conkAtLeastOneHadIssuesToLeave([SWS_SM_00707]). - Uso concurrente de API: El uso simultáneo de la C++-API de
S2RHubjunto con el enfoque internoStateMachineestá prohibido y provoca inconsistencias ([SWS_SM_00684]).
Esta guía se basa en la especificación AUTOSAR_AP_SWS_StateManagement (Release R25-11).
No hay datos de elementos para esta versión
Clases
S2RHub class.
S2RSatellite abstract class.
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.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán