From fda8197a26fccb3426763d00af32d83fe35142fb Mon Sep 17 00:00:00 2001 From: Johannes Wendel Date: Mon, 6 Jan 2020 12:42:04 +0100 Subject: [PATCH] Impelements and integrates DisplayFactory. Further does some refactoring --- FlippR-Driver/include/output/OutputDriver.h | 8 +- .../src/output/DisplayBoardPinController.h | 2 + .../src/output/OutputDriverFactory.cpp | 92 ++----------------- .../src/output/OutputDriverFactory.h | 9 -- .../detail/DisplayBoardPinController.cpp | 16 +++- .../output/detail/DisplayBoardPinController.h | 7 +- .../src/output/detail/DisplayController.cpp | 11 ++- .../src/output/detail/DisplayController.h | 4 +- .../src/output/detail/OutputDriver.cpp | 7 +- .../output/detail/SoundBoardPinController.cpp | 23 ++++- .../output/detail/SoundBoardPinController.h | 6 +- .../src/output/factories/DisplayFactory.cpp | 46 +++++++++- .../src/output/factories/DisplayFactory.h | 8 +- .../src/output/factories/ItemFactory.cpp | 9 +- .../src/output/factories/ItemFactory.h | 12 +++ .../src/output/factories/SoundFactory.cpp | 32 ++++++- .../src/output/factories/SoundFactory.h | 6 +- .../src/output/items/detail/Display.h | 2 +- .../output/items/detail/EightDigitDisplay.h | 10 +- .../output/items/detail/SevenDigitDisplay.h | 5 + .../src/output/items/detail/Solenoid.cpp | 4 +- 21 files changed, 192 insertions(+), 127 deletions(-) diff --git a/FlippR-Driver/include/output/OutputDriver.h b/FlippR-Driver/include/output/OutputDriver.h index 0d96ccc..286f523 100644 --- a/FlippR-Driver/include/output/OutputDriver.h +++ b/FlippR-Driver/include/output/OutputDriver.h @@ -31,9 +31,9 @@ namespace output class OutputDriver { public: - OutputDriver(std::unique_ptr display_controller, std::map> solenoids, + OutputDriver(std::shared_ptr display_controller, std::map> solenoids, std::map> lamps, std::map> sounds, - std::map> flippers, std::map> displays); + std::map> flippers, std::map> displays); ~OutputDriver() = default; @@ -62,13 +62,13 @@ public: boost::optional> get_display(uint8_t number) const; private: - std::unique_ptr display_controller; + std::shared_ptr display_controller; const std::map> lamps; const std::map> solenoids; const std::map> sounds; const std::map> flippers; - const std::map> displays; + const std::map> displays; }; } /* namespace output */ diff --git a/FlippR-Driver/src/output/DisplayBoardPinController.h b/FlippR-Driver/src/output/DisplayBoardPinController.h index 01cabd6..ff7ec7f 100644 --- a/FlippR-Driver/src/output/DisplayBoardPinController.h +++ b/FlippR-Driver/src/output/DisplayBoardPinController.h @@ -22,6 +22,8 @@ public: virtual void deactivate_displays() const = 0; virtual void write_display(const items::OutputDisplay &display) const = 0; + + virtual void set_pin_map(std::map & pins_display) = 0; }; } diff --git a/FlippR-Driver/src/output/OutputDriverFactory.cpp b/FlippR-Driver/src/output/OutputDriverFactory.cpp index 4eabb43..00dfaa6 100644 --- a/FlippR-Driver/src/output/OutputDriverFactory.cpp +++ b/FlippR-Driver/src/output/OutputDriverFactory.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include "OutputDriverFactory.h" #include "utility/LoggerFactory.h" @@ -42,94 +43,15 @@ std::shared_ptr get_OutputDriver(const std::string & solenoid_conf auto solenoids = get_items(solenoid_config_path, driver_board_pin_controller); auto lamps = get_items(lamp_config_path, driver_board_pin_controller); - auto sound_board_pin_controller = create_SoundBoardPinController(); + auto sound_board_pin_controller = std::make_shared(output_pin_mutex); auto sounds = get_items(sound_config_path, sound_board_pin_controller); + auto display_board_pin_controller = std::make_shared(); + auto displays = get_items(display_config_path, display_board_pin_controller); + auto display_controller = std::make_unique(displays, display_board_pin_controller); - /*std::unique_ptr display_board_pin_controller(new detail::DisplayBoardPinController(parse_pins_display_board(display_config))); - auto displays = create_displays(); - std::unique_ptr display_controller(new detail::DisplayController(displays, std::move(display_board_pin_controller))); - auto display_map = map_displays(displays); - - return std::make_shared(std::move(display_controller), solenoids, lamps, sounds, flippers, display_map);*/ -} - -std::map parse_pins_display_board(std::istream &display_config) -{ -/* std::string config_file = "display_config.json"; - - json display_board_config = get_element("display_board", config::displays, config_file); - - std::map pins_display; - - pins_display["run"] = get_value("run", display_board_config, config_file); - - json display_select = display_board_config.at("display_select"); - for(int i = 1; i < 6; i++) - { - pins_display["display_select" + std::to_string(i)] = get_value(std::to_string(i), display_select, config_file); - } - - json segment_select = display_board_config.at("segment_select"); - pins_display["segment_select_A"] = get_value("A", segment_select, config_file); - pins_display["segment_select_B"] = get_value("B", segment_select, config_file); - pins_display["segment_select_C"] = get_value("C", segment_select, config_file); - - json digit_select = display_board_config.at("digit_select"); - pins_display["digit_select_A"] = get_value("A", digit_select, config_file); - pins_display["digit_select_B"] = get_value("B", digit_select, config_file); - pins_display["digit_select_C"] = get_value("C", digit_select, config_file); - pins_display["digit_select_D"] = get_value("D", digit_select, config_file);; - - return pins_display;*/ -} - -std::vector> create_displays(std::istream &display_config) -{ -/* json displays_json = get_element("displays", config::displays, "display_config.json"); - - std::vector> displays; - for(json &display_json : displays_json) - { - auto display = create_display(display_json); - displays.push_back(display); - } - - return displays;*/ -} - -std::shared_ptr create_display(json & display_json) -{ -/* std::string config_file = "display_config.json"; - auto id = get_value("id", display_json, config_file); - auto address = get_value("address", display_json, config_file); - auto digits = get_value("digits", display_json, config_file); - if(digits == 8) - return std::make_shared(address, id); - - else if(digits == 7) - return std::make_shared(address, id); - - else - throw new std::logic_error("Display digits can either be 7 or 8");*/ -} - -std::map> map_displays(const std::vector> &displays) -{ - std::map> display_map; - - for(auto &display : displays) - { - display_map.emplace(display->get_address(), display); - } - - return display_map; -} - -std::shared_ptr create_SoundBoardPinController() -{ - return std::shared_ptr(); + //return std::make_shared(std::move(display_controller), solenoids, lamps, sounds, flippers, displays); } template @@ -150,6 +72,8 @@ std::map> get_items(const std::string CLOG(INFO, OUTPUT_LOGGER) << "File " << config_path << " seems to be corrupted: " << ": " << e.what(); exit(EXIT_FAILURE); } + + return map; } } diff --git a/FlippR-Driver/src/output/OutputDriverFactory.h b/FlippR-Driver/src/output/OutputDriverFactory.h index 744d8a6..ad2680e 100644 --- a/FlippR-Driver/src/output/OutputDriverFactory.h +++ b/FlippR-Driver/src/output/OutputDriverFactory.h @@ -31,15 +31,6 @@ std::shared_ptr get_OutputDriver(const std::string & solenoid_conf template std::map> get_items(const std::string & config_path, std::shared_ptr pin_controller); -std::shared_ptr create_SoundBoardPinController(); - -std::map parse_pins_display_board(std::istream & display_config); -std::vector> create_displays(); -std::shared_ptr create_display(nlohmann::json &display_json); -std::map> map_displays(const std::vector> &displays); - -template -type get_value(const std::string & name, nlohmann::json & object, const std::string & file_name); } } } diff --git a/FlippR-Driver/src/output/detail/DisplayBoardPinController.cpp b/FlippR-Driver/src/output/detail/DisplayBoardPinController.cpp index 2950ecf..c11ae7b 100644 --- a/FlippR-Driver/src/output/detail/DisplayBoardPinController.cpp +++ b/FlippR-Driver/src/output/detail/DisplayBoardPinController.cpp @@ -15,14 +15,20 @@ namespace output namespace detail { -DisplayBoardPinController::DisplayBoardPinController(std::map pins_display) : - pins_display_board(std::move(pins_display)) +DisplayBoardPinController::DisplayBoardPinController(std::map & pins_display) : + pins_display_board{std::move(pins_display)} { initialize_pins_output(0, pins_display.begin(), pins_display.end()); CLOG(INFO, OUTPUT_LOGGER) << "Created DisplayBoardPinController"; } +DisplayBoardPinController::DisplayBoardPinController() : + pins_display_board{} +{ + CLOG(INFO, OUTPUT_LOGGER) << "Created DisplayBoardPinController without pin map"; +} + void DisplayBoardPinController::activate_displays() const { write_pin(pins_display_board.at("run"), 1); @@ -77,6 +83,12 @@ void DisplayBoardPinController::run_display(uint8_t address) const write_pin(pins_display_board.at("display_select_" + std::to_string(address)), 1); } +void DisplayBoardPinController::set_pin_map(std::map & pins_display) +{ + this->pins_display_board.insert(pins_display.begin(), pins_display.end()); + initialize_pins_output(0, pins_display.begin(), pins_display.end()); +} + } } } \ No newline at end of file diff --git a/FlippR-Driver/src/output/detail/DisplayBoardPinController.h b/FlippR-Driver/src/output/detail/DisplayBoardPinController.h index 6bf60d6..86a1a76 100644 --- a/FlippR-Driver/src/output/detail/DisplayBoardPinController.h +++ b/FlippR-Driver/src/output/detail/DisplayBoardPinController.h @@ -19,7 +19,8 @@ namespace detail class DisplayBoardPinController : public output::DisplayBoardPinController { public: - explicit DisplayBoardPinController(std::map pins_display); + explicit DisplayBoardPinController(std::map & pins_display); + explicit DisplayBoardPinController(); ~DisplayBoardPinController() override = default; void activate_displays() const; @@ -27,6 +28,8 @@ public: void write_display(const items::OutputDisplay &display) const; + void set_pin_map(std::map & pins_display); + private: void write_display_digit(uint8_t display_address, uint8_t content, uint8_t position) const; void select_display_segment(uint8_t digit) const; @@ -34,7 +37,7 @@ private: void run_display(uint8_t address) const; private: - const std::map pins_display_board; + std::map pins_display_board; }; } diff --git a/FlippR-Driver/src/output/detail/DisplayController.cpp b/FlippR-Driver/src/output/detail/DisplayController.cpp index e291aac..882dbaf 100644 --- a/FlippR-Driver/src/output/detail/DisplayController.cpp +++ b/FlippR-Driver/src/output/detail/DisplayController.cpp @@ -18,13 +18,18 @@ namespace output namespace detail { -DisplayController::DisplayController(std::vector> displays, - std::unique_ptr pin_controller +DisplayController::DisplayController(std::map> & displays, + std::shared_ptr pin_controller ) - : displays(std::move(displays)), pin_controller(std::move(pin_controller)), is_running(true) + : pin_controller{pin_controller}, is_running(true) { this->display_cycle_thread = std::thread(&DisplayController::cycle_displays, this); + for (auto display : displays) + { + this->displays.push_back(std::dynamic_pointer_cast(display.second)); + } + CLOG(INFO, OUTPUT_LOGGER) << "Created DisplayController and started cycling them."; activate_displays(); diff --git a/FlippR-Driver/src/output/detail/DisplayController.h b/FlippR-Driver/src/output/detail/DisplayController.h index f41ed2f..0ccf408 100644 --- a/FlippR-Driver/src/output/detail/DisplayController.h +++ b/FlippR-Driver/src/output/detail/DisplayController.h @@ -25,7 +25,7 @@ namespace detail class DisplayController : public output::DisplayController { public: - explicit DisplayController(std::vector> displays, std::unique_ptr pin_controller); + explicit DisplayController(std::map> &displays, std::shared_ptr pin_controller); ~DisplayController() override; void activate_displays() const override; @@ -35,7 +35,7 @@ private: void cycle_displays() const; private: - const std::vector> displays; + std::vector> displays; const std::shared_ptr pin_controller; diff --git a/FlippR-Driver/src/output/detail/OutputDriver.cpp b/FlippR-Driver/src/output/detail/OutputDriver.cpp index b0ad965..79a725a 100644 --- a/FlippR-Driver/src/output/detail/OutputDriver.cpp +++ b/FlippR-Driver/src/output/detail/OutputDriver.cpp @@ -20,9 +20,9 @@ namespace output using namespace items; -OutputDriver::OutputDriver(std::unique_ptr display_controller, std::map> solenoids, +OutputDriver::OutputDriver(std::shared_ptr display_controller, std::map> solenoids, std::map> lamps, std::map> sounds, - std::map> flippers, std::map> displays): + std::map> flippers, std::map> displays): display_controller(std::move(display_controller)), solenoids(std::move(solenoids)), lamps(std::move(lamps)), @@ -149,7 +149,8 @@ boost::optional> OutputDriver::get_flipper(const boost::optional> OutputDriver::get_display(uint8_t number) const { - return this->displays.find(number)->second; + std::string num{static_cast(number)}; + return this->displays.find(num)->second; } diff --git a/FlippR-Driver/src/output/detail/SoundBoardPinController.cpp b/FlippR-Driver/src/output/detail/SoundBoardPinController.cpp index 7513c12..02538b8 100644 --- a/FlippR-Driver/src/output/detail/SoundBoardPinController.cpp +++ b/FlippR-Driver/src/output/detail/SoundBoardPinController.cpp @@ -16,13 +16,20 @@ namespace detail SoundBoardPinController::SoundBoardPinController(std::shared_ptr output_item_mutex, uint8_t fire_address, const std::vector address_pins) : - output_item_mutex(output_item_mutex), - fire_address(fire_address), - address_pins(address_pins) + output_item_mutex{output_item_mutex}, + fire_address{fire_address}, + address_pins{address_pins} { CLOG(INFO, OUTPUT_LOGGER) << "Created SoundBoardPinController"; } + +SoundBoardPinController::SoundBoardPinController(std::shared_ptr output_item_mutex) : + output_item_mutex{output_item_mutex} +{ + CLOG(INFO, OUTPUT_LOGGER) << "Created SoundBoardPinController without addresses!"; +} + void SoundBoardPinController::activate(const items::detail::Sound &sound) { std::lock_guard guard(*output_item_mutex); @@ -68,6 +75,16 @@ void SoundBoardPinController::write_pin(const uint8_t &pin, const bool &value) c PinController::write_pin(this->fire_address, false); } +void SoundBoardPinController::set_address_pins(std::vector address_pins) +{ + this->address_pins = address_pins; +} + +void SoundBoardPinController::set_fire_address(const uint8_t &fire_address) +{ + this->fire_address = fire_address; +} + } } } diff --git a/FlippR-Driver/src/output/detail/SoundBoardPinController.h b/FlippR-Driver/src/output/detail/SoundBoardPinController.h index 1ce4c75..f5f4bdc 100644 --- a/FlippR-Driver/src/output/detail/SoundBoardPinController.h +++ b/FlippR-Driver/src/output/detail/SoundBoardPinController.h @@ -19,12 +19,16 @@ namespace detail class SoundBoardPinController : public output::SoundBoardPinController { public: - SoundBoardPinController(std::shared_ptr output_item_mutex, uint8_t fire_address, const std::vector address_pins); + explicit SoundBoardPinController(std::shared_ptr output_item_mutex, uint8_t fire_address, const std::vector address_pins); + explicit SoundBoardPinController(std::shared_ptr output_item_mutex); ~SoundBoardPinController() override = default; void activate(const items::detail::Sound &sound); void deactivate(const items::detail::Sound &sound); + void set_fire_address(const uint8_t & fire_address); + void set_address_pins(const std::vector address_pins); + private: void write_sound_address(const uint8_t & address) const; void fire_sound() const; diff --git a/FlippR-Driver/src/output/factories/DisplayFactory.cpp b/FlippR-Driver/src/output/factories/DisplayFactory.cpp index 7bae00b..3ad8d3e 100644 --- a/FlippR-Driver/src/output/factories/DisplayFactory.cpp +++ b/FlippR-Driver/src/output/factories/DisplayFactory.cpp @@ -5,7 +5,9 @@ * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert */ -#include +#include "output/DisplayBoardPinController.h" +#include "output/items/detail/EightDigitDisplay.h" +#include "output/items/detail/SevenDigitDisplay.h" #include "DisplayFactory.h" @@ -17,12 +19,50 @@ namespace output DisplayFactory::DisplayFactory(nlohmann::json &object, std::shared_ptr pin_controller) : ItemFactory{object, pin_controller} { - + this->create_pin_map(); + pin_controller->set_pin_map(this->pin_map); } std::map> DisplayFactory::getItemMap() { - return std::map>(); + std::map> display_map; + auto displays = this->object.at(config_path::display_list); + for (auto & display : displays) + { + auto id = display.at(config_path::item_identifier).get(); + auto address = display.at(config_path::item_address).get(); + auto digits = display.at(config_path::display_digits).get(); + if (digits == 8) + display_map.emplace(std::string{static_cast(id)}, std::make_shared(address, id)); + else if (digits == 7) + display_map.emplace(std::string{static_cast(id)}, std::make_shared(address, id)); + else + throw new std::logic_error{"Display digits can either be 7 or 8"}; + } + return display_map; +} + +void DisplayFactory::create_pin_map() +{ + nlohmann::json board_config = this->object.at(config_path::display_board); + this->pin_map["run"] = board_config.at(config_path::run_pin); + + nlohmann::json display_select = board_config.at(config_path::display_select); + for(int i = 1; i < 6; i++) + { + this->pin_map["display_select" + std::to_string(i)] = display_select.at(std::to_string(i)); + } + + nlohmann::json segment_select = board_config.at(config_path::display_segement_select); + this->pin_map["segment_select_A"] = segment_select.at("A"); + this->pin_map["segment_select_B"] = segment_select.at("B"); + this->pin_map["segment_select_C"] = segment_select.at("C"); + + nlohmann::json digit_select = board_config.at(config_path::display_digit_select); + this->pin_map["digit_select_A"] = digit_select.at("A"); + this->pin_map["digit_select_B"] = digit_select.at("B"); + this->pin_map["digit_select_C"] = digit_select.at("C"); + this->pin_map["digit_select_D"] = digit_select.at("D"); } } diff --git a/FlippR-Driver/src/output/factories/DisplayFactory.h b/FlippR-Driver/src/output/factories/DisplayFactory.h index 47fccca..12289e3 100644 --- a/FlippR-Driver/src/output/factories/DisplayFactory.h +++ b/FlippR-Driver/src/output/factories/DisplayFactory.h @@ -9,6 +9,7 @@ #define FLIPPR_DRIVER_DISPLAYFACTORY_H #include "ItemFactory.h" +#include "output/DisplayBoardPinController.h" namespace flippR_driver { @@ -17,10 +18,15 @@ namespace output class DisplayFactory : ItemFactory { +public: explicit DisplayFactory(nlohmann::json & object, std::shared_ptr pin_controller); std::map> getItemMap() override; -public: +private: + void create_pin_map(); + +private: + std::map pin_map; }; } diff --git a/FlippR-Driver/src/output/factories/ItemFactory.cpp b/FlippR-Driver/src/output/factories/ItemFactory.cpp index 1bba06a..207772a 100644 --- a/FlippR-Driver/src/output/factories/ItemFactory.cpp +++ b/FlippR-Driver/src/output/factories/ItemFactory.cpp @@ -16,8 +16,11 @@ ItemFactory::ItemFactory(nlohmann::json &object, std::shared_ptr pin_controller{pin_controller} { this->object = object; - this->initialize_port_extenders(); - this->port_extenders = object.at("port_extenders"); + if (object.find(config_path::port_extenders) != object.end()) + { + this->port_extenders = object.at(config_path::port_extenders); + this->initialize_port_extenders(); + } } void ItemFactory::initialize_port_extender(nlohmann::json &extender) @@ -29,7 +32,7 @@ void ItemFactory::initialize_port_extender(nlohmann::json &extender) void ItemFactory::initialize_port_extenders() { - for (auto extender : port_extenders) + for (auto extender : this->port_extenders) { this->initialize_port_extender(extender); } diff --git a/FlippR-Driver/src/output/factories/ItemFactory.h b/FlippR-Driver/src/output/factories/ItemFactory.h index 936db28..f0fdf30 100644 --- a/FlippR-Driver/src/output/factories/ItemFactory.h +++ b/FlippR-Driver/src/output/factories/ItemFactory.h @@ -24,13 +24,25 @@ namespace config_path const char item_address[] = "address"; const char item_extender[] = "extender"; const char item_identifier[] = "id"; + const char port_extenders[] = "port_extenders"; const char deactivation_time[] = "deactivation_time_milliseconds"; + const char sound_path[] = "sounds"; + const char fire_pin[] = "fire_pin"; + const char sound_address_pins[] = "address_pins"; const char flipper_path[] = "flippers"; const char solenoid_path[] = "solenoids"; + + const char display_board[] = "display_board"; + const char run_pin[] = "run"; + const char display_select[] = "display_select"; + const char display_segement_select[] = "segment_select"; + const char display_digit_select[] = "digit_select"; + const char display_digits[] = "digits"; + const char display_list[] = "displays"; } class ItemFactory diff --git a/FlippR-Driver/src/output/factories/SoundFactory.cpp b/FlippR-Driver/src/output/factories/SoundFactory.cpp index 80ae9dd..9154a34 100644 --- a/FlippR-Driver/src/output/factories/SoundFactory.cpp +++ b/FlippR-Driver/src/output/factories/SoundFactory.cpp @@ -4,8 +4,9 @@ * Created on: December 28, 2019 * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert */ -#include + #include "SoundFactory.h" + namespace flippR_driver { namespace output @@ -19,6 +20,9 @@ SoundFactory::SoundFactory(nlohmann::json &object, std::shared_ptrdeactivation_time = object.at(config_path::deactivation_time).get(); } + + this->set_fire_pin(); + this->set_address_pins(); } std::map> SoundFactory::getItemMap() @@ -45,5 +49,31 @@ std::map> SoundFactory::getItemMap() return sound_map; } +void SoundFactory::set_fire_pin() +{ + auto fire_pin = object.at(config_path::fire_pin); + auto fire_pin_address = fire_pin.at(config_path::item_address).get(); + if (fire_pin.find(config_path::item_extender) != fire_pin.end()) + { + auto extender_name = fire_pin.at(config_path::item_extender).get(); + fire_pin_address += this->get_extender_pin_base(extender_name); + } + std::dynamic_pointer_cast(this->pin_controller)->set_fire_address(fire_pin_address); +} + +void SoundFactory::set_address_pins() +{ + auto address_pins = object.at(config_path::sound_address_pins); + + std::vector pins; + + for (auto & pin : address_pins) + { + pins.push_back(pin.get()); + } + + std::dynamic_pointer_cast(this->pin_controller)->set_address_pins(pins); +} + } } diff --git a/FlippR-Driver/src/output/factories/SoundFactory.h b/FlippR-Driver/src/output/factories/SoundFactory.h index da417d0..c36dccb 100644 --- a/FlippR-Driver/src/output/factories/SoundFactory.h +++ b/FlippR-Driver/src/output/factories/SoundFactory.h @@ -10,7 +10,7 @@ #include "ItemFactory.h" -#include "output/SoundBoardPinController.h" +#include "output/detail/SoundBoardPinController.h" namespace flippR_driver { @@ -23,6 +23,10 @@ public: explicit SoundFactory(nlohmann::json & object, std::shared_ptr pin_controller); std::map> getItemMap() override; +private: + void set_fire_pin(); + void set_address_pins(); + private: uint8_t deactivation_time; }; diff --git a/FlippR-Driver/src/output/items/detail/Display.h b/FlippR-Driver/src/output/items/detail/Display.h index d98bf0f..4910e6f 100644 --- a/FlippR-Driver/src/output/items/detail/Display.h +++ b/FlippR-Driver/src/output/items/detail/Display.h @@ -40,7 +40,7 @@ private: public: std::string content; -private: +protected: const uint8_t id; const uint8_t address; diff --git a/FlippR-Driver/src/output/items/detail/EightDigitDisplay.h b/FlippR-Driver/src/output/items/detail/EightDigitDisplay.h index 45a6837..22ae3a1 100644 --- a/FlippR-Driver/src/output/items/detail/EightDigitDisplay.h +++ b/FlippR-Driver/src/output/items/detail/EightDigitDisplay.h @@ -24,7 +24,10 @@ class EightDigitDisplay : public items::detail::Display, public items::EightDigi { public: EightDigitDisplay(uint8_t address, uint8_t id) : - detail::Display(address, id) {} + detail::Display(address, id) + { + CLOG(INFO, OUTPUT_LOGGER) << "Created EightDigitDisplay with address " << int{this->address} << " and id: " << int{id}; + } ~EightDigitDisplay() override = default; @@ -38,7 +41,10 @@ public: detail::Display::write_content(content, 8); } - + std::string get_name() const override + { + return "EightDigitDisplay " + this->id; + } }; diff --git a/FlippR-Driver/src/output/items/detail/SevenDigitDisplay.h b/FlippR-Driver/src/output/items/detail/SevenDigitDisplay.h index b1f332b..c5d0f19 100644 --- a/FlippR-Driver/src/output/items/detail/SevenDigitDisplay.h +++ b/FlippR-Driver/src/output/items/detail/SevenDigitDisplay.h @@ -35,6 +35,11 @@ public: ~SevenDigitDisplay() override = default; + std::string get_name() const override + { + return "EightDigitDisplay " + this->id; + } + }; } } diff --git a/FlippR-Driver/src/output/items/detail/Solenoid.cpp b/FlippR-Driver/src/output/items/detail/Solenoid.cpp index 187c448..a175ddd 100644 --- a/FlippR-Driver/src/output/items/detail/Solenoid.cpp +++ b/FlippR-Driver/src/output/items/detail/Solenoid.cpp @@ -1,5 +1,5 @@ /* - * Solenoid.cpp + * Solenoid.cppthis->pins_display_board.end(), * * Created on: Aug 2, 2018 * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert @@ -21,7 +21,7 @@ namespace detail Solenoid::Solenoid(std::shared_ptr pin_controller, const uint8_t & address, const uint8_t & pin_base, const std::string & name, const std::chrono::milliseconds & deactivation_time) : detail::Item(std::move(name)), DriverBoardItem(pin_controller, address, pin_base), pin_controller(pin_controller), deactivation_time(deactivation_time) { - CLOG(INFO, OUTPUT_LOGGER) << "Created solenoid " << name << " with address " << address << " and deactivation-time: " << deactivation_time.count(); + //CLOG(INFO, OUTPUT_LOGGER) << "Created solenoid " << name << " with address " << address << " and deactivation-time: " << deactivation_time.count(); } void Solenoid::triggerTask()