DEENESPTFRRUARHIKOZHNL

namespace ara::sm

Guia do utilizadorGERADO POR IA

Disponibiliza domínio de erros e códigos de erro para o controle de estados do sistema e fluxos de Suspend-to-RAM.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 83e4718c6e9f Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Disponibiliza domínio de erros e códigos de erro para o controle de estados do sistema e fluxos de Suspend-to-RAM.

O namespace ara::sm fornece o tratamento de erros específico de domínio e estruturas de coordenação para o State Management no AUTOSAR Adaptive (AUTOSAR_AP_SWS_StateManagement §7.5 p. 34). Ele define através de SmErrc, SmErrorDomain e MakeErrorCode mecanismos padronizados para o registro de erros de comunicação, timeouts e rejeições em transições de estado sincronizadas como Suspend-to-RAM ([SWS_SM_81240], [SWS_SM_81244]). Uma restrição determinante é a exclusão mútua entre o controle automatizado por máquina de estados e o acesso direto via API a instâncias de coordenação ([SWS_SM_00684]).

Contexto

O namespace ara::sm constitui a interface fundamental para o gerenciamento de estados (State Management) da AUTOSAR Adaptive Platform e fornece tipos para o tratamento de erros, bem como para o controle de configurações de estado em toda a máquina. Além do domínio de erros central SmErrorDomain e do respectivo tipo de exceção SmException, o módulo compreende mecanismos funcionais para a sincronização de estados do sistema, em especial no âmbito da funcionalidade Suspend-to-RAM conforme AUTOSAR_AP_SWS_StateManagement §7.5 «Interaction with Suspend-to-RAM Functionality» p. 34. Entre os parceiros de interação determinantes encontram-se aplicações de controle, como a SMControlApplication, o controlador interno StateMachine do daemon de State Management, bem como processos conectados via satélites (AUTOSAR_AP_SWS_StateManagement §7.5.1 «S2R Hub» p. 35).

A arquitetura separa estritamente entre autômatos de estado declarativos e controle programático: se o sistema segue a abordagem StateMachine, a instância de controle integra a coordenação internamente, de modo que o acesso direto à C++-API de S2RHub é impedido para aplicações externas ([SWS_SM_00684]; AUTOSAR_AP_SWS_StateManagement §7.7.15 p. 96). Interações relevantes para a segurança estão adicionalmente sujeitas a verificações do Identity and Access Management (IAM), a fim de garantir que apenas processos autorizados possam efetuar registros ou solicitar alterações de estado ([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 Verificação de erros [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: Distribuição de papéis e caminhos de interação entre aplicação de controle, daemon de State Management, satélites e domínio de erros. Fontes: [SWS_SM_00684], [SWS_SM_00701], [SWS_SM_00710], [SWS_SM_81240], [SWS_SM_81251].

Caminho de utilização

O uso típico do namespace divide-se no registro de processos do lado da aplicação, no disparo de transições coordenadas e na avaliação dos códigos de erro resultantes. Para processos que dispõem de capacidades de Suspend-to-RAM, o ciclo inicia-se com a disponibilização de sua interface via Offer ([SWS_SM_00710]). Antes da transição do sistema operacional para o estado de suspensão, a instância de controle envia por meio de RequestToEnterSuspendMode uma solicitação a todos os satélites registrados, em resposta à qual o callback EnterSuspendMode deles é disparado ([SWS_SM_00701], [SWS_SM_00711]).

A função coordenadora bloqueia ou monitora a transição até que todos os satélites envolvidos tenham respondido ou tenham sido desregistrados ([SWS_SM_00702]). Ao despertar, ocorre de forma análoga a chamada de RequestToLeaveSuspendMode, a qual restaura a operação normal via LeaveSuspendMode ([SWS_SM_00703], [SWS_SM_00711]). Se ocorrerem interrupções na comunicação ou nas mudanças de estado, o módulo recorre à função livre MakeErrorCode ([SWS_SM_81244]) para gerar instâncias específicas de ara::core::ErrorCode com base na enumeração SmErrc e disponibilizá-las à aplicação chamadora.

Fluxo da coordenação de Suspend-to-RAM e tratamento de errosSMControlApplicationS2RHubS2RSatelliteSmErrorDomainUse Case: Suspend-AnforderungRequestToEnterSuspendMode()EnterSuspendMode() CallbackaltSatelliten quittieren erfolgreichConfirmação sem erroRetorno de sucesso (resultado positivo)Pelo menos um satélite rejeitaRetorno de kRejectedMakeErrorCode(SmErrc::kAtLeastOneRejected)ara::core::ErrorCodeFehlercode kAtLeastOneRejected

Diagrama de sequência: Sequência típica da coordenação de Suspend com satélites e tratamento de erros. Fontes: [SWS_SM_00701], [SWS_SM_00702], [SWS_SM_00707], [SWS_SM_81240], [SWS_SM_81244].

Cenários de erro

O tratamento de erros em ara::sm é estritamente tipificado e baseia-se na enumeração SmErrc ([SWS_SM_81240]). Entre os códigos de erro definidos estão:

  • kOfferFailed: Não foi possível oferecer o serviço porque a comunicação com o daemon de State Management falhou ([SWS_SM_81240]).
  • kCommunicationFailed: Erro nas camadas de transporte inferiores durante a comunicação com satélites ([SWS_SM_81240]).
  • kCommunicationTimeout: Um satélite endereçado excedeu o tempo de resposta especificado ([SWS_SM_81240], [SWS_SM_00707]).
  • kAtLeastOneRejected: Ao menos um satélite não conseguiu assumir o estado de Suspend de forma adequada ([SWS_SM_81240]).
  • kAtLeastOneHadIssuesToLeave: Ao menos um satélite reportou kRejected ao sair do modo de Suspend ([SWS_SM_81240], [SWS_SM_00707]).
  • kAuthenticationRequired: A autenticação IAM é forçada e exige uma verificação de identidade explícita do satélite ([SWS_SM_81240], [SWS_SM_00716]).

A disponibilização do domínio de erros global via GetSmDomain ([SWS_SM_81251]) e a geração de códigos de erro via MakeErrorCode ([SWS_SM_81244]) são declaradas como noexcept e garantem segurança contra exceções e thread-safety. Interpretação: o lançamento de uma SmException deve encontrar aplicação primariamente quando os chamadores desejarem converter códigos de erro de SmErrorDomain em fluxos de controle baseados em exceções, enquanto interfaces funcionais retornam regularmente ara::core::ErrorCode em caso de erro. Pergunta Q-5afcc13f11bdf19b (aberta)

Este guia baseia-se na especificação AUTOSAR Adaptive R25-11.

Mapa de temas

Tipos e constantes

1

Diagrama 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

Vista de detalhes

Selecione uma entrada no índice.

Classes

Defines the error domain for State Management.

herda de ara::core::ErrorDomain

Exception type thrown by State Management.

herda de ara::core::Exception

Funções

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;

Tipos e constantes

SmErrc enumeração

Defines an enumeration class for the State Management error codes.

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

Enumerações

enumeração 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#3aa106cd
Content hash
3aa106cd
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

Documentação das funções livres

função 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#94cbec08
Content hash
94cbec08
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

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 9557f5fb3cd6 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função auxiliar MakeErrorCode serve, de acordo com [SWS_SM_81244] no namespace ara::sm, para a criação de um objeto ara::core::ErrorCode para o State Management. A função está declarada no arquivo de cabeçalho #include "ara/sm/sm_error_domain.h" e possui o status de documentação DRAFT (AUTOSAR_AP_SWS_StateManagement §8.1.2.1.2 «MakeErrorCode»).

Para a criação, a função síncrona recebe dois parâmetros de entrada:

  • code: o código de erro específico do tipo SmErrc como número do erro.
  • data: dados adicionais específicos do fabricante (tipo ara::core::ErrorDomain::SupportDataType) associados ao erro.

Como valor de retorno, a função devolve um objeto ara::core::ErrorCode completo ([SWS_SM_81244]). Devido à designação como constexpr, a avaliação já pode ocorrer em tempo de compilação, e a palavra-chave noexcept garante que nenhuma exceção seja disparada durante a execução.

Em termos de concorrência e confiabilidade, a função está especificada como thread-safe e exception safe ([SWS_SM_81244]). Ela pode, portanto, ser utilizada a partir de quaisquer contextos concorrentes de chamada sem sincronização adicional.

Este texto foi gerado por uma IA e serve como guia de orientação com base na especificação.

Guia do implementador em breve (complexidade 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#08ade1a2
Content hash
08ade1a2
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