DEENESPTFRRUARHIKOZHNL

пространство имён ara::sm

Руководство пользователяСОЗДАНО ИИ

Предоставляет домен ошибок и коды ошибок для управления состояниями системы и процессами Suspend-to-RAM.
СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 83e4718c6e9f Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Предоставляет домен ошибок и коды ошибок для управления состояниями системы и процессами Suspend-to-RAM.

Пространство имен ara::sm предоставляет доменно-специфичную обработку ошибок и структуры координации для State Management в AUTOSAR Adaptive (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 формирует фундаментальный интерфейс для управления состояниями (State Management) в AUTOSAR Adaptive Platform и предоставляет типы для обработки ошибок, а также для управления общемашинными конфигурациями состояний. Помимо центрального домена ошибок SmErrorDomain и соответствующего типа исключения SmException, модуль содержит функциональные механизмы для синхронизации состояний системы, в частности в рамках функциональности Suspend-to-RAM согласно AUTOSAR_AP_SWS_StateManagement §7.5 «Interaction with Suspend-to-RAM Functionality» с. 34. К ключевым партнерам по взаимодействию относятся управляющие приложения, такие как SMControlApplication, внутренний контроллер StateMachine демона State Management, а также процессы, подключенные через сателлиты (AUTOSAR_AP_SWS_StateManagement §7.5.1 «S2R Hub» с. 35).

Архитектура строго разграничивает декларативные автоматы состояний и программное управление: если система следует подходу StateMachine, управляющий экземпляр интегрирует координацию внутри себя, так что внешним приложениям закрыт прямой доступ к C++-API компонента S2RHub ([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

Диаграмма последовательности: типичный процесс координации Suspend с сателлитами и обработка ошибок. Источники: [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: как минимум один сателлит не смог должным образом перейти в состояние Suspend ([SWS_SM_81240]).
  • kAtLeastOneHadIssuesToLeave: как минимум один сателлит сообщил при выходе из режима Suspend 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.

Карта тем

Типы и константы

1

Диаграмма классов

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

Подробный вид

Выберите элемент в оглавлении.

Классы

SmErrorDomain класс

Defines the error domain for State Management.

наследует от ara::core::ErrorDomain

SmException класс

Exception type thrown by State Management.

наследует от ara::core::Exception

Функции

GetSmDomain функция

Returns the global SmErrorDomain object.

constexpr const ara::core::ErrorDomain & GetSmDomain () noexcept;
MakeErrorCode функция

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#3242741a
Content hash
3242741a
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#08b1088b
Content hash
08b1088b
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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 9557f5fb3cd6 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Вспомогательная функция MakeErrorCode согласно [SWS_SM_81244] служит в пространстве имен ara::sm для создания объекта ara::core::ErrorCode для State Management. Функция объявлена в заголовочном файле #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]). Таким образом, ее можно использовать без дополнительной синхронизации из любых параллельных контекстов вызова.

Этот текст сгенерирован ИИ и служит ориентиром на основе спецификации.

Руководство разработчика реализации в подготовке (сложность 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#5cd4bd8b
Content hash
5cd4bd8b
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