DEENESPTFRRUARHIKOZHNL

модуль ara::sm — State Management

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

Руководство по модулюСОЗДАНО ИИ

Оркестрирует системные состояния, функциональные группы, энергосберегающие режимы и обновления программного обеспечения в Adaptive Machine.
СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 35b1c28da865 Происхождение Открытые вопросы (2)
Причинный якорь: R25-11 Действует с R25-11 Заново синтезировано для этой версии спецификации.
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Оркестрирует системные состояния, функциональные группы, энергосберегающие режимы и обновления программного обеспечения в Adaptive Machine.

Адаптивный кластер State Management управляет общесистемными рабочими режимами, состояниями функциональных групп и фазами обновления программного обеспечения в Adaptive Machine совместно с Execution Management и UCM EXP SWArchitecture с. 51. Он детерминированно обрабатывает триггеры переходов с помощью сконфигурированных таблиц и списков действий, сообщает о промежуточных состояниях через StateMachineNotification и оркестрирует Suspend-to-RAM по шаблону «концентратор — сателлит» (Hub-Satellite) [SWS_SM_91107], [SWS_SM_81110]. Граничные условия, такие как строгая проверка разрешений на обновление и обязательные пути перехвата ошибок ANY, обеспечивают надежное функционирование платформы [SWS_SM_91108].

Функциональный кластер State Management (SM) выступает в AUTOSAR Adaptive Platform центральным платформенным демоном для управления состояниями машины и функциональных групп, а также режимами выполнения EXP SWArchitecture с. 51. Он строго отделяет логику принятия решений, специфичную для транспортного средства, в управляющих приложениях (SMControlApplication) от фактического управления процессами со стороны Execution Management (EM) EXP PlatformDesign с. 40. Наряду с проприетарными реализациями производителей AUTOSAR предоставляет стандартизированный подход StateMachine, в котором переходы обрабатываются с помощью табличных метамоделей и сконфигурированных списков действий SWS StateManagement с. 42.

Переходы между состояниями инициируются через метод RequestTransition сервиса StateMachineService [SWS_SM_91107] и валидируются по TransitionRequestTable SWS StateManagement с. 44. Во время выполнения соответствующего ActionList поле оповещения CurrentState сигнализирует переходное значение "inTransition" приложениям-потребителям до того, как целевое состояние будет опубликовано после полного квитирования [SWS_SM_91109], SWS StateManagement с. 67.

Последовательность перехода состояния в подходе StateMachineSMControlApplicationStateMachineServiceState ManagementStateMachineNotificationExecution ManagementRequestTransition(TransitionRequest)Trigger TransitionПроверка TransitionRequestTableStoppe laufende ActionListSetze CurrentState = 'inTransition'SetState(targetFGState)kSuccessActionListItems полностью выполненыErgebnisse gesammeltSetze CurrentState = TargetStatekSuccess

Диаграмма последовательности: процесс штатного перехода состояния через StateMachineService и оповещение через StateMachineNotification. Источники: [SWS_SM_91107], [SWS_SM_91109], SWS StateManagement с. 51

Для проведения обновлений программного обеспечения State Management предоставляет интерфейс UpdateRequest для Update and Configuration Management (UCM) [SWS_SM_91102], EXP SWArchitecture с. 56. После проверки прикладного поля UpdateAllowed модуль координирует шаги подготовки (PrepareUpdate), верификации (VerifyUpdate) или отката (PrepareRollback), а также перезапуски машины через ResetMachine [SWS_SM_91100], [SWS_SM_91103], [SWS_SM_91108]. Для энергосберегающих режимов, таких как Suspend-to-RAM, S2RHub и S2RSatellite синхронизируют заморозку и возобновление работы приложений и операционной системы [SWS_SM_81010], [SWS_SM_81110], [SWS_SM_71001].

В случае сбоя SmErrorDomain [SWS_SM_81247], а также обязательная запись перехвата ANY в ErrorRecoveryTable гарантируют, что непредвиденные ошибки выполнения от Execution Management или Platform Health Management будут детерминированно перехвачены, а выполняемые действия — немедленно переведены в определенные состояния восстановления SWS StateManagement с. 42.

Роль и функциональные границы системы в комплексе платформы

Функциональный кластер State Management (SM) образует в AUTOSAR Adaptive Platform центральный экземпляр для оркестрации общесистемных рабочих режимов, функциональных групп и жизненных циклов процессов EXP SWArchitecture с. 51. Выполняясь как автономный платформенный демон, State Management отделяет внутреннее платформенное исполнение состояний от логики управления, специфичной для транспортного средства и производителя, которая обычно инкапсулирована в отдельном управляющем приложении (SMControlApplication) EXP PlatformDesign с. 40. В то время как State Management принимает и валидирует логические решения о состояниях, физический запуск, завершение и переключение процессов он делегирует через StateClient кластеру Execution Management (EM) SWS StateManagement с. 40.

Архитектурно модуль опирается на дуальную философию интеграции: интеграторы могут либо использовать стандартизированный подход StateMachine на основе манифестов из состава платформенного стека, либо реализовать полностью собственную логику состояний производителя, поскольку интерфейсы к State Management остаются открытыми SWS StateManagement с. 42. В стандартизированном подходе State Management детерминированно реагирует на внешние триггеры от управляющих приложений, сообщения об ошибках от Platform Health Management (PHM), а также смену сетевых состояний от Network Management (NM) SWS StateManagement с. 45. Кроме того, State Management является ключевым контролирующим звеном для обновлений программного обеспечения, выполняемых Update and Configuration Management (UCM) EXP SWArchitecture с. 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

Контекстная диаграмма: встраивание Functional Cluster State Management в системный комплекс AUTOSAR Adaptive. Источники: EXP PlatformDesign с. 40, SWS StateManagement с. 28

Переходы состояний и управление через интерфейс StateMachineService

Для инициирования изменений состояний State Management предоставляет сервис StateMachineService для каждого сконфигурированного экземпляра StateMachine SWS StateManagement с. 44. Приложение запрашивает переход через сервисный метод RequestTransition [SWS_SM_91107]. State Management проверяет этот запрос с помощью TransitionRequestTable, статически зафиксированной в манифесте, относительно текущего состояния автомата состояний SWS StateManagement с. 44. Если переход определен, выполнение текущего списка действий (ActionList) останавливается и запускается переход в целевое состояние SWS StateManagement с. 45.

Как только запускается переход состояния, State Management устанавливает значение сервисного поля CurrentState интерфейса StateMachineNotification в "inTransition" [SWS_SM_91109], SWS StateManagement с. 67. Это переходное состояние сигнализирует зависимым Adaptive Applications через ara::com о том, что выполняется реконфигурация системы EXP SWArchitecture с. 52. Внутри списков действий функциональные группы могут синхронизироваться или подключаться параллельно с помощью элементов SYNC для точного отображения зависимостей SWS StateManagement с. 56. Только после того, как все ActionListItems будут полностью обработаны, а результаты собраны, CurrentState принимает финальное имя нового состояния SWS StateManagement с. 67.

Последовательность перехода состояния в подходе StateMachineSMControlApplicationStateMachineServiceState ManagementStateMachineNotificationExecution ManagementRequestTransition(TransitionRequest)Trigger TransitionПроверка TransitionRequestTableStoppe laufende ActionListSetze CurrentState = 'inTransition'SetState(targetFGState)kSuccessActionListItems полностью выполненыErgebnisse gesammeltSetze CurrentState = TargetStatekSuccess

Диаграмма последовательности: процесс штатного перехода состояния через StateMachineService и оповещение через StateMachineNotification. Источники: [SWS_SM_91107], [SWS_SM_91109], SWS StateManagement с. 51, EXP SWArchitecture с. 219

diag_statemachine_lebenszyklus Start 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

Диаграмма состояний: типичный жизненный цикл и логика переходов StateMachine на основе TransitionRequestTable. Источники: EXP InterfacesGuidelines с. 22, SWS StateManagement с. 44

Оркестрация обновлений программного обеспечения во взаимодействии с UCM

В рамках обновлений программного обеспечения State Management берет на себя функцию интерфейса между Update and Configuration Management (UCM) и состояниями выполнения машины EXP SWArchitecture с. 142. Для этого State Management предоставляет интерфейс UpdateRequest, который разрешено инстанциировать не более одного раза на машину и который эксклюзивно привязан к процессу, управляющему автоматом состояний контроллера SWS StateManagement с. 79. Обновление инициируется вызовом метода RequestUpdateSession со стороны UCM [SWS_SM_91102]. State Management принимает решение о допустимости не автономно, а опрашивает сервисное поле UpdateAllowed интерфейса UpdateAllowedService, устанавливаемое прикладной логикой управления [SWS_SM_91108], SWS StateManagement с. 81.

Если сессия подтверждается, контроллер помечает затронутые автоматы состояний как ImpactedByUpdate SWS StateManagement с. 81. До фактической установки UCM вызывает PrepareUpdate со списком затронутых функциональных групп, после чего они переводятся в неактивные состояния [SWS_SM_91103], PlatformDesign с. 58. Если обновление требует перезагрузки, UCM через метод типа Fire-and-Forget ResetMachine запрашивает упорядоченный сброс, перед которым все данные должны быть сохранены [SWS_SM_91100]. State Management информирует UCM об изменениях статуса во время сброса через поле ResetMachineNotifier [SWS_SM_91106], SWS StateManagement с. 92. После перезагрузки или обновления следует верификация через VerifyUpdate [SWS_SM_91104], SWS StateManagement с. 87. Если проверка завершается неудачно, PrepareRollback подготавливает откат [SWS_SM_91105], SWS StateManagement с. 88. Завершение всего цикла квитируется с помощью StopUpdateSession [SWS_SM_91101], SWS StateManagement с. 79.

Сеанс обновления ПО между UCM и State ManagementUCMUpdateRequestState ManagementUpdateAllowedServiceExecution ManagementRequestUpdateSession()Проверка прав на обновлениеLese Feld UpdateAllowedkUpdateAllowedSession AkzeptiertPrepareUpdate(functionGroupList)Перевод FunctionGroups в состояние Inaktiv/OffBereitkSuccessoptNeustart erforderlichResetMachine() [Fire&Forget]ResetMachineNotifier (Updating)VerifyUpdate(functionGroupList)kSuccessStopUpdateSession()kSuccess

Диаграмма последовательности: процесс взаимодействия во время сессии обновления программного обеспечения между UCM, State Management и логикой управления. Источники: [SWS_SM_91100], [SWS_SM_91102], [SWS_SM_91103], [SWS_SM_91104], SWS StateManagement с. 78

Управление энергопотреблением и Suspend-to-RAM в схеме Hub-Satellite

Для расширенных функций управления энергопотреблением, таких как Suspend-to-RAM (S2R), State Management реализует архитектурный шаблон «концентратор — сателлит» (Hub-Satellite) EXP SWArchitecture с. 54. Центральный управляющий экземпляр в платформенном демоне использует класс S2RHub [SWS_SM_81103], тогда как участвующие Adaptive Applications в своем собственном пространстве процессов подключают экземпляры S2RSatellite [SWS_SM_81003], [SWS_SM_81014], SWS StateManagement с. 35. Сателлиты активируют свою готовность к приему изменений режима через Offer [SWS_SM_81012] или деактивируют ее через StopOffer [SWS_SM_81013]. Они реализуют чисто виртуальные методы EnterSuspendMode [SWS_SM_81010] и LeaveSuspendMode [SWS_SM_81011] в качестве механизма обратного вызова для подготовки к состоянию покоя и последующей обработки.

При инициировании операции Suspend S2RHub асинхронно обращается ко всем зарегистрированным сателлитам через RequestToEnterSuspendMode с настраиваемым таймаутом [SWS_SM_81110]. Если все сателлиты успешно завершили подготовку к состоянию покоя, концентратор (hub) инициирует через EnterSuspendToRamOs перевод операционной системы в состояние сохранения содержимого RAM [SWS_SM_81112], SWS StateManagement с. 101. На аппаратно-зависимом уровне OS-обёртки State Management обращается к apext::sm::PowerStateInterface: она позволяет задавать близкие к аппаратному уровню рабочие состояния через SetPowerState [SWS_SM_71001] на основе перечисления PowerState [SWS_SM_71002], а также выполнять регистрацию и отмену регистрации автономных обработчиков пробуждения через RegisterWakeUpHandler [SWS_SM_71003] и UnregisterWakeUpHandler [SWS_SM_71005] с типом функции WakeUpHandler [SWS_SM_71004], SWS StateManagement с. 105. После пробуждения концентратор запрашивает через RequestToLeaveSuspendMode скоординированный перезапуск всех сателлитов [SWS_SM_81111].

Оркестрация Suspend-to-RAM через S2RHub и S2RSatelliteSmControlAppState ManagementS2RHubS2RSatellite (Apps)OS / BSPRequestTransition(Suspend)RequestToEnterSuspendMode(timeout=1000)EnterSuspendMode()Квиесценция и подготовка к состоянию покояFuture<void> ReadyEnterSuspendToRamOs() / SetPowerState(kPmSuspendToRam)Use Case: Система в режиме сохранения данных в RAM (Suspend-to-RAM)Autonomes Aufwachen via WakeUpHandler()RequestToLeaveSuspendMode(timeout=1000) / LeaveSuspendMode()Future<void> ReadySystem aktiv (Normal Mode)

Диаграмма последовательности: двухфазный процесс перевода системы в режим Suspend-to-RAM и последующего пробуждения. Источники: [SWS_SM_71001], [SWS_SM_81110], [SWS_SM_81112], SWS StateManagement с. 101

Поведение при ошибке

Модуль определяет для собственных эксплуатационных ошибок SmErrorDomain [SWS_SM_81247], которая запрашивается через GetSmDomain [SWS_SM_81251] и имеет идентификатор "Sm" [SWS_SM_81248]. Она предоставляет описания ошибок [SWS_SM_81249] и в исключительных случаях преобразует коды через ThrowAsException в SmException [SWS_SM_81243], [SWS_SM_81250]. С помощью перечисления SmErrc типизируются конкретные причины сбоев, в том числе kOfferFailed для обрывов соединения с демоном платформы и kCommunicationFailed для сбоев связи с сателлитами [SWS_SM_81240], создаваемые посредством MakeErrorCode [SWS_SM_81244].

В области логических конечных автоматов State Management обеспечивает сплошную обработку ошибок с помощью ErrorRecoveryTable SWS StateManagement с. 69. Каждая таблица в обязательном порядке должна содержать ровно одну запись со значением ANY, которая служит детерминированным резервным путем перехвата для всех явно не сопоставленных ошибок выполнения SWS StateManagement с. 42, SWS StateManagement с. 69. Если об ошибке сообщает Platform Health Management или Execution Management и затронутый автомат состояний не помечен как ImpactedByUpdate, он устанавливает внутренний флаг текущего восстановления после ошибки, немедленно прерывает текущий список действий и сразу переключается в параметризованное состояние восстановления SWS StateManagement с. 42. При критических ошибках Execution Management, таких как kIntegrityOrAuthenticityCheckFailed, State Management исходит из того, что надежность платформы скомпрометирована и последующие запросы завершатся сбоем, вследствие чего корректирующие меры лежат за пределами кластера SWS StateManagement с. 40.

diag_error_recovery_flow Start Входящий ExecutionError (от PHM или EM) CheckUpdate Помечен ли StateMachine как «ImpactedByUpdate»? Start->CheckUpdate Ignore Штатная обработка ошибок подавлена (действует ветка ошибок UCM) CheckUpdate->Ignore Ja SetFlag Setze internes Flag: ErrorRecoveryOngoing CheckUpdate->SetFlag Nein EvalTable Оценка ErrorRecoveryTable (поиск конкретного кода или 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 Немедленный переход в состояние Recovery и выполнение Recovery-ActionList StopActionList->ExecuteRecovery End Zustandswechsel abgeschlossen ExecuteRecovery->End

Диаграмма деятельности: процесс принятия решений и обработки при входящих ошибках выполнения и анализ ErrorRecoveryTable. Источники: SWS StateManagement с. 42, SWS StateManagement с. 69

Дальнейшие подробные доказательства

Архитектура и пути взаимодействия State Management подтверждаются следующими нормативными требованиями и проектными решениями:

Данное руководство по модулю было составлено ИИ-ассистентом по кураторству на основе спецификации AUTOSAR Adaptive для релиза R25-11 и структурирует нормативные предписания по 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 перечисление

Power State Enumeration.

enum class PowerState : std::uint32_t {...};
WakeUpHandler псевдоним типа

WakeUpHandler function.

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

ara::sm

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 {...};

ara::sm::s2r

S2RHub класс

S2RHub class.

S2RSatellite класс

S2RSatellite abstract class.

Сервисные интерфейсы

StateMachineNotification сервисный интерфейс

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

StateMachineService сервисный интерфейс

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

UpdateAllowedService сервисный интерфейс

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

UpdateRequest сервисный интерфейс

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

Пространства имён

Сервисные интерфейсы (моделируются через ara::com)

UML-диаграмма классов модуля

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