From 88270082c465371437136f2dd9ca70f11d9160b2 Mon Sep 17 00:00:00 2001 From: Johannes Wendel Date: Tue, 18 Jun 2019 14:54:09 +0200 Subject: [PATCH] now compiling --- FlippR-Driver/cli/OutputInterpreter.cpp | 30 ++++++++++++-- FlippR-Driver/include/DriverFactory.h | 12 +++--- FlippR-Driver/src/DriverFactory.cpp | 10 ++--- .../src/output/OutputDriverFactory.cpp | 14 ++++--- .../src/output/OutputDriverFactory.h | 40 ++++++++++--------- .../src/output/items/detail/Display.cpp | 5 +++ 6 files changed, 72 insertions(+), 39 deletions(-) diff --git a/FlippR-Driver/cli/OutputInterpreter.cpp b/FlippR-Driver/cli/OutputInterpreter.cpp index 46a0c4a..cc20edf 100644 --- a/FlippR-Driver/cli/OutputInterpreter.cpp +++ b/FlippR-Driver/cli/OutputInterpreter.cpp @@ -5,12 +5,36 @@ #include "OutputInterpreter.h" #include +#include using namespace std; OutputInterpreter::OutputInterpreter(std::string output_pin_config_file, std::string output_lamp_config_file, std::string output_solenoid_config_file, std::string output_sound_config_file, std::string output_display_config_file) - : output_driver(flippR_driver::get_OutputDriver(ifstream(output_pin_config_file), ifstream(output_lamp_config_file), - ifstream(output_solenoid_config_file), ifstream(output_sound_config_file), ifstream(output_display_config_file))) -{} +{ + std::ifstream output_pin_config_stream; + std::ifstream lamp_config_stream; + std::ifstream solenoid_config_stream; + std::ifstream sound_config_stream; + std::ifstream display_config_stream; + + try + { + output_pin_config_stream.open(output_pin_config_file); + lamp_config_stream.open(output_lamp_config_file); + solenoid_config_stream.open(output_solenoid_config_file); + sound_config_stream.open(output_sound_config_file); + display_config_stream.open(output_display_config_file); + } + catch(const std::exception& e) + { + cerr << e.what(); + exit(EXIT_FAILURE); + } + output_driver = flippR_driver::get_OutputDriver(output_pin_config_stream, lamp_config_stream, + solenoid_config_stream, + sound_config_stream, + display_config_stream); + +} diff --git a/FlippR-Driver/include/DriverFactory.h b/FlippR-Driver/include/DriverFactory.h index 1a898f5..bf05658 100644 --- a/FlippR-Driver/include/DriverFactory.h +++ b/FlippR-Driver/include/DriverFactory.h @@ -13,12 +13,12 @@ namespace flippR_driver { - std::shared_ptr get_InputDriver(const std::istream& input_config_stream, const std::istream& matrix_config_stream); - std::shared_ptr get_OutputDriver(const std::istream &output_pin_config, - const std::istream &lamp_config, - const std::istream &solenoid_config, - const std::istream &sound_config, - const std::istream &display_config); + std::shared_ptr get_InputDriver(std::istream& input_config_stream, std::istream& matrix_config_stream); + std::shared_ptr get_OutputDriver(std::istream& output_pin_config, + std::istream& lamp_config, + std::istream& solenoid_config, + std::istream& sound_config, + std::istream& display_config); } #endif //flippR_driver_DRIVERFACTORY_H diff --git a/FlippR-Driver/src/DriverFactory.cpp b/FlippR-Driver/src/DriverFactory.cpp index 418250d..aaa107c 100644 --- a/FlippR-Driver/src/DriverFactory.cpp +++ b/FlippR-Driver/src/DriverFactory.cpp @@ -14,11 +14,11 @@ namespace flippR_driver return input::InputDriverFactory::get_InputDriver(input_config_stream, matrix_config_stream); } - std::shared_ptr get_OutputDriver(std::istream &output_pin_config, - std::istream &lamp_config, - std::istream &solenoid_config, - std::istream &sound_config, - std::istream &display_config) + std::shared_ptr get_OutputDriver(std::istream& output_pin_config, + std::istream& lamp_config, + std::istream& solenoid_config, + std::istream& sound_config, + std::istream& display_config) { return output::OutputDriverFactory::get_OutputDriver(output_pin_config, lamp_config, solenoid_config, sound_config, display_config); } diff --git a/FlippR-Driver/src/output/OutputDriverFactory.cpp b/FlippR-Driver/src/output/OutputDriverFactory.cpp index a759969..cefe693 100644 --- a/FlippR-Driver/src/output/OutputDriverFactory.cpp +++ b/FlippR-Driver/src/output/OutputDriverFactory.cpp @@ -2,11 +2,12 @@ // Created by rhetenor on 04.10.18. // +#include "OutputDriverFactory.h" + + #include #include -#include "OutputDriverFactory.h" - #include "utility/LoggerFactory.h" #include "output/detail/OutputDriver.h" @@ -28,12 +29,14 @@ namespace output namespace OutputDriverFactory { -namespace -{ using namespace nlohmann; -std::shared_ptr get_OutputDriver(std::istream &output_pin_config, std::istream &solenoid_config, std::istream &lamp_config, std::istream &sound_config, std::istream &display_config) +std::shared_ptr get_OutputDriver(std::istream& output_pin_config, + std::istream& solenoid_config, + std::istream& lamp_config, + std::istream& sound_config, + std::istream& display_config) { utility::LoggerFactory::CreateOutputLogger(); @@ -419,7 +422,6 @@ std::map> map_displays(const std::vecto return display_map; } -} } } } \ No newline at end of file diff --git a/FlippR-Driver/src/output/OutputDriverFactory.h b/FlippR-Driver/src/output/OutputDriverFactory.h index 4e8272f..34842dc 100644 --- a/FlippR-Driver/src/output/OutputDriverFactory.h +++ b/FlippR-Driver/src/output/OutputDriverFactory.h @@ -23,32 +23,34 @@ namespace output { namespace OutputDriverFactory { - std::shared_ptr get_OutputDriver(std::istream &output_pin_config, std::istream &solenoid_config, std::istream &lamp_config, std::istream &sound_config, std::istream &display_config); + std::shared_ptr get_OutputDriver(std::istream& output_pin_config, + std::istream& solenoid_config, + std::istream& lamp_config, + std::istream& sound_config, + std::istream& display_config); - namespace - { - std::map> create_solenoids(std::istream &solenoid_config, std::shared_ptr &pin_controller); - std::shared_ptr create_solenoid(nlohmann::json &solenoid_json, std::shared_ptr &pin_controller, std::chrono::milliseconds &deactivation_time); - std::map> create_lamps(std::istream &lamp_config, std::shared_ptr &pin_controller); - std::shared_ptr create_lamp(nlohmann::json &lamp_json, std::shared_ptr &pin_controller); + std::map> create_solenoids(std::istream &solenoid_config, std::shared_ptr &pin_controller); + std::shared_ptr create_solenoid(nlohmann::json &solenoid_json, std::shared_ptr &pin_controller, std::chrono::milliseconds &deactivation_time); - std::map> create_flippers(std::istream &solenoid_config, std::shared_ptr &pin_controller); - std::shared_ptr create_flipper(nlohmann::json &flipper_json, std::shared_ptr &pin_controller); + std::map> create_lamps(std::istream &lamp_config, std::shared_ptr &pin_controller); + std::shared_ptr create_lamp(nlohmann::json &lamp_json, std::shared_ptr &pin_controller); - std::map> create_sounds(std::istream &sound_config, std::shared_ptr &pin_controller); - std::shared_ptr create_sound(nlohmann::json &sound_json, std::shared_ptr &pin_controller, std::chrono::milliseconds &deactivation_time); + std::map> create_flippers(std::istream &solenoid_config, std::shared_ptr &pin_controller); + std::shared_ptr create_flipper(nlohmann::json &flipper_json, std::shared_ptr &pin_controller); - std::chrono::milliseconds get_deactivation_time(nlohmann::json &json); + std::map> create_sounds(std::istream &sound_config, std::shared_ptr &pin_controller); + std::shared_ptr create_sound(nlohmann::json &sound_json, std::shared_ptr &pin_controller, std::chrono::milliseconds &deactivation_time); - std::vector> create_displays(std::istream &display_config); - std::map> map_displays(const std::vector> &displays); - std::shared_ptr create_display(nlohmann::json &display_json); + std::chrono::milliseconds get_deactivation_time(nlohmann::json &json); - std::map parse_pins_driver_board(nlohmann::json &driver_board_config); - std::map parse_pins_sound_board(nlohmann::json &sound_board_config); - std::map parse_pins_display_board(nlohmann::json &display_board_config); - } + std::vector> create_displays(std::istream &display_config); + std::map> map_displays(const std::vector> &displays); + std::shared_ptr create_display(nlohmann::json &display_json); + + std::map parse_pins_driver_board(nlohmann::json &driver_board_config); + std::map parse_pins_sound_board(nlohmann::json &sound_board_config); + std::map parse_pins_display_board(nlohmann::json &display_board_config); } } } diff --git a/FlippR-Driver/src/output/items/detail/Display.cpp b/FlippR-Driver/src/output/items/detail/Display.cpp index 43e59c9..09c1a11 100644 --- a/FlippR-Driver/src/output/items/detail/Display.cpp +++ b/FlippR-Driver/src/output/items/detail/Display.cpp @@ -70,6 +70,11 @@ std::string Display::get_content() const return this->content; } +uint8_t Display::get_address() const +{ + return this->address; +} + } } }