DEENESPTFRRUARHIKOZHNL

módulo ara::sm — State Management

Spezifikation: AUTOSAR_AP_SWS_StateManagement.pdf (R25-11) · 51 API-Records

Guia do móduloGERADO POR IA

Orquestra estados do sistema, grupos de funções, modos de economia de energia e atualizações de software de uma Adaptive Machine.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 35b1c28da865 Procedência Perguntas em aberto (2)
Âncora causal: R25-11 Válido a partir de R25-11 Sintetizado para esta versão de especificação.
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Orquestra estados do sistema, grupos de funções, modos de economia de energia e atualizações de software de uma Adaptive Machine.

O cluster adaptativo State Management controla os modos operacionais de todo o sistema, estados de grupos de funções e fases de atualização de software de uma Adaptive Machine em conjunto com o Execution Management e o UCM EXP SWArchitecture p. 51. Ele processa gatilhos de transição de forma determinística por meio de tabelas e listas de ações configuradas, reporta estados intermediários via StateMachineNotification e orquestra o Suspend-to-RAM através de um padrão Hub-Satellite [SWS_SM_91107], [SWS_SM_81110]. Condições de contorno como a verificação estrita de liberações de atualização e caminhos de tratamento de erro obrigatórios ANY asseguram a operação robusta da plataforma [SWS_SM_91108].

O cluster funcional State Management (SM) atua na AUTOSAR Adaptive Platform como daemon central de plataforma para o controle de estados de máquinas e de grupos de funções, bem como de modos de execução EXP SWArchitecture p. 51. Ele separa rigorosamente a lógica de decisão específica do veículo em aplicações de controle (SMControlApplication) do gerenciamento efetivo de processos pelo Execution Management (EM) EXP PlatformDesign p. 40. Além de implementações proprietárias de fabricantes, a AUTOSAR fornece uma abordagem StateMachine padronizada, na qual as transições são processadas por meio de metamodelos tabulares e listas de ações configuradas SWS StateManagement p. 42.

As transições de estado são iniciadas através do método RequestTransition do StateMachineService [SWS_SM_91107] e validadas contra a TransitionRequestTable SWS StateManagement p. 44. Durante o processamento da ActionList correspondente, o campo de notificação CurrentState sinaliza o valor de transição "inTransition" para as aplicações consumidoras, antes que o estado de destino seja publicado após a confirmação completa [SWS_SM_91109], SWS StateManagement p. 67.

Fluxo de uma transição de estado na abordagem StateMachineSMControlApplicationStateMachineServiceState ManagementStateMachineNotificationExecution ManagementRequestTransition(TransitionRequest)Trigger TransitionVerificação de TransitionRequestTableStoppe laufende ActionListSetze CurrentState = 'inTransition'SetState(targetFGState)kSuccessActionListItems totalmente executadosErgebnisse gesammeltSetze CurrentState = TargetStatekSuccess

Diagrama de sequência: fluxo de uma transição de estado regular através de StateMachineService e notificação via StateMachineNotification. Fontes: [SWS_SM_91107], [SWS_SM_91109], SWS StateManagement p. 51

Para a realização de atualizações de software, o State Management disponibiliza a interface UpdateRequest para o Update and Configuration Management (UCM) [SWS_SM_91102], EXP SWArchitecture p. 56. Após a verificação do campo aplicativo UpdateAllowed, o módulo coordena etapas de preparação (PrepareUpdate), verificação (VerifyUpdate) ou rollback (PrepareRollback), bem como reinicializações da máquina via ResetMachine [SWS_SM_91100], [SWS_SM_91103], [SWS_SM_91108]. Para modos de economia de energia como Suspend-to-RAM, S2RHub e S2RSatellite sincronizam o congelamento e o reinício de aplicações e do sistema operacional [SWS_SM_81010], [SWS_SM_81110], [SWS_SM_71001].

Em caso de erro, a SmErrorDomain [SWS_SM_81247] bem como uma entrada de tratamento ANY mandatória na ErrorRecoveryTable garantem que erros de execução imprevistos provenientes do Execution Management ou do Platform Health Management sejam interceptados deterministicamente e que ações em andamento sejam transferidas imediatamente para estados de recuperação definidos SWS StateManagement p. 42.

Papel e limites funcionais do sistema no conjunto da plataforma

O cluster funcional State Management (SM) constitui na AUTOSAR Adaptive Platform a instância central para a orquestração dos modos operacionais em todo o sistema, grupos de funções e ciclos de vida de processos EXP SWArchitecture p. 51. Executado como um daemon de plataforma autônomo, o State Management desacopla a execução de estados interna da plataforma da lógica de controle específica do veículo e do fabricante, tipicamente encapsulada em uma aplicação de controle independente (SMControlApplication) EXP PlatformDesign p. 40. Enquanto o State Management toma e valida as decisões lógicas de estado, ele delega o início físico, a terminação e a comutação de processos através do StateClient para o Execution Management (EM) SWS StateManagement p. 40.

Arquiteturalmente, o módulo baseia-se em uma filosofia de integração dual: os integradores podem empregar a abordagem StateMachine padronizada baseada em manifesto da stack da plataforma ou implementar uma lógica de estados totalmente proprietária do fabricante, uma vez que as interfaces para o State Management são mantidas públicas SWS StateManagement p. 42. Na abordagem padronizada, o State Management reage deterministicamente a gatilhos externos de aplicações de controle, notificações de erro do Platform Health Management (PHM), bem como mudanças de estado de rede do Network Management (NM) SWS StateManagement p. 45. Além disso, o State Management constitui a instância de controle determinante para atualizações de software através do Update and Configuration Management (UCM) EXP SWArchitecture p. 56.

diag_architektur SMControlApp SMControlApplication (Applikative Kontrolllogik) SM State Management (daemon-based) SMControlApp->SM StateMachineService UpdateAllowedService UCM UCM (Update & Configuration) UCM->SM UpdateRequest PHM PHM (Platform Health Management) PHM->SM ExecutionError / Recovery NM Network Management NM->SM NetworkHandle EM Execution Management (ara::exec) SM->EM StateClient (SetState) OS Betriebssystem / BSP (apext::sm) SM->OS PowerStateInterface (SetPowerState) Apps Adaptive Applications (S2RSatellite / Consumer) SM->Apps StateMachineNotification S2RHub / S2RSatellite

Diagrama de contexto: integração do Functional Cluster State Management no conjunto de sistemas AUTOSAR Adaptive. Fontes: EXP PlatformDesign p. 40, SWS StateManagement p. 28

Transições de estado e controle através da interface StateMachineService

Para iniciar alterações de estado, o State Management disponibiliza o serviço baseado em serviços StateMachineService para cada instância configurada de uma StateMachine SWS StateManagement p. 44. A aplicação solicita uma transição através do método de serviço RequestTransition [SWS_SM_91107]. O State Management valida essa requisição com base em uma TransitionRequestTable definida estaticamente no manifesto em relação ao estado atual da máquina de estados SWS StateManagement p. 44. Se a transição estiver definida, a execução da lista de ações atual (ActionList) é interrompida e a transição para o estado de destino é iniciada SWS StateManagement p. 45.

Assim que uma transição de estado é iniciada, o State Management define o valor do campo de serviço CurrentState da interface StateMachineNotification para "inTransition" [SWS_SM_91109], SWS StateManagement p. 67. Esse estado transitório sinaliza às Adaptive Applications dependentes, através de ara::com, que uma reconfiguração do sistema está em andamento EXP SWArchitecture p. 52. Dentro das listas de ações, grupos de funções podem ser sincronizados ou ativados em paralelo por meio de elementos SYNC, a fim de mapear dependências com precisão SWS StateManagement p. 56. Somente após todas as ActionListItems terem sido totalmente processadas e os resultados coletados, CurrentState assume o nome final do novo estado SWS StateManagement p. 67.

Fluxo de uma transição de estado na abordagem StateMachineSMControlApplicationStateMachineServiceState ManagementStateMachineNotificationExecution ManagementRequestTransition(TransitionRequest)Trigger TransitionVerificação de TransitionRequestTableStoppe laufende ActionListSetze CurrentState = 'inTransition'SetState(targetFGState)kSuccessActionListItems totalmente executadosErgebnisse gesammeltSetze CurrentState = TargetStatekSuccess

Diagrama de sequência: fluxo de uma transição de estado regular via StateMachineService e notificação via StateMachineNotification. Fontes: [SWS_SM_91107], [SWS_SM_91109], SWS StateManagement p. 51, EXP SWArchitecture p. 219

diag_statemachine_lebenszyklus Start Off Off Start->Off On On Off->On Request 1001 Startup Startup Startup->Off Request 1001 On->Off Request 1000 Recovery Recovery On->Recovery ExecutionError (PHM/EM) Suspend Suspend Suspend->On Request 1000 Recovery->Off Request 1000 / 1002

Diagrama de estados: ciclo de vida típico e lógica de transição de uma StateMachine com base na TransitionRequestTable. Fontes: EXP InterfacesGuidelines p. 22, SWS StateManagement p. 44

Orquestração de atualizações de software em interação com o UCM

No contexto de atualizações de software, o State Management assume a função de interface entre o Update and Configuration Management (UCM) e os estados de execução da máquina EXP SWArchitecture p. 142. Para isso, o State Management disponibiliza a interface UpdateRequest, que pode ser instanciada no máximo uma vez por máquina e está vinculada exclusivamente ao processo que gerencia a máquina de estados do controlador SWS StateManagement p. 79. Uma atualização é iniciada quando o UCM chama o método RequestUpdateSession [SWS_SM_91102]. O State Management não toma a decisão sobre a admissibilidade de forma autônoma, mas consulta o campo de serviço UpdateAllowed do UpdateAllowedService, que é definido pela lógica de controle da aplicação [SWS_SM_91108], SWS StateManagement p. 81.

Se a sessão for aprovada, o controlador marca as máquinas de estados afetadas como ImpactedByUpdate SWS StateManagement p. 81. Antes da instalação propriamente dita, o UCM chama PrepareUpdate com a lista dos grupos de funções afetados, fazendo com que estes sejam transferidos para estados inativos [SWS_SM_91103], PlatformDesign p. 58. Caso a atualização exija uma reinicialização, o UCM solicita um reset ordenado por meio do método fire-and-forget ResetMachine, durante o qual todos os dados devem ser salvos previamente [SWS_SM_91100]. O State Management informa o UCM sobre alterações de status durante o reset através do campo ResetMachineNotifier [SWS_SM_91106], SWS StateManagement p. 92. Após a reinicialização ou atualização, segue-se a verificação via VerifyUpdate [SWS_SM_91104], SWS StateManagement p. 87. Se a verificação falhar, PrepareRollback prepara o rollback [SWS_SM_91105], SWS StateManagement p. 88. A conclusão de todo o ciclo é confirmada com StopUpdateSession [SWS_SM_91101], SWS StateManagement p. 79.

Sessão de atualização de software entre UCM e State ManagementUCMUpdateRequestState ManagementUpdateAllowedServiceExecution ManagementRequestUpdateSession()Verificar autorização de atualizaçãoLese Feld UpdateAllowedkUpdateAllowedSession AkzeptiertPrepareUpdate(functionGroupList)Transicionar FunctionGroups para inativo/OffBereitkSuccessoptNeustart erforderlichResetMachine() [Fire&Forget]ResetMachineNotifier (Updating)VerifyUpdate(functionGroupList)kSuccessStopUpdateSession()kSuccess

Diagrama de sequência: fluxo de interação de uma sessão de atualização de software entre UCM, State Management e lógica de controle. Fontes: [SWS_SM_91100], [SWS_SM_91102], [SWS_SM_91103], [SWS_SM_91104], SWS StateManagement p. 78

Gerenciamento de energia e Suspend-to-RAM na arquitetura Hub-Satellite

Para funções avançadas de gerenciamento de energia, como o Suspend-to-RAM (S2R), o State Management implementa um padrão de arquitetura hub-satellite EXP SWArchitecture p. 54. A instância central de controle no daemon da plataforma utiliza a classe S2RHub [SWS_SM_81103], enquanto Adaptive Applications participantes integram instâncias de S2RSatellite em seu próprio espaço de processo [SWS_SM_81003], [SWS_SM_81014], SWS StateManagement p. 35. Os satélites ativam sua prontidão para aceitar mudanças de modo via Offer [SWS_SM_81012] ou a desativam via StopOffer [SWS_SM_81013]. Eles implementam os métodos puramente virtuais EnterSuspendMode [SWS_SM_81010] e LeaveSuspendMode [SWS_SM_81011] como mecanismo de callback para a preparação e pós-processamento do estado de suspensão.

Quando um processo de suspensão é iniciado, o S2RHub endereça todos os satélites registrados de forma assíncrona via RequestToEnterSuspendMode com um timeout configurável [SWS_SM_81110]. Se todos os satélites tiverem concluído com sucesso suas preparações para o estado de suspensão, o hub comanda, via EnterSuspendToRamOs, a entrada do sistema operacional no estado de retenção em RAM [SWS_SM_81112], SWS StateManagement p. 101. No nível do wrapper de OS próximo ao hardware, o State Management recorre à apext::sm::PowerStateInterface: ela permite a definição de estados operacionais próximos ao hardware via SetPowerState [SWS_SM_71001] com base na enumeração PowerState [SWS_SM_71002], bem como o registro e cancelamento de registro de manipuladores autônomos de despertar via RegisterWakeUpHandler [SWS_SM_71003] e UnregisterWakeUpHandler [SWS_SM_71005] com o tipo de função WakeUpHandler [SWS_SM_71004], SWS StateManagement p. 105. Após o despertar, o hub solicita via RequestToLeaveSuspendMode a retomada coordenada de todos os satélites [SWS_SM_81111].

Orquestração de Suspend-to-RAM através de S2RHub e S2RSatelliteSmControlAppState ManagementS2RHubS2RSatellite (Apps)OS / BSPRequestTransition(Suspend)RequestToEnterSuspendMode(timeout=1000)EnterSuspendMode()Quiescência e preparação para o estado de repousoFuture<void> ReadyEnterSuspendToRamOs() / SetPowerState(kPmSuspendToRam)Use Case: Sistema no modo de retenção de RAM (Suspend-to-RAM)Autonomes Aufwachen via WakeUpHandler()RequestToLeaveSuspendMode(timeout=1000) / LeaveSuspendMode()Future<void> ReadySystem aktiv (Normal Mode)

Diagrama de sequência: fluxo bifásico ao colocar o sistema em Suspend-to-RAM e subsequente despertar. Fontes: [SWS_SM_71001], [SWS_SM_81110], [SWS_SM_81112], SWS StateManagement p. 101

Comportamento em caso de erro

O módulo define, para seus próprios erros operacionais, a SmErrorDomain [SWS_SM_81247], que é obtida via GetSmDomain [SWS_SM_81251] e possui o identificador "Sm" [SWS_SM_81248]. Ela fornece descrições de erros [SWS_SM_81249] e, em casos excepcionais, converte códigos em uma ThrowAsException por meio de SmException [SWS_SM_81243], [SWS_SM_81250]. Por meio da enumeração SmErrc, são tipificados motivos específicos de falha, incluindo kOfferFailed para perdas de conexão com o daemon da plataforma e kCommunicationFailed para falhas de comunicação com satélites [SWS_SM_81240], geráveis por meio de MakeErrorCode [SWS_SM_81244].

No escopo das máquinas de estados lógicas, o State Management impõe um tratamento contínuo de erros por meio da ErrorRecoveryTable SWS StateManagement p. 69. Cada tabela deve conter obrigatoriamente exatamente uma entrada com o valor ANY, que serve como caminho de fallback determinístico para todos os erros de execução não mapeados explicitamente SWS StateManagement p. 42, SWS StateManagement p. 69. Se um erro for reportado pelo Platform Health Management ou pelo Execution Management e a máquina de estados afetada não estiver marcada como ImpactedByUpdate, ela define uma flag interna de recuperação de erro em andamento, cancela imediatamente a lista de ações atual e comuta de pronto para o estado de recuperação parametrizado SWS StateManagement p. 42. Em caso de erros críticos do Execution Management, como kIntegrityOrAuthenticityCheckFailed, o State Management assume que a confiabilidade da plataforma está comprometida e que requisições subsequentes falharão, razão pela qual as medidas corretivas situam-se fora do cluster SWS StateManagement p. 40.

diag_error_recovery_flow Start ExecutionError de entrada (de PHM ou EM) CheckUpdate A StateMachine está marcada como 'ImpactedByUpdate'? Start->CheckUpdate Ignore Tratamento regular de erros suprimido (o caminho de erro do UCM entra em ação) CheckUpdate->Ignore Ja SetFlag Setze internes Flag: ErrorRecoveryOngoing CheckUpdate->SetFlag Nein EvalTable Avaliar ErrorRecoveryTable (procurar código específico ou ANY) SetFlag->EvalTable SpecificFound Spezifischer Folgezustand konfiguriert EvalTable->SpecificFound Code gefunden AnyFallback Verwende Catch-All-Zustand (ANY-Eintrag) EvalTable->AnyFallback Unbekannter Code StopActionList Stoppe aktuelle ActionList sofort SpecificFound->StopActionList AnyFallback->StopActionList ExecuteRecovery Mudar imediatamente para o estado de recuperação e executar a ActionList de recuperação StopActionList->ExecuteRecovery End Zustandswechsel abgeschlossen ExecuteRecovery->End

Diagrama de atividades: fluxo de decisão e processamento em erros de execução recebidos e avaliação da ErrorRecoveryTable. Fontes: SWS StateManagement p. 42, SWS StateManagement p. 69

Evidências mais detalhadas

A arquitetura e os caminhos de interação do State Management são comprovados pelos seguintes requisitos normativos e definições de design:

Este guia de módulo foi elaborado por um assistente de curadoria baseado em IA com base na especificação AUTOSAR Adaptive para o release R25-11 e estrutura os requisitos normativos relativos ao State Management.

function: 31 service method: 7 class: 5 type alias: 3 service field: 3 enumeration: 2

apext::sm

class for power state coordination with OS

PowerState enumeração

Power State Enumeration.

enum class PowerState : std::uint32_t {...};
WakeUpHandler alias de tipo

WakeUpHandler function.

using WakeUpHandler = std::function<void(void)>;

ara::sm

Defines the error domain for State Management.

herda de ara::core::ErrorDomain

Exception type thrown by State Management.

herda de ara::core::Exception

GetSmDomain função

Returns the global SmErrorDomain object.

constexpr const ara::core::ErrorDomain & GetSmDomain () noexcept;
MakeErrorCode função

Creates an error code.

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

Defines an enumeration class for the State Management error codes.

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

ara::sm::s2r

S2RHub classe

S2RHub class.

S2RSatellite abstract class.

Interfaces de serviço

StateMachineNotification interface de serviço

Als ara::com-Dienst modellierte Schnittstelle; Methoden/Felder werden über generierte Proxies/Skeletons aufgerufen (Parameterrichtung IN/OUT).

StateMachineService interface de serviço

Als ara::com-Dienst modellierte Schnittstelle; Methoden/Felder werden über generierte Proxies/Skeletons aufgerufen (Parameterrichtung IN/OUT).

UpdateAllowedService interface de serviço

Als ara::com-Dienst modellierte Schnittstelle; Methoden/Felder werden über generierte Proxies/Skeletons aufgerufen (Parameterrichtung IN/OUT).

UpdateRequest interface de serviço

Als ara::com-Dienst modellierte Schnittstelle; Methoden/Felder werden über generierte Proxies/Skeletons aufgerufen (Parameterrichtung IN/OUT).

Namespaces

Interfaces de serviço (modeladas via ara::com)

Diagrama de classes UML do módulo

Abgerundete Rahmen = Namespaces; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = modulfremde bzw. externe Basisklassen. Klicken öffnet die Klassenseite.

G cluster_1 apext::sm cluster_2 ara::sm cluster_3 ara::sm::s2r napext__sm__PowerStateInterface528 PowerStateInterface nara__sm__SmErrorDomain386 SmErrorDomain nara__core__ErrorDomain335 ara::core::ErrorDomain nara__sm__SmErrorDomain386->nara__core__ErrorDomain335 nara__sm__SmException872 SmException nara__core__Exception792 ara::core::Exception nara__sm__SmException872->nara__core__Exception792 nara__sm__s2r__S2RHub106 S2RHub nara__sm__s2r__S2RSatellite502 S2RSatellite