CLASSIC
Modul: wdgm
Rolle: constitutive
Konfidenz: 95%
SNIP_CLASSIC_WDGM_SECTION_7_2_3_2_Logical_Supervision_Algorithm
Wortlaut
7.2.3.2 Logical Supervision Algorithm
Immediately after initialization of the Watchdog Manager there has not yet been a Checkpoint reported, i.e. Logical Supervision for the Supervised Entity is inactive. This information is held in the Activity Flag (one flag per Graph). Each Internal Graph represents one Logical Supervision. Assuming N Internal Graphs, this means that a Supervised Entity has N results from Logical Supervision for the Supervised Entity (Note: currently N is limited up to one per Supervised Entity). Each External Graph represents one Logical Supervision, but it spans across possibly several Supervised Entities. Assuming M External Graphs that cross a Supervised Entity, this results with M results from the Logical Supervision for the Supervised Entity.
[SWS_WdgM_00271] Upstream requirements: SRS_ModeMgm_09221, SRS_ModeMgm_09222
⌈The Watchdog Manager module shall maintain an Activity Flag for each Graph.⌋
[SWS_WdgM_00296] Upstream requirements: SRS_BSW_00101
⌈The function WdgM_Init shall set the Activity Flag for each Graph to false.⌋ Each Graph may have one or more Initial Checkpoints. Initial Checkpoints are Checkpoints with which a Graph can start. To notify reaching a Checkpoint, a Supervised Entity invokes the function WdgM_ CheckpointReached, which results with execution of Logical Supervision algorithm. To verify if transitions are valid, the algorithm needs to store the most recently reached Checkpoint. For every External Graph and Internal Graph, the Watchdog Manager stores the most recently reached Checkpoint. Because a Checkpoint can belong to multiple Graphs, the function WdgM_CheckpointReached has to be able to identify to which Graph(s) a Checkpoint belongs.
[SWS_WdgM_00295] Status: DRAFT Upstream requirements: SRS_ModeMgm_09221, SRS_ModeMgm_09222
⌈The Watchdog Manager module shall identify to which Graph(s) each Checkpoint belongs.⌋
[SWS_WdgM_00246] Status: DRAFT Upstream requirements: SRS_ModeMgm_09221, SRS_ModeMgm_09222
⌈The function WdgM_CheckpointReached shall store the Checkpoint that has been most recently reported by a Supervised Entity, for each Graph (see WdgM_CheckpointReached [SWS_WdgM_00263]). If the Activity Flag for a Graph is true, the function WdgM_CheckpointReached checks for each new Checkpoint if the Transition between the stored Checkpoint and the newly reported Checkpoint is allowed.⌋
[SWS_WdgM_00274] Upstream requirements: SRS_ModeMgm_09221, SRS_ModeMgm_09222
⌈The function WdgM_CheckpointReached [SWS_WdgM_00263] shall verify if the reported Checkpoint belonging to an Internal Graph is a correct one by the following checks:
1. If the Activity Flag for the Graph of the reported Checkpoint is false, then:
• If the Checkpoint is an Initial Checkpoint (WdgMInternalCheckpointInitialRef) the result of Logical Supervision for the Supervised Entity is correct, otherwise incorrect.
2. Else if Activity Flag is true and all previously called Checkpoints of this Graph were called in the right sequence, then:
• If the reported Checkpoint is a successor of the stored Checkpoint within the Graph of the reported Checkpoint (this means there is an WdgMInternalTransition with WdgMInternalTransitionSourceRef and WdgMInternalTransitionDestRef), then the result of this Logical Supervision of the Supervised Entity is correct, otherwise incorrect.
3. Else (i.e. Activity Flag is true, but at least one Checkpoint in this Graph was previously called in a wrong sequence):
• The result of this Logical Supervision of the Supervised Entity keeps incorrect.
⌋
A similar check takes place for Checkpoints belonging to External Graphs.
[SWS_WdgM_00252] Upstream requirements: SRS_ModeMgm_09221, SRS_ModeMgm_09222
⌈The function WdgM_CheckpointReached [SWS_WdgM_00263] shall verify if the reported Checkpoint belonging to an External Graph is a correct one by the following checks:
1. If the Activity Flag for the Graph of the reported Checkpoint is false, then:
• If the Checkpoint is an Initial Checkpoint (WdgMExternalCheckpointInitialRef), then the result of this Logical Supervision within the Supervised Entity of the reported Checkpoint is correct, otherwise incorrect.
2. Else if Activity Flag is true and all previously called Checkpoints of this Graph were called in the right sequence, then:
• If the reported Checkpoint is a successor of the stored Checkpoint within the Graph of the reported Checkpoint (this means there is an WdgMExternalTransition with WdgMExternalTransitionSourceRef and WdgMExternalTransitionDestRef), then the result of this Logical Supervision for Supervised Entity of the reported Checkpoint is correct, otherwise incorrect.
3. Else (i.e. Activity Flag is true, but at least one Checkpoint in this Graph was previously called in a wrong sequence):
• The result of this Logical Supervision of the Supervised Entity keeps incorrect. The above requirement means that in case of an incorrect External Transition, the Supervised Entity that is considered as erroneous is the one that reported the incorrect Checkpoint.⌋ If a Checkpoint is one of the initial Checkpoints of a Graph, then the Graph is set as active.
[SWS_WdgM_00273] Upstream requirements: SRS_ModeMgm_09221, SRS_ModeMgm_09222
⌈If the function WdgM_CheckpointReached determines that the result of the Logical Supervision for the given Checkpoint is correct, and the Checkpoint is defined as an initial one, then the function WdgM_CheckpointReached shall set the Activity Flag of the corresponding Graph to true.⌋ The reverse applies for the Final Checkpoint.
[SWS_WdgM_00331] Upstream requirements: SRS_ModeMgm_09221, SRS_ModeMgm_09222
⌈If the function WdgM_CheckpointReached determines that the result of the Logical Supervision for the given Checkpoint is correct, and the Checkpoint is defined as a final one, then the function WdgM_CheckpointReached shall set the Activity Flag of the corresponding Graph to false.⌋ As a result, after the report from a Final Checkpoint, the correct reports within the same Graph are only from Initial Checkpoints (Note: for an evaluation of the Graph, any reports from the Checkpoints not belonging to the Graph are ignored, see [SWS_WdgM_00297]). A Checkpoint can belong to multiple Graphs (can be a combination of Internal Graphs and External Graphs). This means that both the check defined in
[SWS_WdgM_00274] and the one in [SWS_WdgM_00252] can be executed simultaneously, and also means that, in any execution of WdgM_CheckpointReached and if the reported Checkpoint belongs to any Internal Graphs or External Graphs, the function can set the result of Logical Supervision for each corresponding Supervised Entity to correct (for all belonging Graphs) or incorrect (for all or a part of belonging Graphs). If the reported Checkpoint does not belong to any Graph, then the result of Logical Supervision is not be updated. This is because the Checkpoint may be used by other Supervision Functions (Alive or Deadline).
Versionen & Provenienz · Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.
Begründung & Zuweisungs-Evidenz
Cited verbatim in the snippet (deterministic citation).
Dokumenten-Herkunft & Rückverfolgbarkeit
| Spezifikations-Dokument | SWS_WatchdogManager.pdf |
|---|---|
| Dokumentseite | Seite 51 |
| Ziel-Modul | wdgm (classic) |
| Ziel-Anforderung | SWS_WdgM_00331 |
| Semantische Rolle | constitutive |
| Automatisierungs-Konfidenz | 0.95 |