From b6488734b74437c6cd73f4925f154d632ea6267d Mon Sep 17 00:00:00 2001 From: Etienne Pallier Date: Tue, 22 Oct 2019 13:26:05 +0200 Subject: [PATCH] Nouveau diagramme super mega giga !!! --- src/core/pyros_django/majordome/doc/AgentMajordome_object_diag.pu | 206 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------- 1 file changed, 132 insertions(+), 74 deletions(-) diff --git a/src/core/pyros_django/majordome/doc/AgentMajordome_object_diag.pu b/src/core/pyros_django/majordome/doc/AgentMajordome_object_diag.pu index 158d585..c4ab638 100755 --- a/src/core/pyros_django/majordome/doc/AgentMajordome_object_diag.pu +++ b/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 title __**PyROS class diagram (AgentMajordome example)**__ -Version 16-10-2019 (Etienne Pallier) +'Version 16-10-2019 (Etienne Pallier)' end title + + /' Allow to mix object/class diagram with other symbols like a "server" symbol '/ allowmixing @@ -41,95 +43,151 @@ FA_SERVER(sbig_device,SBIG detector) #Red FA_SERVER(gemini_device,Gemini telescope) #Red -/' Abstract Devices Controllers '/ + +/' ======= AgentMajordome & AgentDevices ======= '/ class AgentMajordome <> #yellow AgentMajordome -u-|> Agent AgentDevice -u-|> Agent /' Aliases to AgentDevices '/ -object AgentDeviceTelescope1 -object AgentDeviceFilterSelector1 -object AgentDeviceShutter1 -object AgentDeviceSensor1 -object AgentDeviceShutter2 +object AD_Telescope1 +object AD_FilterSelector1 +object AD_Shutter1 +object AD_Sensor1 +object AD_Shutter2 +/' Use l,r,u,d for left, right, up, or down row alignement '/ +AgentMajordome -d-> AD_Telescope1 : sends cmd to +AgentMajordome -d-> AD_FilterSelector1 : sends cmd to +AgentMajordome -d-> AD_Shutter1 : sends cmd to +AgentMajordome -d-> AD_Sensor1 : sends cmd to +AgentMajordome -d-> AD_Shutter2 : sends cmd to -/' Use l,r,u,d for left, right, up, or down row alignement '/ -AgentMajordome -d-> AgentDeviceFilterSelector1 : sends cmd to -AgentMajordome -d-> AgentDeviceShutter1 : sends cmd to -AgentMajordome -d-> AgentDeviceSensor1 : sends cmd to -AgentMajordome -d-> AgentDeviceTelescope1 : sends cmd to -AgentMajordome -d-> AgentDeviceShutter2 : sends cmd to +/' +======= Abstract Device Controllers ======= +class DeviceControllerAbstract +class DC_FilterSelector +class DC_DetectorShutter +class DC_DetectorSensor +'/ -/' SBIG '/ -class AgentDeviceSBIG_CXZ347 <> #lightgreen -AgentDeviceSBIG_CXZ347 -u-|> AgentDevice -AgentDeviceFilterSelector1 --> AgentDeviceSBIG_CXZ347 :alias of -AgentDeviceShutter1 --> AgentDeviceSBIG_CXZ347 :alias of -AgentDeviceSensor1 --> AgentDeviceSBIG_CXZ347 :alias of -/' Gemini '/ -class AgentDeviceTelescopeGemini_A1CZ3 #lightblue -AgentDeviceTelescopeGemini_A1CZ3 -u--|> AgentDevice -AgentDeviceTelescope1 --> AgentDeviceTelescopeGemini_A1CZ3 :alias of +/' ======= CHANNELS ======= '/ +DeviceControllerAbstract o-l- DeviceSimulator -class DeviceControllerAbstract -class DeviceControllerFilterSelector -class DeviceControllerDetectorShutter -class DeviceControllerDetectorSensor - -class DeviceControllerSBIG <> #lightgreen -class DeviceControllerDetectorSensorSBIG #lightgreen -class DeviceControllerDetectorShutterSBIG #lightgreen -class DeviceControllerFilterSelectorSBIG #lightgreen - -AgentDeviceSBIG_CXZ347 --> DeviceControllerSBIG :use - -class DeviceSimulatorSBIG #lightgreen -DeviceControllerSBIG o- DeviceSimulatorSBIG -DeviceControllerSBIG --|> DeviceControllerAbstract -DeviceControllerSBIG <---> sbig_device : channel/socket - -DeviceControllerSBIG o-down- DeviceControllerDetectorSensorSBIG -DeviceControllerSBIG o-down- DeviceControllerDetectorShutterSBIG -DeviceControllerSBIG o-down- DeviceControllerFilterSelectorSBIG - -DeviceControllerDetectorSensorSBIG --|> DeviceControllerDetectorSensor -DeviceControllerDetectorShutterSBIG --|> DeviceControllerDetectorShutter -DeviceControllerFilterSelectorSBIG --|> DeviceControllerFilterSelector - -DeviceControllerDetectorSensor --|> DeviceControllerAbstract -DeviceControllerDetectorShutter --|> DeviceControllerAbstract -DeviceControllerFilterSelector --|> DeviceControllerAbstract - - -class DeviceControllerTelescope -class DeviceControllerTelescopeGemini <> #lightblue -AgentDeviceTelescopeGemini_A1CZ3 --> DeviceControllerTelescopeGemini :use -class DeviceSimulatorTelescopeGemini #lightblue -DeviceControllerTelescopeGemini o-left- DeviceSimulatorTelescopeGemini -DeviceControllerTelescopeGemini <---> gemini_device : channel/socket -DeviceControllerTelescopeGemini ---|> DeviceControllerTelescope -DeviceControllerTelescope --|> DeviceControllerAbstract - - -/' Channels '/ -class ClientSerial #lightred -class ClientSocket #lightred -class ClientUSB #lightred -ClientChannel <|-- ClientSerial -ClientChannel <|-- ClientSocket -ClientChannel <|-- ClientUSB -DeviceControllerAbstract o-- ClientChannel +DeviceControllerAbstract o-d- ClientChannel +class ClientChannelSerial #lightred +class ClientChannelSocket #lightred +class ClientChannelUSB #lightred +ClientChannel <|-- ClientChannelSerial +ClientChannel <|-- ClientChannelSocket +ClientChannel <|-- ClientChannelUSB + + +/' ======= GEMINI controllers (& sim) ======= '/ + +class AD_TelescopeGemini_1 #lightblue +AD_TelescopeGemini_1 -u--|> AgentDevice + +/' Components (only 1) '/ +AD_Telescope1 -d-> AD_TelescopeGemini_1 :alias of + +class DC_Gemini <> #lightblue +class DC_MountGemini #lightblue +class DS_Gemini #lightblue +/'DC_Mount o-left- DS_Mount'/ + +AD_TelescopeGemini_1 --> DC_Gemini :use +/'DC_Gemini o-left- DS_Gemini'/ + +/' Controllers '/ +DC_Gemini <.l> gemini_device : channel/\nsocket +DC_Gemini ---|> DeviceControllerAbstract +DC_Gemini o-- DC_MountGemini +DC_MountGemini --d|> DC_Mount +DC_Mount --|> DeviceControllerAbstract + +/' Simulators '/ +DS_Gemini ---|> DeviceSimulator +DS_Gemini o-down-> DS_MountGemini +DS_MountGemini -d-|> DS_Mount +DS_Mount --|> DeviceSimulator + + + +/' ======= SBIG controllers (& sim) ======= '/ + +class AD_SBIG_1 <> #lightgreen +AD_SBIG_1 -u--|> AgentDevice + +/' Components (3) '/ +AD_FilterSelector1 --> AD_SBIG_1 :alias of +AD_Shutter1 --> AD_SBIG_1 :alias of +AD_Sensor1 --> AD_SBIG_1 :alias of + +class DC_SBIG <> #lightgreen +class DC_DetectorSensorSBIG #lightgreen +class DC_DetectorShutterSBIG #lightgreen +class DC_FilterSelectorSBIG #lightgreen +class DS_SBIG #lightgreen + +AD_SBIG_1 -d-> DC_SBIG :use +/'DC_SBIG o- DS_SBIG'/ + +/' Controllers '/ +DC_SBIG <.r> sbig_device : channel/\nsocket +DC_SBIG ---|> DeviceControllerAbstract +DC_SBIG o-down- DC_DetectorSensorSBIG +DC_SBIG o-down- DC_DetectorShutterSBIG +DC_SBIG o-down- DC_FilterSelectorSBIG + +DC_DetectorSensorSBIG --d|> DC_DetectorSensor +DC_DetectorShutterSBIG --d|> DC_DetectorShutter +DC_FilterSelectorSBIG --d|> DC_FilterSelector + +DC_DetectorSensor --|> DeviceControllerAbstract +DC_DetectorShutter --|> DeviceControllerAbstract +DC_FilterSelector --|> DeviceControllerAbstract + +/' Simulators '/ +DS_SBIG ---|> DeviceSimulator +DS_SBIG o-down-> DS_DetectorShutterSBIG +DS_SBIG o-down-> DS_DetectorSensorSBIG +DS_SBIG o-down-> DS_FilterSelectorSBIG +DS_DetectorShutterSBIG -d-|> DS_DetectorShutter +DS_DetectorSensorSBIG -d-|> DS_DetectorSensor +DS_FilterSelectorSBIG -d-|> DS_FilterSelector +DS_DetectorShutter --|> DeviceSimulator +DS_DetectorSensor --|> DeviceSimulator +DS_FilterSelector --|> DeviceSimulator + + +/' ======= LEGEND ======= '/ -/' skinparam legendFontSize 11 + legend left -Version 16-10-2019 (Etienne Pallier) +Version 22-10-2019 (E. Pallier) + +Colors: yellow : abstract classes ; red : real devices ; blue : Gemini concrete classes ; green : SBIG concrete classes + +AD = Agent Device + +DC = Device Controller (Device client, pyros generic commands only): +- translates an agent generic command to a native command, and sends it to device +- receives device's native answer, translates it to generic and returns it back to agent +(every DC is composed of a DS of the same name) + +DS = Device Simulator (Device placeholder server, native commands only): +- receives native commands from client +- returns (simulated) native answer to client +(every DS contains two 'generic to native' dictionaries: gen2nat_cmds and gen2nat_answers) +(abstract DS receive only generic commands and return generic answers) endlegend -'/ + + @enduml -- libgit2 0.21.2