diff --git a/FlippR-Driver/src/utility/GPIOInterface.cpp b/FlippR-Driver/src/GPIOInterface.cpp similarity index 96% rename from FlippR-Driver/src/utility/GPIOInterface.cpp rename to FlippR-Driver/src/GPIOInterface.cpp index 52757b7..d3c2f5f 100644 --- a/FlippR-Driver/src/utility/GPIOInterface.cpp +++ b/FlippR-Driver/src/GPIOInterface.cpp @@ -7,7 +7,7 @@ #include "GPIOInterface.h" -#include "config.h" +#include "utility/config.h" #include "wiringPi/wiringPi.h" #include "json/json.hpp" diff --git a/FlippR-Driver/src/utility/GPIOInterface.h b/FlippR-Driver/src/GPIOInterface.h similarity index 97% rename from FlippR-Driver/src/utility/GPIOInterface.h rename to FlippR-Driver/src/GPIOInterface.h index bbfa88a..61f5a0d 100644 --- a/FlippR-Driver/src/utility/GPIOInterface.h +++ b/FlippR-Driver/src/GPIOInterface.h @@ -17,8 +17,6 @@ #include namespace flippR_driver { -namespace utility -{ class GPIOInterface { @@ -43,7 +41,6 @@ private: }; } -} #endif diff --git a/FlippR-Driver/src/input/Detector.h b/FlippR-Driver/src/input/Detector.h index cc5902e..1282427 100644 --- a/FlippR-Driver/src/input/Detector.h +++ b/FlippR-Driver/src/input/Detector.h @@ -19,7 +19,7 @@ #include #include -#include "utility/IInputGPIOInterface.h" +#include "IInputGPIOInterface.h" #include "IDetector.h" #include "DistributingEvent.h" diff --git a/FlippR-Driver/src/utility/IInputGPIOInterface.h b/FlippR-Driver/src/input/IInputGPIOInterface.h similarity index 100% rename from FlippR-Driver/src/utility/IInputGPIOInterface.h rename to FlippR-Driver/src/input/IInputGPIOInterface.h diff --git a/FlippR-Driver/src/input/InputDriverFactory.h b/FlippR-Driver/src/input/InputDriverFactory.h index 6fc9c44..3f038da 100644 --- a/FlippR-Driver/src/input/InputDriverFactory.h +++ b/FlippR-Driver/src/input/InputDriverFactory.h @@ -14,7 +14,7 @@ #include "Detector.h" #include "input/IInputDriver.h" -#include "utility/InputGPIOInterface.h" +#include "InputGPIOInterface.h" #include "json/json.hpp" #include "IEventNotifier.h" diff --git a/FlippR-Driver/src/utility/InputGPIOInterface.cpp b/FlippR-Driver/src/input/InputGPIOInterface.cpp similarity index 98% rename from FlippR-Driver/src/utility/InputGPIOInterface.cpp rename to FlippR-Driver/src/input/InputGPIOInterface.cpp index 98acb50..2603496 100644 --- a/FlippR-Driver/src/utility/InputGPIOInterface.cpp +++ b/FlippR-Driver/src/input/InputGPIOInterface.cpp @@ -11,7 +11,7 @@ #include "InputGPIOInterface.h" #include "json/json.hpp" #include "easylogging/easylogging++.h" -#include "config.h" +#include "utility/config.h" #include namespace flippR_driver { diff --git a/FlippR-Driver/src/utility/InputGPIOInterface.h b/FlippR-Driver/src/input/InputGPIOInterface.h similarity index 100% rename from FlippR-Driver/src/utility/InputGPIOInterface.h rename to FlippR-Driver/src/input/InputGPIOInterface.h diff --git a/FlippR-Driver/src/output/DisplayController.cpp b/FlippR-Driver/src/output/DisplayController.cpp index 071399d..6973cf0 100644 --- a/FlippR-Driver/src/output/DisplayController.cpp +++ b/FlippR-Driver/src/output/DisplayController.cpp @@ -6,7 +6,7 @@ */ #include "DisplayController.h" -#include "utility/IOutputGPIOInterface.h" +#include "IOutputGPIOInterface.h" #include "utility/config.h" diff --git a/FlippR-Driver/src/output/DisplayController.h b/FlippR-Driver/src/output/DisplayController.h index e96ff19..fa4d510 100644 --- a/FlippR-Driver/src/output/DisplayController.h +++ b/FlippR-Driver/src/output/DisplayController.h @@ -14,7 +14,7 @@ #include #include "items/IDisplay.h" -#include "utility/IOutputGPIOInterface.h" +#include "IOutputGPIOInterface.h" namespace flippR_driver { diff --git a/FlippR-Driver/src/utility/IOutputGPIOInterface.h b/FlippR-Driver/src/output/IOutputGPIOInterface.h similarity index 97% rename from FlippR-Driver/src/utility/IOutputGPIOInterface.h rename to FlippR-Driver/src/output/IOutputGPIOInterface.h index 00e5dd1..8cba5c9 100644 --- a/FlippR-Driver/src/utility/IOutputGPIOInterface.h +++ b/FlippR-Driver/src/output/IOutputGPIOInterface.h @@ -14,7 +14,7 @@ namespace flippR_driver { -namespace utility +namespace output { class IOutputGPIOInterface diff --git a/FlippR-Driver/src/output/OutputDriverFactory.cpp b/FlippR-Driver/src/output/OutputDriverFactory.cpp index b6441e6..c2eef98 100644 --- a/FlippR-Driver/src/output/OutputDriverFactory.cpp +++ b/FlippR-Driver/src/output/OutputDriverFactory.cpp @@ -8,6 +8,77 @@ namespace flippR_driver { namespace output { +namespace OutputDriverFactory +{ + +namespace +{ + +using namespace nlohmann; + +std::shared_ptr createOutputGPIOInterface(std::istream &output_gpio_config) +{ + json output_config; + output_gpio_config >> output_config; + + return std::make_shared( + parse_pins_driver_board(output_config.at("driver_board")), + parse_pins_sound(output_config.at("sound_board")), + parse_pins_sound(output_config.at("display_board")) + ); +} + +std::map parse_pins_driver_board(json &driver_board_config) +{ + std::map pins_driver_board; + + pins_driver_board["i2c_address"] = driver_board_config.at("i2c_address").get(); + pins_driver_board["pin_base"] = driver_board_config.at("pin_base").get(); + pins_driver_board["data"] = driver_board_config.at("data").get(); + pins_driver_board["CL"] = driver_board_config.at("CL").get(); + + json pin_select = driver_board_config.at("pin-select"); + pins_driver_board["pin-select-A"] = pin_select.at("A").get(); + pins_driver_board["pin-select-B"] = pin_select.at("B").get(); + pins_driver_board["pin-select-C"] = pin_select.at("C").get(); + + json latch_select = driver_board_config.at("latch-select"); + pins_driver_board["mux1"] = latch_select.at("mux1").get(); + pins_driver_board["mux2"] = latch_select.at("mux2").get(); + pins_driver_board["latch-select-A"] = latch_select.at("A").get(); + pins_driver_board["latch-select-B"] = latch_select.at("B").get(); + pins_driver_board["latch-select-C"] = latch_select.at("C").get(); + + return pins_driver_board; +} + +std::map parse_pins_sound(json &sound_board_config) +{ + std::map pins_sound; + + pins_sound["i2c_address"] = sound_board_config.at("i2c_address").get(); + pins_sound["pin_base"] = sound_board_config.at("pin_base").get(); + pins_sound["fire"] = sound_board_config.at("fire").get(); + + json sound_address = sound_board_config.at("sound_address"); + pins_sound["A"] = sound_address.at("A").get(); + pins_sound["B"] = sound_address.at("B").get(); + pins_sound["C"] = sound_address.at("C").get(); + pins_sound["D"] = sound_address.at("D").get(); + pins_sound["E"] = sound_address.at("E").get(); + pins_sound["F"] = sound_address.at("F").get(); + pins_sound["G"] = sound_address.at("G").get(); + + return pins_sound; +} + +std::map parse_pins_display(json &display_board_config) +{ + return std::map(); +} +} + +} } } \ No newline at end of file diff --git a/FlippR-Driver/src/output/OutputDriverFactory.h b/FlippR-Driver/src/output/OutputDriverFactory.h index 640627d..da98a15 100644 --- a/FlippR-Driver/src/output/OutputDriverFactory.h +++ b/FlippR-Driver/src/output/OutputDriverFactory.h @@ -8,16 +8,25 @@ #include #include "OutputDriver.h" +#include "OutputGPIOInterface.h" namespace flippR_driver { namespace output { -class OutputDriverFactory +namespace OutputDriverFactory { -public: - static std::shared_ptr getOutputDriver(std::ifstream &output_gpio_config, std::ifstream &output_config); -}; + static std::shared_ptr getOutputDriver(std::istream &output_gpio_config, std::istream &output_config); + + namespace + { + static std::shared_ptr createOutputGPIOInterface(std::istream &output_gpio_config); + + static std::map parse_pins_driver_board(nlohmann::json &driver_board_config); + static std::map parse_pins_sound(nlohmann::json &sound_board_config); + static std::map parse_pins_display(nlohmann::json &display_board_config); + } +} } } diff --git a/FlippR-Driver/src/utility/OutputGPIOInterface.cpp b/FlippR-Driver/src/output/OutputGPIOInterface.cpp similarity index 57% rename from FlippR-Driver/src/utility/OutputGPIOInterface.cpp rename to FlippR-Driver/src/output/OutputGPIOInterface.cpp index 3e5c90c..620476f 100644 --- a/FlippR-Driver/src/utility/OutputGPIOInterface.cpp +++ b/FlippR-Driver/src/output/OutputGPIOInterface.cpp @@ -9,71 +9,19 @@ namespace flippR_driver { -namespace utility +namespace output { using namespace output::items; using namespace nlohmann; -OutputGPIOInterface::OutputGPIOInterface(std::istream &output_config_stream) +OutputGPIOInterface::OutputGPIOInterface(std::map pins_driver_board, std::map pins_sound, std::map pins_display) + : pins_driver_board(pins_driver_board), pins_sound(pins_sound), pins_display(pins_display) { - json output_config; - output_config_stream >> output_config; - - parse_output_config(output_config); - initialize_i2c_addresses(); initialize_pins(); } -void OutputGPIOInterface::parse_output_config(json &output_config) -{ - parse_pins_driver_board(output_config.at("driver_board")); - parse_pins_sound(output_config.at("sound_board")); - parse_pins_sound(output_config.at("display_board")); -} - -void OutputGPIOInterface::parse_pins_driver_board(json &driver_board_config) -{ - this->pins_driver_board["i2c_address"] = driver_board_config.at("i2c_address").get(); - this->pins_driver_board["pin_base"] = driver_board_config.at("pin_base").get(); - this->pins_driver_board["data"] = driver_board_config.at("data").get(); - this->pins_driver_board["CL"] = driver_board_config.at("CL").get(); - - json pin_select = driver_board_config.at("pin-select"); - this->pins_driver_board["pin-select-A"] = pin_select.at("A").get(); - this->pins_driver_board["pin-select-B"] = pin_select.at("B").get(); - this->pins_driver_board["pin-select-C"] = pin_select.at("C").get(); - - json latch_select = driver_board_config.at("latch-select"); - this->pins_driver_board["mux1"] = latch_select.at("mux1").get(); - this->pins_driver_board["mux2"] = latch_select.at("mux2").get(); - this->pins_driver_board["latch-select-A"] = latch_select.at("A").get(); - this->pins_driver_board["latch-select-B"] = latch_select.at("B").get(); - this->pins_driver_board["latch-select-C"] = latch_select.at("C").get(); -} - -void OutputGPIOInterface::parse_pins_sound(json &sound_board_config) -{ - this->pins_sound["i2c_address"] = sound_board_config.at("i2c_address").get(); - this->pins_sound["pin_base"] = sound_board_config.at("pin_base").get(); - this->pins_sound["fire"] = sound_board_config.at("fire").get(); - - json sound_address = sound_board_config.at("sound_address"); - this->pins_sound["A"] = sound_address.at("A").get(); - this->pins_sound["B"] = sound_address.at("B").get(); - this->pins_sound["C"] = sound_address.at("C").get(); - this->pins_sound["D"] = sound_address.at("D").get(); - this->pins_sound["E"] = sound_address.at("E").get(); - this->pins_sound["F"] = sound_address.at("F").get(); - this->pins_sound["G"] = sound_address.at("G").get(); -} - -void OutputGPIOInterface::parse_pins_display(json &display_board_config) -{ - -} - void OutputGPIOInterface::initialize_pins() { // Since this are all outputs we just initialize everything as output conveniently diff --git a/FlippR-Driver/src/utility/OutputGPIOInterface.h b/FlippR-Driver/src/output/OutputGPIOInterface.h similarity index 85% rename from FlippR-Driver/src/utility/OutputGPIOInterface.h rename to FlippR-Driver/src/output/OutputGPIOInterface.h index 3522b3b..15dfa73 100644 --- a/FlippR-Driver/src/utility/OutputGPIOInterface.h +++ b/FlippR-Driver/src/output/OutputGPIOInterface.h @@ -20,14 +20,14 @@ #include namespace flippR_driver { -namespace utility +namespace output { class OutputGPIOInterface : public GPIOInterface, IOutputGPIOInterface { public: - OutputGPIOInterface(std::istream &output_config_stream); + OutputGPIOInterface(std::map pins_driver_board, std::map pins_sound, std::map pins_display); virtual ~OutputGPIOInterface() = default; @@ -40,11 +40,6 @@ public: virtual void write_display(output::items::IDisplay *display); private: - void parse_output_config(nlohmann::json &output_config); - void parse_pins_driver_board(nlohmann::json &driver_board_config); - void parse_pins_sound(nlohmann::json &sound_board_config); - void parse_pins_display(nlohmann::json &display_board_config); - void initialize_i2c_addresses(); void initialize_pins(); diff --git a/FlippR-Driver/src/output/items/Item.h b/FlippR-Driver/src/output/items/Item.h index 05d0a1e..2ed1b04 100644 --- a/FlippR-Driver/src/output/items/Item.h +++ b/FlippR-Driver/src/output/items/Item.h @@ -10,7 +10,7 @@ #include "IItem.h" -#include "utility/IOutputGPIOInterface.h" +#include "output/IOutputGPIOInterface.h" #include #include diff --git a/FlippR-Driver/src/utility/DisplayGPIOInterface.cpp b/FlippR-Driver/src/utility/DisplayGPIOInterface.cpp deleted file mode 100644 index 8ea2aec..0000000 --- a/FlippR-Driver/src/utility/DisplayGPIOInterface.cpp +++ /dev/null @@ -1,27 +0,0 @@ -/* - * DisplayGPIOInterface.cpp - * - * Created on: Nov 9, 2018 - * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert - */ - -#include "DisplayGPIOInterface.h" -namespace flippR_driver -{ -namespace utility -{ - -DisplayGPIOInterface::DisplayGPIOInterface() -{ - // TODO Auto-generated constructor stub - -} - -DisplayGPIOInterface::~DisplayGPIOInterface() -{ - // TODO Auto-generated destructor stub -} - -} -} - diff --git a/FlippR-Driver/src/utility/DisplayGPIOInterface.h b/FlippR-Driver/src/utility/DisplayGPIOInterface.h deleted file mode 100644 index d7849e3..0000000 --- a/FlippR-Driver/src/utility/DisplayGPIOInterface.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * DisplayGPIOInterface.h - * - * Created on: Nov 9, 2018 - * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert - */ - -#ifndef SRC_UTILITY_DISPLAYGPIOINTERFACE_H_ -#define SRC_UTILITY_DISPLAYGPIOINTERFACE_H_ - -namespace flippR_driver -{ -namespace utility -{ - -class DisplayGPIOInterface -{ -public: - DisplayGPIOInterface(); - virtual - ~DisplayGPIOInterface(); -}; - -} -} - -#endif /* SRC_UTILITY_DISPLAYGPIOINTERFACE_H_ */