-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprotocol.puml
76 lines (63 loc) · 2.97 KB
/
protocol.puml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
@startuml
'https://plantuml.com/sequence-diagram
!theme plain
autonumber
boundary Main
database Input
participant InputDataProvider
participant OsmoGridGuardian
participant RunGuardian
participant LvCoordinator
participant LvRegionCoordinator
participant LvGridGenerator
participant ResultListener
==Init==
Main --> OsmoGridGuardian: //Start//
Main -> OsmoGridGuardian: <font color="red">!</font>Run(OsmoGridConfig)
OsmoGridGuardian --> RunGuardian: //Spawn//
note right: Death watch of\n""RunGuardian""
OsmoGridGuardian -> RunGuardian: <font color="red">!</font>Run
RunGuardian --> InputDataProvider: //Spawn//
note left: Death watch of\n""InputDataProvider""
RunGuardian --> ResultListener: //Spawn//
note right: Death watch of\n""ResultListener""
==LV generation==
RunGuardian --> LvCoordinator: //Spawn//
note right: Death watch of\n""LvCoordinator""
RunGuardian -> LvCoordinator: <font color="red">!</font>ReqLvGrids
LvCoordinator -> InputDataProvider: <font color="red">!</font>ReqOsm(...)
InputDataProvider <--> Input: //Read//
LvCoordinator -> InputDataProvider: <font color="red">!</font>ReqAssetTypes(...)
InputDataProvider <--> Input: //Read//
InputDataProvider -> LvCoordinator: <font color="red">!</font>RepOsm(OsmModel)
InputDataProvider -> LvCoordinator: <font color="red">!</font>RepAssetTypes(AssetInformation)
LvCoordinator -> LvCoordinator: <font color="red">!</font>StartGeneration(...)
LvCoordinator --> LvRegionCoordinator: //Spawn//
LvCoordinator -> LvRegionCoordinator: <font color="red">!</font>Partition(...)
LvRegionCoordinator --> LvRegionCoordinator: //Spawn//
LvRegionCoordinator -> LvRegionCoordinator: <font color="red">!</font>Partition(...)
... **Recursively spawn and divide regions until lowest administrative boundary level is reached** ...
LvRegionCoordinator --> LvGridGenerator: //Spawn one per secondary//\n//substation region//
LvRegionCoordinator -> LvCoordinator: <font color="red">!</font>GridToExpect(UUID)
LvRegionCoordinator -> LvGridGenerator: <font color="red">!</font>GenerateGrid(...)
activate LvGridGenerator
... ...
LvGridGenerator -> LvCoordinator: <font color="red">!</font>RepLvGrid(UUID, Seq[SubGridContainer])
deactivate LvGridGenerator
... **Report back if all expected grids are received** ...
LvCoordinator -> RunGuardian: <font color="red">!</font>RepLvGrids(Seq[SubGridContainer])
==MV generation==
... **To be defined in a later stage** ...
== Result handling ==
RunGuardian -> ResultListener: <font color="red">!</font>GridResult(JointGridContainer)
activate ResultListener
... ...
ResultListener -> RunGuardian: <font color="red">!</font>ResultListenerDied
deactivate ResultListener
RunGuardian -> LvCoordinator: <font color="red">!</font>Terminate
RunGuardian -> InputDataProvider: <font color="red">!</font>Terminate
InputDataProvider <--> Input: //Close//
InputDataProvider -> RunGuardian: <font color="red">!</font>InputDataProviderDied
RunGuardian -> OsmoGridGuardian: <font color="red">!</font>RunGuardianDied
OsmoGridGuardian --> Main: //Done//
@enduml