diff --git a/FlippR-Driver/include/output/items/ILamp.h b/FlippR-Driver/include/output/items/ILamp.h index 7bf8654..236e5f1 100644 --- a/FlippR-Driver/include/output/items/ILamp.h +++ b/FlippR-Driver/include/output/items/ILamp.h @@ -8,7 +8,7 @@ #ifndef _SRC_OUTPUT_ILAMP_H_ #define _SRC_OUTPUT_ILAMP_H_ -#include "IItem.h" +#include "output/items/IItem.h" namespace flippR_driver { namespace output @@ -16,7 +16,7 @@ namespace output namespace items { -class ILamp : public IItem +class ILamp { public: ~ILamp() diff --git a/FlippR-Driver/include/output/items/ISolenoid.h b/FlippR-Driver/include/output/items/ISolenoid.h index b4906c1..132c43a 100644 --- a/FlippR-Driver/include/output/items/ISolenoid.h +++ b/FlippR-Driver/include/output/items/ISolenoid.h @@ -8,7 +8,7 @@ #ifndef _SRC_OUTPUT_ISOLENOID_H_ #define _SRC_OUTPUT_ISOLENOID_H_ -#include "IItem.h" +#include "output/items/IItem.h" namespace flippR_driver { @@ -17,7 +17,7 @@ namespace output namespace items { -class ISolenoid : public IItem +class ISolenoid { public: ~ISolenoid() diff --git a/FlippR-Driver/include/output/items/ISound.h b/FlippR-Driver/include/output/items/ISound.h index 8e6ce39..6869c05 100644 --- a/FlippR-Driver/include/output/items/ISound.h +++ b/FlippR-Driver/include/output/items/ISound.h @@ -8,7 +8,7 @@ #ifndef _SRC_OUTPUT_ISOUND_H_ #define _SRC_OUTPUT_ISOUND_H_ -#include "IItem.h" +#include "output/items/IItem.h" namespace flippR_driver { @@ -17,7 +17,7 @@ namespace output namespace items { -class ISound : public IItem +class ISound { public: ISound(); diff --git a/FlippR-Driver/src/input/InputGPIOInterface.h b/FlippR-Driver/src/input/InputGPIOInterface.h index 1bbba79..83fc672 100644 --- a/FlippR-Driver/src/input/InputGPIOInterface.h +++ b/FlippR-Driver/src/input/InputGPIOInterface.h @@ -20,7 +20,7 @@ namespace flippR_driver namespace input { -class InputGPIOInterface : public IInputGPIOInterface, GPIOInterface +class InputGPIOInterface : public IInputGPIOInterface, public GPIOInterface { public: explicit InputGPIOInterface(std::map pins); diff --git a/FlippR-Driver/src/output/OutputDriverFactory.cpp b/FlippR-Driver/src/output/OutputDriverFactory.cpp index 82f6927..60ef788 100644 --- a/FlippR-Driver/src/output/OutputDriverFactory.cpp +++ b/FlippR-Driver/src/output/OutputDriverFactory.cpp @@ -21,7 +21,7 @@ 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) { - auto output_gpio_interface = create_OutputGPIOInterface(output_pin_config); + std::shared_ptr output_gpio_interface = std::shared_ptr(create_OutputGPIOInterface(output_pin_config)); auto solenoids = create_solenoids(solenoid_config, output_gpio_interface); auto lamps = create_lamps(lamp_config, output_gpio_interface); @@ -32,16 +32,14 @@ std::shared_ptr get_OutputDriver(std::istream &output_pin_config, return std::make_shared(solenoids, lamps, sounds, displays); } -std::shared_ptr create_OutputGPIOInterface(std::istream &output_pin_config) +IOutputGPIOInterface* create_OutputGPIOInterface(std::istream &output_pin_config) { json output_config; output_pin_config >> output_config; - return std::make_shared( - parse_pins_driver_board(output_config.at("driver_board")), + return new OutputGPIOInterface(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")) - ); + parse_pins_sound(output_config.at("display_board"))); } std::map parse_pins_driver_board(json &driver_board_config) @@ -93,7 +91,7 @@ std::map parse_pins_display(json &display_board_config) return std::map(); } -std::map> create_solenoids(std::istream &solenoid_config, std::shared_ptr output_gpio_interface) +std::map> create_solenoids(std::istream &solenoid_config, std::shared_ptr output_gpio_interface) { std::map> solenoids; @@ -105,12 +103,12 @@ std::map> create_solenoids(std::i for(auto &solenoid_json : solenoids_json) { auto solenoid = create_solenoid(solenoid_json, output_gpio_interface, deactivation_time); - solenoids.emplace(solenoid->Item::get_name(), solenoid_json); + solenoids.emplace(solenoid->get_name(), solenoid); } return solenoids; } -std::map> create_lamps(std::istream &lamp_config, std::shared_ptr output_gpio_interface) +std::map> create_lamps(std::istream &lamp_config, std::shared_ptr output_gpio_interface) { std::map> lamps; @@ -120,13 +118,13 @@ std::map> create_lamps(std::istream & for(auto &lamp_json : lamps_json) { auto lamp = create_lamp(lamp_json, output_gpio_interface); - lamps.emplace(lamp->Item::get_name(), lamp); + lamps.emplace(lamp->get_name(), lamp); } return lamps; } -std::map> create_sounds(std::istream &sound_config, std::shared_ptr output_gpio_interface) +std::map> create_sounds(std::istream &sound_config, std::shared_ptr output_gpio_interface) { std::map> sounds; @@ -138,7 +136,7 @@ std::map> create_sounds(std::istream for(auto &sound_json : sounds_json) { auto sound = create_sound(sound_json, output_gpio_interface, deactivation_time); - sounds.emplace(sound->Item::get_name(), sound); + sounds.emplace(sound->get_name(), sound); } return sounds; @@ -157,7 +155,7 @@ std::chrono::milliseconds get_deactivation_time(nlohmann::json &json) } } -std::shared_ptr create_solenoid(nlohmann::json &solenoid_json, std::shared_ptr output_gpio_interface, std::chrono::milliseconds deactivation_time) +std::shared_ptr create_solenoid(nlohmann::json &solenoid_json, std::shared_ptr output_gpio_interface, std::chrono::milliseconds deactivation_time) { try { @@ -171,7 +169,7 @@ std::shared_ptr create_solenoid(nlohmann::json &solenoid_json, } } -std::shared_ptr create_sound(nlohmann::json &sound_json, std::shared_ptr &output_gpio_interface, std::chrono::milliseconds deactivation_time) +std::shared_ptr create_sound(nlohmann::json &sound_json, std::shared_ptr &output_gpio_interface, std::chrono::milliseconds deactivation_time) { try { diff --git a/FlippR-Driver/src/output/OutputDriverFactory.h b/FlippR-Driver/src/output/OutputDriverFactory.h index 44fb6f6..d435323 100644 --- a/FlippR-Driver/src/output/OutputDriverFactory.h +++ b/FlippR-Driver/src/output/OutputDriverFactory.h @@ -23,20 +23,20 @@ namespace OutputDriverFactory namespace { - std::map> create_solenoids(std::istream &solenoid_config, std::shared_ptr output_gpio_interface); - std::shared_ptr create_solenoid(nlohmann::json &solenoid_json, std::shared_ptr output_gpio_interface, std::chrono::milliseconds deactivation_time); + std::map> create_solenoids(std::istream &solenoid_config, std::shared_ptr output_gpio_interface); + std::shared_ptr create_solenoid(nlohmann::json &solenoid_json, std::shared_ptr output_gpio_interface, std::chrono::milliseconds deactivation_time); - std::map> create_lamps(std::istream &lamp_config, std::shared_ptr output_gpio_interface); - std::shared_ptr create_lamp(nlohmann::json &lamp_json, std::shared_ptr output_gpio_interface); + std::map> create_lamps(std::istream &lamp_config, std::shared_ptr output_gpio_interface); + std::shared_ptr create_lamp(nlohmann::json &lamp_json, std::shared_ptr output_gpio_interface); - std::map> create_sounds(std::istream &sound_config, std::shared_ptr output_gpio_interface); - std::shared_ptr create_sound(nlohmann::json &sound_json, std::shared_ptr output_gpio_interface, std::chrono::milliseconds deactivation_time); + std::map> create_sounds(std::istream &sound_config, std::shared_ptr output_gpio_interface); + std::shared_ptr create_sound(nlohmann::json &sound_json, std::shared_ptr output_gpio_interface, std::chrono::milliseconds deactivation_time); std::chrono::milliseconds get_deactivation_time(nlohmann::json &json); - std::map> create_displays(std::istream &display_config, std::shared_ptr output_gpio_interface); + std::map> create_displays(std::istream &display_config, std::shared_ptr output_gpio_interface); - std::shared_ptr create_OutputGPIOInterface(std::istream &output_pin_config); + IOutputGPIOInterface* create_OutputGPIOInterface(std::istream &output_pin_config); std::map parse_pins_driver_board(nlohmann::json &driver_board_config); std::map parse_pins_sound(nlohmann::json &sound_board_config); std::map parse_pins_display(nlohmann::json &display_board_config); diff --git a/FlippR-Driver/src/output/OutputGPIOInterface.h b/FlippR-Driver/src/output/OutputGPIOInterface.h index 4f9a867..1573290 100644 --- a/FlippR-Driver/src/output/OutputGPIOInterface.h +++ b/FlippR-Driver/src/output/OutputGPIOInterface.h @@ -24,7 +24,7 @@ namespace flippR_driver namespace output { -class OutputGPIOInterface : public GPIOInterface, IOutputGPIOInterface +class OutputGPIOInterface : public GPIOInterface, public IOutputGPIOInterface { public: diff --git a/FlippR-Driver/include/output/items/IItem.h b/FlippR-Driver/src/output/items/IItem.h similarity index 100% rename from FlippR-Driver/include/output/items/IItem.h rename to FlippR-Driver/src/output/items/IItem.h diff --git a/FlippR-Driver/src/output/items/Solenoid.h b/FlippR-Driver/src/output/items/Solenoid.h index f8a3df3..a6688d0 100644 --- a/FlippR-Driver/src/output/items/Solenoid.h +++ b/FlippR-Driver/src/output/items/Solenoid.h @@ -24,7 +24,7 @@ namespace items class Solenoid : public Item, public ISolenoid { public: - Solenoid(std::shared_ptr output_gpio_interface, u_int8_t address, std::string name, std::chrono::milliseconds deactivation_time); + Solenoid(std::shared_ptr output_gpio_interface, u_int8_t address, std::string name, std::chrono::milliseconds deactivation_time); ~Solenoid() override = default; void trigger() override;