Pré. | Proc. |
Exemple : Pseudo-state Historique
L'historique State est un concept pratique associé aux régions d' States composites, selon lequel une région conserve la trace de la configuration dans laquelle se trouvait un State lors de sa dernière sortie. Cela permet de revenir facilement à cette configuration State , si nécessaire, lorsque la région redevient active (par exemple, après être revenue de la gestion d'une interruption), ou s'il existe une transition locale qui revient à son historique.
Enterprise Architect supporte deux types de Pseudo-state Historique :
- Historique profond - représentant la configuration complète de State de la visite la plus récente dans la région contenante ; l'effet est le même que si la transition se terminant sur le pseudo-état deepHistory s'était, à la place, terminée sur l' State le plus profond de la configuration de State préservé, y compris l'exécution de tous les comportements d'entrée rencontrés en cours de route
- Historique superficiel - représentant un retour uniquement au sous-état le plus élevé de la configuration State la plus récente, qui est saisi à l'aide de la règle de saisie par défaut
Les deux Statemachines ont trois States composites : Turbine_01 , Turbine_02 et Turbine_03 , chacun ayant States Off et On et un Pseudo-state Historique dans sa région.
Afin de mieux observer la différence entre l'histoire profonde et l'histoire superficielle, nous exécutons les deux Statemachines dans une seule simulation.
La Statemachine dans DeepTurbineManager est illustrée dans ce diagramme :
La Statemachine dans ShallowTurbineManager est illustrée dans ce diagramme :
Conseil : Si vous cliquez-droit sur le nœud Historique du diagramme et sélectionnez l'option 'Avancé | Historique profond', vous pouvez basculer le type de Pseudo-state Historique entre superficiel et profond.
Première activation des States
Une fois la simulation démarrée, Turbine_01 et son sous-état Off sont activés.
Séquence Déclencheur : [MODE, SPEED]
Ensuite, la configuration State actif comprend :
- Turbine_01
- Turbine_01.On
- Turbine_01.En.haut.
Séquence Déclencheur : [SUIVANT]
Cette séquence de traces peut être observée depuis la fenêtre Simulation (Simuler > Simulation Dynamique > Simulateur > Ouvrir la fenêtre Simulation ) :
01 peu profondManager [ShallowTurbineManager].StateMachine_Turbine_01_On_High SORTIE
02 peu profondManager [ShallowTurbineManager].StateMachine_Turbine_01_On EXIT
03 ShallowManager[ShallowTurbineManager].StateMachine_Turbine_01 SORTIE
04 effet de ShallowTurbineManager[ShallowTurbineManager].Turbine_01__TO__History2_105720_61730
05 peu profondManager[ShallowTurbineManager].StateMachine_Turbine_02 ENTRÉE
06 gestionnaire peu profond [gestionnaire de turbine peu profond].StateMachine_Turbine_02 DO
07 shallowManager[ShallowTurbineManager].History2_105720__TO__Off_61731 Effet
08 peu profondManager[ShallowTurbineManager].StateMachine_Turbine_02_Off ENTRÉE
09 peu profondManager[ShallowTurbineManager].StateMachine_Turbine_02_Off FAIRE
Note : étant donné que deepManager a exactement la même trace que shallowManager , la trace de deepManager est filtrée à partir de cette séquence.
Nous pouvons apprendre que :
- La sortie d'un State composite commence par l' State le plus interne dans la configuration State actif (voir les lignes 01 à 03 dans la séquence de trace)
- La transition d'historique par défaut n'est prise que si l'exécution mène au nœud Historique (voir ligne 04) et que l' State n'a jamais été actif auparavant (voir ligne 07)
Ensuite, la configuration State actif comprend :
- Turbine_02
- Turbine_02.Arrêt
Séquence Déclencheur : [NEXT, MODE]
Cette séquence de traces peut être observée à partir de la fenêtre Simulation :
Déclencheur [SUIVANT]
01 ShallowManager[ShallowTurbineManager].StateMachine_Turbine_02_Off SORTIE
02 Gestionnaire peu profond [ Gestionnaire de turbines peu profondes ]. StateMachine_Turbine_02 SORTIE
03 effet de ShallowTurbineManager[ShallowTurbineManager].Turbine_02__TO__History3_105713_61725
04 peu profondManager[ShallowTurbineManager].StateMachine_Turbine_03 ENTRÉE
05 gestionnaire peu profond [gestionnaire de turbine peu profond].StateMachine_Turbine_03 DO
06 shallowManager[ShallowTurbineManager].Initial_105706__TO__Off_61718 Effet
07 peu profondManager[ShallowTurbineManager].StateMachine_Turbine_03_Off ENTRÉE
08 peu profondManager[ShallowTurbineManager].StateMachine_Turbine_03_Off FAIRE
Déclencheur [MODE]
Message omis...
Note : étant donné que deepManager a exactement la même trace que shallowManager, la trace de deepManager est filtrée de cette séquence.
Nous pouvons apprendre que :
- Comme il n'y a pas de transition d'historique par défaut définie pour History3 , l'entrée par défaut standard de l' State est effectuée ; un nœud initial est trouvé dans la région contenue par Turbine_03, donc la transition provenant d' Initial est activée (voir ligne 06)
Ensuite, la configuration de l’état actif comprend :
- Turbine_03
- Turbine_03.On
- Turbine_03.Marche.Basse
Entrée dans l'histoire des States
À titre de référence, nous montrons l' instantané de l'historique profond de chaque turbine après sa première activation :
Turbine_01
- Turbine_01.On
- Turbine_01.En.haut.
- Turbine_02.Arrêt
- Turbine_03.On
- Turbine_03.Marche.Basse
Lorsque nous appuierons sur Déclencheur NEXT, Turbine_01 sera à nouveau activée.
Cette séquence de traces peut être observée à partir de la fenêtre Simulation :
Pour le gestionnaire peu profond :
Déclencheur [SUIVANT]
01 shallowManager[ShallowTurbineManager].StateMachine_Turbine_03_On_Low SORTIE
02 peu profondManager [ShallowTurbineManager].StateMachine_Turbine_03_On EXIT
03 Gestionnaire peu profond [ Gestionnaire de turbines peu profondes ]. StateMachine_Turbine_03 SORTIE
04 effet de ShallowTurbineManager[ShallowTurbineManager].Turbine_03__TO__History1_105711_61732
05 peu profondManager[ShallowTurbineManager].StateMachine_Turbine_01 ENTRÉE
06 gestionnaire peu profond [gestionnaire de turbine peu profond].StateMachine_Turbine_01 DO
07 peu profondManager[ShallowTurbineManager].StateMachine_Turbine_01_On ENTRÉE
08 peu profondManager[ShallowTurbineManager].StateMachine_Turbine_01_On FAIRE
09 effet de ShallowTurbineManager[ShallowTurbineManager].Initial_105721__TO__Low_61729
10 peu profondManager[ShallowTurbineManager].StateMachine_Turbine_01_On_Low ENTRÉE
11 peu profondManager[ShallowTurbineManager].StateMachine_Turbine_01_On_Low DO
Nous pouvons apprendre que :
- Le nœud shallowHistory restaure Turbine_01 jusqu'à Turbine_01.On
- Ensuite, la région contenue par Composite State Turbine_01.On sera activée par le nœud initial , qui s'est activé à Low
Pour deepManager :
Déclencheur [SUIVANT]
01 deepManager[DeepTurbineManager].StateMachine_Turbine_03_On_Low SORTIE
02 deepManager[DeepTurbineManager].StateMachine_Turbine_03_À la sortie
03 deepManager[DeepTurbineManager].StateMachine_Turbine_03 SORTIE
04 deepManager[DeepTurbineManager].Turbine_03__TO__History1_105679_61708 Effet
05 deepManager[DeepTurbineManager].StateMachine_Turbine_01 ENTRÉE
06 deepManager[DeepTurbineManager].StateMachine_Turbine_01 FAIRE
07 deepManager[DeepTurbineManager].StateMachine_Turbine_01_On ENTRÉE
08 deepManager[DeepTurbineManager].StateMachine_Turbine_01_On_High ENTRÉE
Nous pouvons apprendre que :
- Le nœud deepHistory restaure Turbine_01 jusqu'à Turbine_01.On.High
Déclencheur [NEXT] pour sortir de Turbine_01 et activer Turbine_02
Les deux shallowManager et deepManager activent Turbine_02.Off, qui est l'historique instantané lorsqu'ils sont sortis.
Déclencheur [NEXT] pour sortir de la Turbine_02 et activer la Turbine_03
Les fonctions shallowManager et deepManager activent toutes deux Turbine_03.On.Low. Cependant, les séquences de ces fonctions sont différentes.
Pour le gestionnaire de profondeur , le paramètre shallowHistory ne peut restaurer que jusqu'à Turbine_03.On. Étant donné qu'un nœud initial est défini dans Turbine_03.On, la transition provenant d' Initial sera activée et Turbine_03.On.Low sera atteinte.
01 ShallowManager[ShallowTurbineManager].StateMachine_Turbine_02_Off SORTIE
02 Gestionnaire peu profond [ Gestionnaire de turbines peu profondes ]. StateMachine_Turbine_02 SORTIE
03 effet de ShallowTurbineManager[ShallowTurbineManager].Turbine_02__TO__History3_105713_61725
04 peu profondManager[ShallowTurbineManager].StateMachine_Turbine_03 ENTRÉE
05 gestionnaire peu profond [gestionnaire de turbine peu profond].StateMachine_Turbine_03 DO
06 peu profondManager[ShallowTurbineManager].StateMachine_Turbine_03_On ENTRÉE
07 peu profondManager[ShallowTurbineManager].StateMachine_Turbine_03_On FAIRE
08 effet de ShallowTurbineManager[ShallowTurbineManager].Initial_105727__TO__Low_61728
09 peu profondManager[ShallowTurbineManager].StateMachine_Turbine_03_On_Low ENTRÉE
10 peu profondManager[ShallowTurbineManager].StateMachine_Turbine_03_On_Low DO
Pour deepManager , le deephistory peut restaurer jusqu'à Turbine_03.On.Low directement.
01 deepManager[DeepTurbineManager].StateMachine_Turbine_02_Off SORTIE
02 deepManager[DeepTurbineManager].StateMachine_Turbine_02 SORTIE
03 deepManager[DeepTurbineManager].Turbine_02__TO__History3_105680_61701 Effet
04 deepManager[DeepTurbineManager].StateMachine_Turbine_03 ENTRÉE
05 deepManager[DeepTurbineManager].StateMachine_Turbine_03 FAIRE
06 deepManager[DeepTurbineManager].StateMachine_Turbine_03_On ENTRÉE
07 deepManager[DeepTurbineManager].StateMachine_Turbine_03_On_Low ENTRÉE