DEENESPTFRRUARHIKOZHNL

命名空间 ara::sm

用户指南人工智能生成

提供用于控制系统状态和 Suspend-to-RAM 流程的错误域与错误代码。
AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 83e4718c6e9f 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

提供用于控制系统状态和 Suspend-to-RAM 流程的错误域与错误代码。

命名空间 ara::sm 为 AUTOSAR Adaptive 中的 State Management 提供特定领域的错误处理和协调结构(AUTOSAR_AP_SWS_StateManagement §7.5 第34页)。它通过 SmErrc、SmErrorDomain 和 MakeErrorCode 定义了标准化机制,用于捕获同步状态转换(如 Suspend-to-RAM)期间的通信错误、超时和拒绝([SWS_SM_81240]、[SWS_SM_81244])。一个关键约束是自动化状态机控制与对协调实例的直接 API 访问之间的互斥性([SWS_SM_00684])。

上下文

命名空间 ara::sm 构成了 AUTOSAR Adaptive Platform 的状态管理(State Management)的基础接口,并提供用于错误处理以及控制整机状态配置的类型。除了核心错误域 SmErrorDomain 和关联的异常类型 SmException 之外,该模块还包括用于同步系统状态的功能机制,特别是在符合 AUTOSAR_AP_SWS_StateManagement §7.5 “Interaction with Suspend-to-RAM Functionality” 第34页 的 Suspend-to-RAM 功能框架内。主要交互伙伴包括控制应用程序(如 SMControlApplication)、State Management 守护进程的内部 StateMachine 控制器以及通过卫星连接的进程(AUTOSAR_AP_SWS_StateManagement §7.5.1 “S2R Hub” 第35页)。

该架构在声明式状态机与编程式控制之间进行了严格区分:如果系统遵循 StateMachine 方法,控制实例会在内部集成协调功能,从而禁止外部应用程序直接访问 S2RHub 的 C++ API([SWS_SM_00684];AUTOSAR_AP_SWS_StateManagement §7.7.15 第96页)。与安全相关的交互还会受到 Identity and Access Management (IAM) 的检查,以确保仅允许经授权的进程执行注册或请求状态更改([SWS_SM_00706]、[SWS_SM_00714]、[SWS_SM_00715])。

G app SMControlApplication 或 StateMachine hub S2RHub / State Management Daemon app->hub S2RHub-Steuerung [SWS_SM_00684] errdomain SmErrorDomain (ara::sm) app->errdomain 错误检查 [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]

上下文图:控制应用程序、State Management 守护进程、卫星和错误域之间的角色分配与交互路径。来源:[SWS_SM_00684]、[SWS_SM_00701]、[SWS_SM_00710]、[SWS_SM_81240]、[SWS_SM_81251]。

使用路径

该命名空间的典型用法分为应用程序端进程的注册、协调转换的触发以及所得错误代码的求值。对于具有 Suspend-to-RAM 能力的进程,生命周期始于通过 Offer 提供其接口([SWS_SM_00710])。在操作系统转换到休眠状态之前,控制实例使用 RequestToEnterSuspendMode 向所有已注册的卫星发送请求,随后触发它们的回调 EnterSuspendMode([SWS_SM_00701]、[SWS_SM_00711])。

协调函数会阻塞或监视转换,直到所有参与的卫星均已响应或注销([SWS_SM_00702])。唤醒时,类似地调用 RequestToLeaveSuspendMode,它通过 LeaveSuspendMode 恢复正常运行([SWS_SM_00703]、[SWS_SM_00711])。如果在通信或状态更改期间发生中断,该模块将求助于自由函数 MakeErrorCode([SWS_SM_81244]),以基于枚举 ara::core::ErrorCode 生成具体的 SmErrc 实例并提供给调用方应用程序。

Suspend-to-RAM 协调与错误处理流程SMControlApplicationS2RHubS2RSatelliteSmErrorDomainUse Case: Suspend-AnforderungRequestToEnterSuspendMode()EnterSuspendMode() CallbackaltSatelliten quittieren erfolgreich确认且无错误返回成功(结果为肯定)至少一个卫星拒绝反馈 kRejectedMakeErrorCode(SmErrc::kAtLeastOneRejected)ara::core::ErrorCodeFehlercode kAtLeastOneRejected

时序图:与卫星进行休眠协调及错误处理的典型流程。来源:[SWS_SM_00701]、[SWS_SM_00702]、[SWS_SM_00707]、[SWS_SM_81240]、[SWS_SM_81244]。

错误场景

ara::sm 中的错误处理是严格类型化的,并基于枚举 SmErrc([SWS_SM_81240])。已定义的错误代码包括:

  • kOfferFailed:由于与 State Management 守护进程的通信失败,无法提供该服务([SWS_SM_81240])。
  • kCommunicationFailed:在与卫星通信时较低传输层上发生错误([SWS_SM_81240])。
  • kCommunicationTimeout:被寻址的卫星超出了指定的响应时间([SWS_SM_81240]、[SWS_SM_00707])。
  • kAtLeastOneRejected:至少有一个卫星未能正确进入挂起状态([SWS_SM_81240])。
  • kAtLeastOneHadIssuesToLeave:至少有一个卫星在离开挂起模式时报告了 kRejected([SWS_SM_81240]、[SWS_SM_00707])。
  • kAuthenticationRequired:强制执行 IAM 身份验证,并要求对卫星进行显式身份验证([SWS_SM_81240]、[SWS_SM_00716])。

通过 GetSmDomain([SWS_SM_81251])提供全局错误域以及通过 MakeErrorCode([SWS_SM_81244])生成错误代码均被声明为 noexcept,并保证异常安全性与线程安全性。解释:抛出 SmException 应该主要用于调用方希望将 SmErrorDomain 的错误代码转换为基于异常的控制流的场景,而功能接口在出错时则正常返回 ara::core::ErrorCode。 问题 Q-5afcc13f11bdf19b (未决)

本指南基于 AUTOSAR Adaptive R25-11 规范。

主题图

类图

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

详细视图

请在大纲中选择一个条目。

类

Defines the error domain for State Management.

继承自 ara::core::ErrorDomain

Exception type thrown by State Management.

继承自 ara::core::Exception

函数

Returns the global SmErrorDomain object.

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

Creates an error code.

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

类型与常量

SmErrc 枚举

Defines an enumeration class for the State Management error codes.

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

枚举

枚举 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#77d4f3b1
Content hash
77d4f3b1
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

自由函数文档

函数 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#85fff304
Content hash
85fff304
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

函数 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.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 9557f5fb3cd6 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

辅助函数 MakeErrorCode 根据 [SWS_SM_81244] 在命名空间 ara::sm 中用于为 State Management 生成 ara::core::ErrorCode 对象。该函数在头文件 #include "ara/sm/sm_error_domain.h" 中声明,具有文档状态 DRAFT(AUTOSAR_AP_SWS_StateManagement §8.1.2.1.2 “MakeErrorCode”)。

为了创建该对象,该同步函数接收两个输入参数:

  • code:类型为 SmErrc 的特定错误码作为错误号。
  • data:与该错误关联的厂商特定附加数据(类型 ara::core::ErrorDomain::SupportDataType)。

作为返回值,该函数返回一个完整的 ara::core::ErrorCode 对象([SWS_SM_81244])。由于标记为 constexpr,求值可在编译时完成,而关键字 noexcept 保证了执行时不会引发任何异常。

在并发性与可靠性方面,该函数被指定为 thread-safe 以及 exception safe([SWS_SM_81244])。因此,可以从任意并发调用上下文中直接使用它,而无需额外的同步。

本文本由 AI 生成,并作为基于规范的定位参考。

实现者指南即将推出(复杂度 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#bd1542cc
Content hash
bd1542cc
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