DEENESPTFRRUARHIKOZHNL

module ara::sm — State Management

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

Guide du moduleGÉNÉRÉ PAR IA

Orchestre les états du système, les groupes de fonctions, les modes d'économie d'énergie et les mises à jour logicielles d'une Adaptive Machine.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 35b1c28da865 Provenance Questions ouvertes (2)
Ancre causale : R25-11 Valable à partir de R25-11 Synthétisé pour cette version de spécification.
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Orchestre les états du système, les groupes de fonctions, les modes d'économie d'énergie et les mises à jour logicielles d'une Adaptive Machine.

Le cluster adaptatif State Management gère les modes de fonctionnement à l'échelle du système, les états des groupes de fonctions et les phases de mise à jour logicielle d'une Adaptive Machine, en liaison avec Execution Management et UCM EXP SWArchitecture p. 51. Il traite les déclencheurs de transition de manière déterministe par l'intermédiaire de tables et de listes d'actions configurées, signale les états intermédiaires via StateMachineNotification et orchestre le Suspend-to-RAM au moyen d'un modèle hub-satellite [SWS_SM_91107], [SWS_SM_81110]. Des contraintes telles que la vérification stricte des autorisations de mise à jour et des chemins obligatoires de récupération d'erreurs ANY garantissent le fonctionnement robuste de la plateforme [SWS_SM_91108].

Le cluster fonctionnel State Management (SM) fait office, dans l'AUTOSAR Adaptive Platform, de démon de plateforme central pour le contrôle des états de la machine et des groupes de fonctions ainsi que des modes d'exécution EXP SWArchitecture p. 51. Il sépare strictement la logique de décision propre au véhicule dans les applications de commande (SMControlApplication) de la gestion effective des processus par l'Execution Management (EM) EXP PlatformDesign p. 40. En plus des implémentations propriétaires des constructeurs, AUTOSAR fournit une approche standardisée StateMachine, dans laquelle les transitions sont traitées au moyen de métamodèles tabulaires et de listes d'actions configurées SWS StateManagement p. 42.

Les transitions d'état sont initiées via la méthode RequestTransition du StateMachineService [SWS_SM_91107] et validées par rapport à la TransitionRequestTable SWS StateManagement p. 44. Pendant le traitement de la ActionList associée, le champ de notification CurrentState signale la valeur de transition "inTransition" aux applications consommatrices avant que l'état cible ne soit publié après acquittement complet [SWS_SM_91109], SWS StateManagement p. 67.

Déroulement d'une transition d'état selon l'approche StateMachineSMControlApplicationStateMachineServiceState ManagementStateMachineNotificationExecution ManagementRequestTransition(TransitionRequest)Trigger TransitionVérification de TransitionRequestTableStoppe laufende ActionListSetze CurrentState = 'inTransition'SetState(targetFGState)kSuccessActionListItems entièrement exécutésErgebnisse gesammeltSetze CurrentState = TargetStatekSuccess

Diagramme de séquence : déroulement d'une transition d'état régulière via StateMachineService et notification via StateMachineNotification. Sources : [SWS_SM_91107], [SWS_SM_91109], SWS StateManagement p. 51

Pour l'exécution des mises à jour logicielles, le State Management met à disposition l'interface UpdateRequest pour l'Update and Configuration Management (UCM) [SWS_SM_91102], EXP SWArchitecture p. 56. Après vérification du champ applicatif UpdateAllowed, le module coordonne les étapes de préparation (PrepareUpdate), de vérification (VerifyUpdate) ou de rollback (PrepareRollback) ainsi que les redémarrages de machine via ResetMachine [SWS_SM_91100], [SWS_SM_91103], [SWS_SM_91108]. Pour les modes d'économie d'énergie tels que Suspend-to-RAM, S2RHub et S2RSatellite synchronisent le gel et le redémarrage des applications et du système d'exploitation [SWS_SM_81010], [SWS_SM_81110], [SWS_SM_71001].

En cas d'erreur, les SmErrorDomain [SWS_SM_81247] ainsi qu'une entrée de repli ANY obligatoire dans la ErrorRecoveryTable garantissent que les erreurs d'exécution imprévues issues de l'Execution Management ou du Platform Health Management sont interceptées de manière déterministe et que les actions en cours basculent immédiatement vers des états de restauration définis SWS StateManagement p. 42.

Rôle et limites fonctionnelles du système au sein de la plateforme

Le cluster fonctionnel State Management (SM) constitue, dans l'AUTOSAR Adaptive Platform, l'instance centrale d'orchestration des modes de fonctionnement, des groupes fonctionnels et des cycles de vie des processus à l'échelle du système EXP SWArchitecture p. 51. Exécuté en tant que démon de plateforme autonome, le State Management découple l'exécution d'état interne à la plateforme de la logique de contrôle propre au véhicule et au constructeur, laquelle est généralement encapsulée dans une application de contrôle autonome (SMControlApplication) EXP PlatformDesign p. 40. Tandis que le State Management prend et valide les décisions logiques d'état, il délègue le démarrage, l'arrêt et le basculement physiques des processus à l'Execution Management (EM) via le StateClient SWS StateManagement p. 40.

Sur le plan architectural, le module s'appuie sur une double philosophie d'intégration : les intégrateurs peuvent soit employer l'approche standardisée StateMachine basée sur le manifeste de la pile de plateforme, soit implémenter une logique d'état entièrement propre au constructeur, étant donné que les interfaces vers le State Management sont conservées publiques SWS StateManagement p. 42. Dans l'approche standardisée, le State Management réagit de façon déterministe aux déclencheurs externes provenant des applications de contrôle, aux messages d'erreur du Platform Health Management (PHM) ainsi qu'aux changements d'état réseau du Network Management (NM) SWS StateManagement p. 45. De plus, le State Management constitue l'instance de contrôle déterminante pour les mises à jour logicielles assurées par l'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

Diagramme de contexte : intégration du cluster fonctionnel State Management au sein de l'ensemble système AUTOSAR Adaptive. Sources : EXP PlatformDesign p. 40, SWS StateManagement p. 28

Transitions d'état et commande via l'interface StateMachineService

Pour initier des changements d'état, le State Management met à disposition le service orienté service StateMachineService pour chaque instance configurée d'une StateMachine SWS StateManagement p. 44. L'application demande une transition par l'intermédiaire de la méthode de service RequestTransition [SWS_SM_91107]. Le State Management vérifie cette requête par rapport à l'état actuel de la machine d'état à l'aide d'une TransitionRequestTable consignée statiquement dans le manifeste SWS StateManagement p. 44. Si la transition est définie, l'exécution de la liste d'actions en cours (ActionList) est arrêtée et le passage vers l'état cible est amorcé SWS StateManagement p. 45.

Dès qu'une transition d'état démarre, le State Management positionne la valeur du champ de service CurrentState de l'interface StateMachineNotification sur "inTransition" [SWS_SM_91109], SWS StateManagement p. 67. Cet état transitoire signale aux Adaptive Applications dépendantes, via ara::com, qu'une reconfiguration du système est en cours EXP SWArchitecture p. 52. Au sein des listes d'actions, des groupes fonctionnels peuvent être synchronisés ou exécutés en parallèle au moyen d'éléments SYNC, afin de refléter fidèlement les dépendances SWS StateManagement p. 56. Ce n'est qu'une fois que tous les ActionListItems ont été entièrement traités et que les résultats ont été collectés que CurrentState prend le nom définitif du nouvel état SWS StateManagement p. 67.

Déroulement d'une transition d'état selon l'approche StateMachineSMControlApplicationStateMachineServiceState ManagementStateMachineNotificationExecution ManagementRequestTransition(TransitionRequest)Trigger TransitionVérification de TransitionRequestTableStoppe laufende ActionListSetze CurrentState = 'inTransition'SetState(targetFGState)kSuccessActionListItems entièrement exécutésErgebnisse gesammeltSetze CurrentState = TargetStatekSuccess

Diagramme de séquence : déroulement d'une transition d'état standard via StateMachineService et notification via StateMachineNotification. Sources : [SWS_SM_91107], [SWS_SM_91109], SWS StateManagement p. 51, EXP SWArchitecture p. 219

diag_statemachine_lebenszyklus Start Off Désactivé 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

Diagramme d'état : cycle de vie typique et logique de transition d'une StateMachine basés sur la TransitionRequestTable. Sources : EXP InterfacesGuidelines p. 22, SWS StateManagement p. 44

Orchestration des mises à jour logicielles en interaction avec l'UCM

Dans le cadre des mises à jour logicielles, le State Management assure le rôle d'interface entre l'Update and Configuration Management (UCM) et les états d'exécution de la machine EXP SWArchitecture p. 142. À cet effet, le State Management met à disposition l'interface UpdateRequest, qui ne peut être instanciée au maximum qu'une seule fois par machine et qui est liée de manière exclusive au processus gérant la machine d'état du contrôleur SWS StateManagement p. 79. Une mise à jour est engagée lorsque l'UCM appelle la méthode RequestUpdateSession [SWS_SM_91102]. Le State Management ne prend pas la décision d'admissibilité de façon autonome, mais consulte le champ de service UpdateAllowed du UpdateAllowedService, défini par la logique de contrôle applicative [SWS_SM_91108], SWS StateManagement p. 81.

Si la session est approuvée, le contrôleur marque les automates d'état concernés comme ImpactedByUpdate SWS StateManagement p. 81. Avant l'installation effective, l'UCM appelle PrepareUpdate avec la liste des groupes fonctionnels concernés, à la suite de quoi ceux-ci sont commutés vers des états inactifs [SWS_SM_91103], PlatformDesign p. 58. Si la mise à jour requiert un redémarrage, l'UCM sollicite un reset ordonné via la méthode fire-and-forget ResetMachine, lors duquel toutes les données doivent préalablement être sauvegardées [SWS_SM_91100]. Le State Management informe l'UCM des changements de statut pendant le reset par le biais du champ ResetMachineNotifier [SWS_SM_91106], SWS StateManagement p. 92. Après le redémarrage ou la mise à jour, la vérification suit via VerifyUpdate [SWS_SM_91104], SWS StateManagement p. 87. Si le contrôle échoue, PrepareRollback prépare le retour arrière [SWS_SM_91105], SWS StateManagement p. 88. L'achèvement de l'ensemble du cycle est acquitté par StopUpdateSession [SWS_SM_91101], SWS StateManagement p. 79.

Session de mise à jour logicielle entre UCM et State ManagementUCMUpdateRequestState ManagementUpdateAllowedServiceExecution ManagementRequestUpdateSession()Vérifier l'autorisation de mise à jourLese Feld UpdateAllowedkUpdateAllowedSession AkzeptiertPrepareUpdate(functionGroupList)Faire passer les FunctionGroups à l'état Inactif/OffBereitkSuccessoptNeustart erforderlichResetMachine() [Fire&Forget]ResetMachineNotifier (Updating)VerifyUpdate(functionGroupList)kSuccessStopUpdateSession()kSuccess

Diagramme de séquence : déroulement des interactions lors d'une session de mise à jour logicielle entre l'UCM, le State Management et la logique de contrôle. Sources : [SWS_SM_91100], [SWS_SM_91102], [SWS_SM_91103], [SWS_SM_91104], SWS StateManagement p. 78

Gestion de l'énergie et Suspend-to-RAM dans l'architecture hub-satellite

Pour les fonctionnalités étendues de gestion de l'énergie telles que le Suspend-to-RAM (S2R), le State Management implémente un patron d'architecture hub-satellite EXP SWArchitecture p. 54. L'instance centrale de commande dans le démon de plateforme utilise la classe S2RHub [SWS_SM_81103], tandis que les Adaptive Applications participantes intègrent des instances de S2RSatellite dans leur propre espace de processus [SWS_SM_81003], [SWS_SM_81014], SWS StateManagement p. 35. Les satellites activent leur disponibilité à recevoir des changements de mode via Offer [SWS_SM_81012] ou la désactivent via StopOffer [SWS_SM_81013]. Ils implémentent les méthodes purement virtuelles EnterSuspendMode [SWS_SM_81010] et LeaveSuspendMode [SWS_SM_81011] en tant que mécanisme de callback pour la préparation et la phase consécutive à l'état de repos.

Lorsqu'une procédure de suspension est engagée, le S2RHub s'adresse à tous les satellites enregistrés de manière asynchrone via RequestToEnterSuspendMode avec un délai d'expiration configurable [SWS_SM_81110]. Dès lors que tous les satellites ont achevé avec succès leurs préparatifs d'état de repos, le hub déclenche via EnterSuspendToRamOs le passage du système d'exploitation dans l'état de maintien de la RAM [SWS_SM_81112], SWS StateManagement p. 101. Au niveau de la couche wrapper d'OS proche du matériel, le State Management s'appuie sur la apext::sm::PowerStateInterface : celle-ci permet de définir des états de fonctionnement proches du matériel via SetPowerState [SWS_SM_71001] selon l'énumération PowerState [SWS_SM_71002] ainsi que d'enregistrer et de désenregistrer des gestionnaires de réveil autonomes via RegisterWakeUpHandler [SWS_SM_71003] et UnregisterWakeUpHandler [SWS_SM_71005] avec le type de fonction WakeUpHandler [SWS_SM_71004], SWS StateManagement p. 105. Après le réveil, le hub requiert via RequestToLeaveSuspendMode le redémarrage coordonné de l'ensemble des satellites [SWS_SM_81111].

Orchestration Suspend-to-RAM via S2RHub et S2RSatelliteSmControlAppState ManagementS2RHubS2RSatellite (Apps)OS / BSPRequestTransition(Suspend)RequestToEnterSuspendMode(timeout=1000)EnterSuspendMode()Mise en quiescence et préparation à l'état de reposFuture<void> ReadyEnterSuspendToRamOs() / SetPowerState(kPmSuspendToRam)Use Case: Système en mode de rétention RAM (Suspend-to-RAM)Autonomes Aufwachen via WakeUpHandler()RequestToLeaveSuspendMode(timeout=1000) / LeaveSuspendMode()Future<void> ReadySystem aktiv (Normal Mode)

Diagramme de séquence : déroulement en deux phases de la mise en Suspend-to-RAM du système et du réveil ultérieur. Sources : [SWS_SM_71001], [SWS_SM_81110], [SWS_SM_81112], SWS StateManagement p. 101

Comportement en cas d'erreur

Pour ses propres erreurs opérationnelles, le module définit la SmErrorDomain [SWS_SM_81247], qui est récupérée via GetSmDomain [SWS_SM_81251] et porte l'identifiant "Sm" [SWS_SM_81248]. Elle fournit des descriptions d'erreur [SWS_SM_81249] et convertit, en cas d'exception, les codes en une ThrowAsException via SmException [SWS_SM_81243], [SWS_SM_81250]. L'énumération SmErrc permet de caractériser des motifs de défaillance spécifiques, notamment kOfferFailed pour les pertes de connexion avec le démon de plateforme et kCommunicationFailed pour les échecs de communication avec les satellites [SWS_SM_81240], générables au moyen de MakeErrorCode [SWS_SM_81244].

Dans le domaine des automates d'état logiques, le State Management impose un traitement sans faille des erreurs au moyen de l'ErrorRecoveryTable SWS StateManagement p. 69. Chaque table doit obligatoirement comporter exactement une entrée ayant la valeur ANY, qui sert de chemin de repli déterministe pour toutes les erreurs d'exécution non mappées explicitement SWS StateManagement p. 42, SWS StateManagement p. 69. Si une erreur est signalée par le Platform Health Management ou l'Execution Management et que la machine d'état concernée n'est pas marquée comme ImpactedByUpdate, elle positionne un drapeau interne de récupération d'erreur en cours, interrompt immédiatement la liste d'actions courante et bascule sans délai vers l'état de restauration paramétré SWS StateManagement p. 42. En cas d'erreurs critiques de l'Execution Management telles que kIntegrityOrAuthenticityCheckFailed, le State Management part du principe que l'intégrité de la plateforme est compromise et que les requêtes subséquentes échoueront, raison pour laquelle les mesures correctives se situent en dehors du cluster SWS StateManagement p. 40.

diag_error_recovery_flow Start ExecutionError entrant (de PHM ou EM) CheckUpdate La StateMachine est-elle marquée comme 'ImpactedByUpdate' ? Start->CheckUpdate Ignore Traitement régulier des erreurs supprimé (le chemin d'erreur UCM s'applique) CheckUpdate->Ignore Ja SetFlag Setze internes Flag: ErrorRecoveryOngoing CheckUpdate->SetFlag Nein EvalTable Évaluer ErrorRecoveryTable (recherche du code spécifique 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 Passer immédiatement à l'état de recovery et exécuter l'ActionList de recovery StopActionList->ExecuteRecovery End Zustandswechsel abgeschlossen ExecuteRecovery->End

Diagramme d'activité : déroulement de la décision et du traitement lors de la réception d'erreurs d'exécution et évaluation de l'ErrorRecoveryTable. Sources : SWS StateManagement p. 42, SWS StateManagement p. 69

Preuves détaillées supplémentaires

L'architecture et les voies d'interaction du State Management sont étayées par les exigences normatives et les choix de conception suivants :

Ce guide de module a été élaboré par un assistant de curation IA sur la base de la spécification AUTOSAR Adaptive pour la version R25-11 et structure les exigences normatives relatives au 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 énumération

Power State Enumeration.

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

WakeUpHandler function.

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

ara::sm

Defines the error domain for State Management.

hérite de ara::core::ErrorDomain

Exception type thrown by State Management.

hérite de ara::core::Exception

GetSmDomain fonction

Returns the global SmErrorDomain object.

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

Creates an error code.

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

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 service

StateMachineNotification interface de service

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

StateMachineService interface de service

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

UpdateAllowedService interface de service

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

UpdateRequest interface de service

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

Namespaces

Interfaces de service (modélisées via ara::com)

Diagramme de classes UML du module

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