Commit b6488734b74437c6cd73f4925f154d632ea6267d
1 parent
9beeb060
Exists in
dev
Nouveau diagramme super mega giga !!!
maintenant, on va implémenter...
Showing
1 changed file
with
132 additions
and
74 deletions
Show diff stats
src/core/pyros_django/majordome/doc/AgentMajordome_object_diag.pu
@@ -30,10 +30,12 @@ UML diagrams theory : https://www.ibm.com/developerworks/rational/library/conten | @@ -30,10 +30,12 @@ UML diagrams theory : https://www.ibm.com/developerworks/rational/library/conten | ||
30 | 30 | ||
31 | title | 31 | title |
32 | __**PyROS class diagram (AgentMajordome example)**__ | 32 | __**PyROS class diagram (AgentMajordome example)**__ |
33 | -<size:10><i>Version 16-10-2019 (Etienne Pallier)</i></size> | 33 | +'<size:10><i>Version 16-10-2019 (Etienne Pallier)</i></size>' |
34 | 34 | ||
35 | end title | 35 | end title |
36 | 36 | ||
37 | + | ||
38 | + | ||
37 | /' Allow to mix object/class diagram with other symbols like a "server" symbol '/ | 39 | /' Allow to mix object/class diagram with other symbols like a "server" symbol '/ |
38 | allowmixing | 40 | allowmixing |
39 | 41 | ||
@@ -41,95 +43,151 @@ FA_SERVER(sbig_device,SBIG detector) #Red | @@ -41,95 +43,151 @@ FA_SERVER(sbig_device,SBIG detector) #Red | ||
41 | FA_SERVER(gemini_device,Gemini telescope) #Red | 43 | FA_SERVER(gemini_device,Gemini telescope) #Red |
42 | 44 | ||
43 | 45 | ||
44 | -/' Abstract Devices Controllers '/ | 46 | + |
47 | +/' ======= AgentMajordome & AgentDevices ======= '/ | ||
45 | 48 | ||
46 | class AgentMajordome <<Singleton>> #yellow | 49 | class AgentMajordome <<Singleton>> #yellow |
47 | AgentMajordome -u-|> Agent | 50 | AgentMajordome -u-|> Agent |
48 | AgentDevice -u-|> Agent | 51 | AgentDevice -u-|> Agent |
49 | 52 | ||
50 | /' Aliases to AgentDevices '/ | 53 | /' Aliases to AgentDevices '/ |
51 | -object AgentDeviceTelescope1 | ||
52 | -object AgentDeviceFilterSelector1 | ||
53 | -object AgentDeviceShutter1 | ||
54 | -object AgentDeviceSensor1 | ||
55 | -object AgentDeviceShutter2 | 54 | +object AD_Telescope1 |
55 | +object AD_FilterSelector1 | ||
56 | +object AD_Shutter1 | ||
57 | +object AD_Sensor1 | ||
58 | +object AD_Shutter2 | ||
56 | 59 | ||
60 | +/' Use l,r,u,d for left, right, up, or down row alignement '/ | ||
61 | +AgentMajordome -d-> AD_Telescope1 : sends cmd to | ||
62 | +AgentMajordome -d-> AD_FilterSelector1 : sends cmd to | ||
63 | +AgentMajordome -d-> AD_Shutter1 : sends cmd to | ||
64 | +AgentMajordome -d-> AD_Sensor1 : sends cmd to | ||
65 | +AgentMajordome -d-> AD_Shutter2 : sends cmd to | ||
57 | 66 | ||
58 | 67 | ||
59 | -/' Use l,r,u,d for left, right, up, or down row alignement '/ | ||
60 | -AgentMajordome -d-> AgentDeviceFilterSelector1 : sends cmd to | ||
61 | -AgentMajordome -d-> AgentDeviceShutter1 : sends cmd to | ||
62 | -AgentMajordome -d-> AgentDeviceSensor1 : sends cmd to | ||
63 | -AgentMajordome -d-> AgentDeviceTelescope1 : sends cmd to | ||
64 | -AgentMajordome -d-> AgentDeviceShutter2 : sends cmd to | 68 | +/' |
69 | +======= Abstract Device Controllers ======= | ||
70 | +class DeviceControllerAbstract | ||
71 | +class DC_FilterSelector | ||
72 | +class DC_DetectorShutter | ||
73 | +class DC_DetectorSensor | ||
74 | +'/ | ||
65 | 75 | ||
66 | -/' SBIG '/ | ||
67 | -class AgentDeviceSBIG_CXZ347 <<Singleton>> #lightgreen | ||
68 | -AgentDeviceSBIG_CXZ347 -u-|> AgentDevice | ||
69 | -AgentDeviceFilterSelector1 --> AgentDeviceSBIG_CXZ347 :alias of | ||
70 | -AgentDeviceShutter1 --> AgentDeviceSBIG_CXZ347 :alias of | ||
71 | -AgentDeviceSensor1 --> AgentDeviceSBIG_CXZ347 :alias of | ||
72 | 76 | ||
73 | -/' Gemini '/ | ||
74 | -class AgentDeviceTelescopeGemini_A1CZ3 #lightblue | ||
75 | -AgentDeviceTelescopeGemini_A1CZ3 -u--|> AgentDevice | ||
76 | -AgentDeviceTelescope1 --> AgentDeviceTelescopeGemini_A1CZ3 :alias of | 77 | +/' ======= CHANNELS ======= '/ |
77 | 78 | ||
79 | +DeviceControllerAbstract o-l- DeviceSimulator | ||
78 | 80 | ||
79 | -class DeviceControllerAbstract | ||
80 | -class DeviceControllerFilterSelector | ||
81 | -class DeviceControllerDetectorShutter | ||
82 | -class DeviceControllerDetectorSensor | ||
83 | - | ||
84 | -class DeviceControllerSBIG <<Singleton>> #lightgreen | ||
85 | -class DeviceControllerDetectorSensorSBIG #lightgreen | ||
86 | -class DeviceControllerDetectorShutterSBIG #lightgreen | ||
87 | -class DeviceControllerFilterSelectorSBIG #lightgreen | ||
88 | - | ||
89 | -AgentDeviceSBIG_CXZ347 --> DeviceControllerSBIG :use | ||
90 | - | ||
91 | -class DeviceSimulatorSBIG #lightgreen | ||
92 | -DeviceControllerSBIG o- DeviceSimulatorSBIG | ||
93 | -DeviceControllerSBIG --|> DeviceControllerAbstract | ||
94 | -DeviceControllerSBIG <---> sbig_device : channel/socket | ||
95 | - | ||
96 | -DeviceControllerSBIG o-down- DeviceControllerDetectorSensorSBIG | ||
97 | -DeviceControllerSBIG o-down- DeviceControllerDetectorShutterSBIG | ||
98 | -DeviceControllerSBIG o-down- DeviceControllerFilterSelectorSBIG | ||
99 | - | ||
100 | -DeviceControllerDetectorSensorSBIG --|> DeviceControllerDetectorSensor | ||
101 | -DeviceControllerDetectorShutterSBIG --|> DeviceControllerDetectorShutter | ||
102 | -DeviceControllerFilterSelectorSBIG --|> DeviceControllerFilterSelector | ||
103 | - | ||
104 | -DeviceControllerDetectorSensor --|> DeviceControllerAbstract | ||
105 | -DeviceControllerDetectorShutter --|> DeviceControllerAbstract | ||
106 | -DeviceControllerFilterSelector --|> DeviceControllerAbstract | ||
107 | - | ||
108 | - | ||
109 | -class DeviceControllerTelescope | ||
110 | -class DeviceControllerTelescopeGemini <<Singleton>> #lightblue | ||
111 | -AgentDeviceTelescopeGemini_A1CZ3 --> DeviceControllerTelescopeGemini :use | ||
112 | -class DeviceSimulatorTelescopeGemini #lightblue | ||
113 | -DeviceControllerTelescopeGemini o-left- DeviceSimulatorTelescopeGemini | ||
114 | -DeviceControllerTelescopeGemini <---> gemini_device : channel/socket | ||
115 | -DeviceControllerTelescopeGemini ---|> DeviceControllerTelescope | ||
116 | -DeviceControllerTelescope --|> DeviceControllerAbstract | ||
117 | - | ||
118 | - | ||
119 | -/' Channels '/ | ||
120 | -class ClientSerial #lightred | ||
121 | -class ClientSocket #lightred | ||
122 | -class ClientUSB #lightred | ||
123 | -ClientChannel <|-- ClientSerial | ||
124 | -ClientChannel <|-- ClientSocket | ||
125 | -ClientChannel <|-- ClientUSB | ||
126 | -DeviceControllerAbstract o-- ClientChannel | 81 | +DeviceControllerAbstract o-d- ClientChannel |
82 | +class ClientChannelSerial #lightred | ||
83 | +class ClientChannelSocket #lightred | ||
84 | +class ClientChannelUSB #lightred | ||
85 | +ClientChannel <|-- ClientChannelSerial | ||
86 | +ClientChannel <|-- ClientChannelSocket | ||
87 | +ClientChannel <|-- ClientChannelUSB | ||
88 | + | ||
89 | + | ||
90 | +/' ======= GEMINI controllers (& sim) ======= '/ | ||
91 | + | ||
92 | +class AD_TelescopeGemini_1 #lightblue | ||
93 | +AD_TelescopeGemini_1 -u--|> AgentDevice | ||
94 | + | ||
95 | +/' Components (only 1) '/ | ||
96 | +AD_Telescope1 -d-> AD_TelescopeGemini_1 :alias of | ||
97 | + | ||
98 | +class DC_Gemini <<Singleton>> #lightblue | ||
99 | +class DC_MountGemini #lightblue | ||
100 | +class DS_Gemini #lightblue | ||
101 | +/'DC_Mount o-left- DS_Mount'/ | ||
102 | + | ||
103 | +AD_TelescopeGemini_1 --> DC_Gemini :use | ||
104 | +/'DC_Gemini o-left- DS_Gemini'/ | ||
105 | + | ||
106 | +/' Controllers '/ | ||
107 | +DC_Gemini <.l> gemini_device : channel/\nsocket | ||
108 | +DC_Gemini ---|> DeviceControllerAbstract | ||
109 | +DC_Gemini o-- DC_MountGemini | ||
110 | +DC_MountGemini --d|> DC_Mount | ||
111 | +DC_Mount --|> DeviceControllerAbstract | ||
112 | + | ||
113 | +/' Simulators '/ | ||
114 | +DS_Gemini ---|> DeviceSimulator | ||
115 | +DS_Gemini o-down-> DS_MountGemini | ||
116 | +DS_MountGemini -d-|> DS_Mount | ||
117 | +DS_Mount --|> DeviceSimulator | ||
118 | + | ||
119 | + | ||
120 | + | ||
121 | +/' ======= SBIG controllers (& sim) ======= '/ | ||
122 | + | ||
123 | +class AD_SBIG_1 <<Singleton>> #lightgreen | ||
124 | +AD_SBIG_1 -u--|> AgentDevice | ||
125 | + | ||
126 | +/' Components (3) '/ | ||
127 | +AD_FilterSelector1 --> AD_SBIG_1 :alias of | ||
128 | +AD_Shutter1 --> AD_SBIG_1 :alias of | ||
129 | +AD_Sensor1 --> AD_SBIG_1 :alias of | ||
130 | + | ||
131 | +class DC_SBIG <<Singleton>> #lightgreen | ||
132 | +class DC_DetectorSensorSBIG #lightgreen | ||
133 | +class DC_DetectorShutterSBIG #lightgreen | ||
134 | +class DC_FilterSelectorSBIG #lightgreen | ||
135 | +class DS_SBIG #lightgreen | ||
136 | + | ||
137 | +AD_SBIG_1 -d-> DC_SBIG :use | ||
138 | +/'DC_SBIG o- DS_SBIG'/ | ||
139 | + | ||
140 | +/' Controllers '/ | ||
141 | +DC_SBIG <.r> sbig_device : channel/\nsocket | ||
142 | +DC_SBIG ---|> DeviceControllerAbstract | ||
143 | +DC_SBIG o-down- DC_DetectorSensorSBIG | ||
144 | +DC_SBIG o-down- DC_DetectorShutterSBIG | ||
145 | +DC_SBIG o-down- DC_FilterSelectorSBIG | ||
146 | + | ||
147 | +DC_DetectorSensorSBIG --d|> DC_DetectorSensor | ||
148 | +DC_DetectorShutterSBIG --d|> DC_DetectorShutter | ||
149 | +DC_FilterSelectorSBIG --d|> DC_FilterSelector | ||
150 | + | ||
151 | +DC_DetectorSensor --|> DeviceControllerAbstract | ||
152 | +DC_DetectorShutter --|> DeviceControllerAbstract | ||
153 | +DC_FilterSelector --|> DeviceControllerAbstract | ||
154 | + | ||
155 | +/' Simulators '/ | ||
156 | +DS_SBIG ---|> DeviceSimulator | ||
157 | +DS_SBIG o-down-> DS_DetectorShutterSBIG | ||
158 | +DS_SBIG o-down-> DS_DetectorSensorSBIG | ||
159 | +DS_SBIG o-down-> DS_FilterSelectorSBIG | ||
160 | +DS_DetectorShutterSBIG -d-|> DS_DetectorShutter | ||
161 | +DS_DetectorSensorSBIG -d-|> DS_DetectorSensor | ||
162 | +DS_FilterSelectorSBIG -d-|> DS_FilterSelector | ||
163 | +DS_DetectorShutter --|> DeviceSimulator | ||
164 | +DS_DetectorSensor --|> DeviceSimulator | ||
165 | +DS_FilterSelector --|> DeviceSimulator | ||
166 | + | ||
167 | + | ||
168 | +/' ======= LEGEND ======= '/ | ||
127 | 169 | ||
128 | -/' | ||
129 | skinparam legendFontSize 11 | 170 | skinparam legendFontSize 11 |
171 | + | ||
130 | legend left | 172 | legend left |
131 | -<i>Version 16-10-2019 (Etienne Pallier)</i> | 173 | +<i>Version 22-10-2019 (E. Pallier)</i> |
174 | + | ||
175 | +Colors: <b>yellow</b> : abstract classes ; <b>red</b> : real devices ; <b>blue</b> : Gemini concrete classes ; <b>green</b> : SBIG concrete classes | ||
176 | + | ||
177 | +AD = <b>Agent Device</b> | ||
178 | + | ||
179 | +DC = <b>Device Controller</b> (Device <b>client</b>, pyros <b>generic commands only</b>): | ||
180 | +- translates an agent generic command to a native command, and sends it to device | ||
181 | +- receives device's native answer, translates it to generic and returns it back to agent | ||
182 | +(<i>every DC is composed of a <b>DS of the same name</b></i>) | ||
183 | + | ||
184 | +DS = <b>Device Simulator</b> (Device placeholder <b>server</b>, <b>native commands only</b>): | ||
185 | +- receives native commands from client | ||
186 | +- returns (simulated) native answer to client | ||
187 | +(<i>every DS contains two 'generic to native' dictionaries: gen2nat_cmds and gen2nat_answers)</i> | ||
188 | +(<i>abstract DS receive only generic commands and return generic answers</i>) | ||
132 | endlegend | 189 | endlegend |
133 | -'/ | 190 | + |
191 | + | ||
134 | 192 | ||
135 | @enduml | 193 | @enduml |