From 4bb60732fa7f2d7543f6d5edfb5c2de5b3f3d3e8 Mon Sep 17 00:00:00 2001 From: Johannes Wendel Date: Wed, 21 Nov 2018 17:56:13 +0100 Subject: [PATCH] actual uml added --- ...t_umldiagramm => output_umldiagramm.xcore} | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) rename FlippR-Driver/contrib/uml/{output_umldiagramm => output_umldiagramm.xcore} (59%) diff --git a/FlippR-Driver/contrib/uml/output_umldiagramm b/FlippR-Driver/contrib/uml/output_umldiagramm.xcore similarity index 59% rename from FlippR-Driver/contrib/uml/output_umldiagramm rename to FlippR-Driver/contrib/uml/output_umldiagramm.xcore index 0c5c7b9..ba5b02f 100644 --- a/FlippR-Driver/contrib/uml/output_umldiagramm +++ b/FlippR-Driver/contrib/uml/output_umldiagramm.xcore @@ -6,6 +6,21 @@ /' Objects '/ +namespace flippR_driver::output::items { + class Display > { + +Display(int address, int id) + +~Display() + -address : int + +getID() : int + -id : int + +content : std::array + -fit_string(std::string& score_string) : std::string + +write_content(std::array content) : void + +write_score(int score) : void + } +} + + namespace flippR_driver::output { class DisplayController { +DisplayController(std::vector > displays, std::shared_ptr output_gpio_interface) @@ -49,6 +64,15 @@ namespace flippR_driver::utility { } +namespace flippR_driver::output::items { + abstract class IDisplay { + +IDisplay() + +~IDisplay() + +{abstract} getID() : int + } +} + + namespace flippR_driver::output { class IDisplayController { +IDisplayController() @@ -76,6 +100,15 @@ namespace flippR_driver::utility { } +namespace flippR_driver::output::items { + abstract class IOutputItem { + +~IOutputItem() + +{abstract} activate() : void + +{abstract} deactivate() : void + } +} + + namespace flippR_driver::utility { class InputGPIOInterface { +InputGPIOInterface(std::istream& input_config_stream) @@ -95,6 +128,18 @@ namespace flippR_driver::utility { } +namespace flippR_driver::output::items { + class Lamp { + +Lamp(std::shared_ptr output_gpio_interface, unsigned int address, unsigned int i2c_address, unsigned int data_pin, std::string name) + +~Lamp() + -activated : bool + +is_activated() : bool + +activate() : void + +deactivate() : void + } +} + + namespace flippR_driver::output { class OutputDriver { +OutputDriver(std::map > solenoids, std::map > lamps, std::map > displays, std::map > sounds) @@ -133,6 +178,45 @@ namespace flippR_driver::utility { } +namespace flippR_driver::output::items { + class OutputItem { + +OutputItem(std::shared_ptr output_gpio_interface, unsigned int address, unsigned int i2c_address, unsigned int data_pin_address, std::string name) + +~OutputItem() + #output_gpio_interface : const std::shared_ptr + +name : const std::string + +address : const unsigned int + +data_pin_address : const unsigned int + +i2c_address : const unsigned int + #activate() : void + #deactivate() : void + } +} + + +namespace flippR_driver::output::items { + class Solenoid { + +Solenoid(std::shared_ptr output_gpio_interface, unsigned int address, unsigned int i2c_address, unsigned int data_pin, std::string name, std::chrono::milliseconds deactivation_time) + +~Solenoid() + -deactivation_time : std::chrono::milliseconds + -trigger_task : std::future + +trigger() : void + -triggerTask() : void + } +} + + +namespace flippR_driver::output::items { + class Sound { + +Sound(std::shared_ptr output_gpio_interface, unsigned int address, unsigned int i2c_address, unsigned int data_pin, std::string name, std::chrono::milliseconds deactivation_time) + +~Sound() + -deactivation_time : std::chrono::milliseconds + -play_task : std::future + +play() : void + -playTask() : void + } +} + + @@ -148,6 +232,11 @@ namespace flippR_driver::utility { } +namespace flippR_driver::output::items { + IDisplay <|-- Display +} + + namespace flippR_driver::output { IDisplayController <|-- DisplayController } @@ -158,14 +247,43 @@ namespace flippR_driver::utility { } +namespace flippR_driver::output::items { + IOutputItem <|-- OutputItem +} + + +namespace flippR_driver::output::items { + OutputItem <|-- Lamp +} + + +namespace flippR_driver::output::items { + OutputItem <|-- Solenoid +} + + +namespace flippR_driver::output::items { + OutputItem <|-- Sound +} + + /' Aggregation relationships '/ +flippR_driver::output.DisplayController o-- flippR_driver::output::items.IDisplay + + flippR_driver::output.DisplayController o-- flippR_driver::utility.IOutputGPIOInterface +flippR_driver::output.OutputDriver o-- flippR_driver::output::items.IDisplay + + +flippR_driver::output::items.OutputItem o-- flippR_driver::utility.IOutputGPIOInterface + + @enduml