From 20774b5b1f445190352c98f895d2037723c9fddc Mon Sep 17 00:00:00 2001 From: Jonas Zeunert Date: Tue, 11 Dec 2018 12:30:27 +0100 Subject: [PATCH] hmmm dunno if this is better --- .../src/output/IOutputGPIOInterface.h | 13 +++++---- .../src/output/OutputDriverFactory.cpp | 2 +- .../src/output/OutputDriverFactory.h | 3 +- .../src/output/OutputGPIOInterface.cpp | 9 +++--- .../src/output/OutputGPIOInterface.h | 9 +++--- .../{IDriverBoardItem.h => DriverBoardItem.h} | 10 +++++-- FlippR-Driver/src/output/items/ISoundItem.h | 26 ----------------- FlippR-Driver/src/output/items/Item.cpp | 1 + FlippR-Driver/src/output/items/Item.h | 5 ++-- FlippR-Driver/src/output/items/Lamp.cpp | 7 ++--- FlippR-Driver/src/output/items/Lamp.h | 4 +-- FlippR-Driver/src/output/items/Solenoid.cpp | 5 ++-- FlippR-Driver/src/output/items/Solenoid.h | 4 +-- FlippR-Driver/src/output/items/Sound.cpp | 6 ++-- FlippR-Driver/src/output/items/Sound.h | 10 ++----- FlippR-Driver/src/output/items/SoundItem.h | 29 +++++++++++++++++++ 16 files changed, 73 insertions(+), 70 deletions(-) rename FlippR-Driver/src/output/items/{IDriverBoardItem.h => DriverBoardItem.h} (50%) delete mode 100644 FlippR-Driver/src/output/items/ISoundItem.h create mode 100644 FlippR-Driver/src/output/items/SoundItem.h diff --git a/FlippR-Driver/src/output/IOutputGPIOInterface.h b/FlippR-Driver/src/output/IOutputGPIOInterface.h index 586eb6d..5861818 100644 --- a/FlippR-Driver/src/output/IOutputGPIOInterface.h +++ b/FlippR-Driver/src/output/IOutputGPIOInterface.h @@ -7,9 +7,10 @@ #include "IOutputGPIOInterface.h" -#include "output/items/IItem.h" -#include "output/items/ISoundItem.h" +#include "output/items/DriverBoardItem.h" +#include "output/items/SoundItem.h" #include "output/items/IDisplay.h" + #include namespace flippR_driver @@ -22,11 +23,11 @@ class IOutputGPIOInterface public: virtual ~IOutputGPIOInterface() = default; - virtual void activate(items::IItem *driver_board_item) = 0; - virtual void activate(items::ISoundItem *sound) = 0; + virtual void activate(items::DriverBoardItem *driver_board_item) = 0; + virtual void activate(items::SoundItem *sound) = 0; - virtual void deactivate(items::IItem *driver_board_item) = 0; - virtual void deactivate(items::ISoundItem *sound) = 0; + virtual void deactivate(items::DriverBoardItem *driver_board_item) = 0; + virtual void deactivate(items::SoundItem *sound) = 0; virtual void write_display(std::shared_ptr display) = 0; //Display gpio interface! diff --git a/FlippR-Driver/src/output/OutputDriverFactory.cpp b/FlippR-Driver/src/output/OutputDriverFactory.cpp index 9e04699..e0d8eca 100644 --- a/FlippR-Driver/src/output/OutputDriverFactory.cpp +++ b/FlippR-Driver/src/output/OutputDriverFactory.cpp @@ -5,7 +5,7 @@ #include "OutputDriverFactory.h" #include "OutputDriver.h" - +#include "OutputGPIOInterface.h" namespace flippR_driver { diff --git a/FlippR-Driver/src/output/OutputDriverFactory.h b/FlippR-Driver/src/output/OutputDriverFactory.h index d435323..e6f3d07 100644 --- a/FlippR-Driver/src/output/OutputDriverFactory.h +++ b/FlippR-Driver/src/output/OutputDriverFactory.h @@ -9,8 +9,9 @@ #include "output/items/Solenoid.h" #include "output/items/Lamp.h" #include "output/items/Sound.h" -#include "OutputGPIOInterface.h" +#include "IOutputGPIOInterface.h" +#include "json/json.hpp" #include namespace flippR_driver diff --git a/FlippR-Driver/src/output/OutputGPIOInterface.cpp b/FlippR-Driver/src/output/OutputGPIOInterface.cpp index 77d4fc3..71e1c0c 100644 --- a/FlippR-Driver/src/output/OutputGPIOInterface.cpp +++ b/FlippR-Driver/src/output/OutputGPIOInterface.cpp @@ -12,7 +12,6 @@ namespace flippR_driver namespace output { using namespace output::items; -using namespace nlohmann; OutputGPIOInterface::OutputGPIOInterface(std::map pins_driver_board, std::map pins_sound, std::map pins_display) : pins_driver_board(std::move(pins_driver_board)), pins_sound(std::move(pins_sound)), pins_display(std::move(pins_display)) @@ -45,7 +44,7 @@ void OutputGPIOInterface::initialize_i2c_addresses() mcp23017Setup(pins_display.at("pin_base"), pins_display.at("i2c_address")); } -void OutputGPIOInterface::activate(output::items::ISoundItem *sound) +void OutputGPIOInterface::activate(items::SoundItem *sound) { std::lock_guard guard(output_item_mutex); @@ -54,7 +53,7 @@ void OutputGPIOInterface::activate(output::items::ISoundItem *sound) fire_sound(true); } -void OutputGPIOInterface::activate(output::items::IItem *driver_board_item) +void OutputGPIOInterface::activate(items::DriverBoardItem *driver_board_item) { std::lock_guard guard(output_item_mutex); @@ -63,7 +62,7 @@ void OutputGPIOInterface::activate(output::items::IItem *driver_board_item) write_data(true); } -void OutputGPIOInterface::deactivate(output::items::IItem *driver_board_item) +void OutputGPIOInterface::deactivate(items::DriverBoardItem *driver_board_item) { std::lock_guard guard(output_item_mutex); @@ -72,7 +71,7 @@ void OutputGPIOInterface::deactivate(output::items::IItem *driver_board_item) write_data(false); } -void OutputGPIOInterface::deactivate(output::items::ISoundItem *sound) +void OutputGPIOInterface::deactivate(items::SoundItem *sound) { std::lock_guard guard(output_item_mutex); diff --git a/FlippR-Driver/src/output/OutputGPIOInterface.h b/FlippR-Driver/src/output/OutputGPIOInterface.h index 2009ea5..b0d8f42 100644 --- a/FlippR-Driver/src/output/OutputGPIOInterface.h +++ b/FlippR-Driver/src/output/OutputGPIOInterface.h @@ -13,7 +13,6 @@ #include "output/items/IItem.h" -#include "json/json.hpp" #include #include @@ -32,11 +31,11 @@ public: ~OutputGPIOInterface() override = default; - void activate(items::IItem *driver_board_item) override; - void activate(items::ISoundItem *sound) override; + void activate(items::DriverBoardItem *driver_board_item) override; + void activate(items::SoundItem *sound) override; - void deactivate(items::IItem *driver_board_item) override; - void deactivate(items::ISoundItem *sound) override; + void deactivate(items::DriverBoardItem *driver_board_item) override; + void deactivate(items::SoundItem *sound) override; void write_display(std::shared_ptr display) override; diff --git a/FlippR-Driver/src/output/items/IDriverBoardItem.h b/FlippR-Driver/src/output/items/DriverBoardItem.h similarity index 50% rename from FlippR-Driver/src/output/items/IDriverBoardItem.h rename to FlippR-Driver/src/output/items/DriverBoardItem.h index c7d6e85..de96783 100644 --- a/FlippR-Driver/src/output/items/IDriverBoardItem.h +++ b/FlippR-Driver/src/output/items/DriverBoardItem.h @@ -5,7 +5,7 @@ #ifndef FLIPPR_DRIVER_IDRIVERBOARDITEM_H #define FLIPPR_DRIVER_IDRIVERBOARDITEM_H -#include "output/items/IItem.h" +#include "output/items/Item.h" #include @@ -16,10 +16,14 @@ namespace output namespace items { -class IDriverBoardItem : public IItem +class DriverBoardItem : public Item { public: - ~IDriverBoardItem() override = default; + DriverBoardItem(std::shared_ptr output_gpio_interface, uint8_t address, std::string name) : + Item(output_gpio_interface, address, name) {} + ~DriverBoardItem() override = default; + + }; } diff --git a/FlippR-Driver/src/output/items/ISoundItem.h b/FlippR-Driver/src/output/items/ISoundItem.h deleted file mode 100644 index 84feaff..0000000 --- a/FlippR-Driver/src/output/items/ISoundItem.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// Created by rhetenor on 23.11.18. -// - -#ifndef FLIPPR_DRIVER_ISOUNDITEM_H -#define FLIPPR_DRIVER_ISOUNDITEM_H - -#include "IItem.h" -namespace flippR_driver -{ -namespace output -{ -namespace items -{ - -class ISoundItem : public IItem -{ -public: - ~ISoundItem() override = default; -}; - -} -} -} - -#endif //FLIPPR_DRIVER_ISOUNDITEM_H diff --git a/FlippR-Driver/src/output/items/Item.cpp b/FlippR-Driver/src/output/items/Item.cpp index 62803de..eb171ca 100644 --- a/FlippR-Driver/src/output/items/Item.cpp +++ b/FlippR-Driver/src/output/items/Item.cpp @@ -4,6 +4,7 @@ #include "Item.h" + namespace flippR_driver { namespace output diff --git a/FlippR-Driver/src/output/items/Item.h b/FlippR-Driver/src/output/items/Item.h index 584be89..ccfac8a 100644 --- a/FlippR-Driver/src/output/items/Item.h +++ b/FlippR-Driver/src/output/items/Item.h @@ -10,8 +10,6 @@ #include "output/items/IItem.h" -#include "output/IOutputGPIOInterface.h" - #include #include @@ -19,6 +17,9 @@ namespace flippR_driver { namespace output { + +class IOutputGPIOInterface; + namespace items { diff --git a/FlippR-Driver/src/output/items/Lamp.cpp b/FlippR-Driver/src/output/items/Lamp.cpp index 64cbcf0..91e4389 100644 --- a/FlippR-Driver/src/output/items/Lamp.cpp +++ b/FlippR-Driver/src/output/items/Lamp.cpp @@ -7,6 +7,7 @@ #include "Lamp.h" +#include "output/IOutputGPIOInterface.h" namespace flippR_driver { namespace output @@ -14,10 +15,8 @@ namespace output namespace items { -Lamp::Lamp(std::shared_ptr output_gpio_interface, uint8_t address, std::string name) -: -Item(std::move(output_gpio_interface), address, std::move(name)), -activated(false) +Lamp::Lamp(std::shared_ptr output_gpio_interface, uint8_t address, std::string name) : +DriverBoardItem(std::move(output_gpio_interface), address, std::move(name)), activated(false) {} void Lamp::activate() diff --git a/FlippR-Driver/src/output/items/Lamp.h b/FlippR-Driver/src/output/items/Lamp.h index 179b3ca..854a6a1 100644 --- a/FlippR-Driver/src/output/items/Lamp.h +++ b/FlippR-Driver/src/output/items/Lamp.h @@ -8,8 +8,8 @@ #ifndef _SRC_OUTPUT_LAMP_H_ #define _SRC_OUTPUT_LAMP_H_ -#include "Item.h" #include "output/items/ILamp.h" +#include "DriverBoardItem.h" namespace flippR_driver { @@ -18,7 +18,7 @@ namespace output namespace items { -class Lamp : public Item, public ILamp +class Lamp : public DriverBoardItem, public ILamp { public: Lamp(std::shared_ptr output_gpio_interface, uint8_t address, std::string name); diff --git a/FlippR-Driver/src/output/items/Solenoid.cpp b/FlippR-Driver/src/output/items/Solenoid.cpp index daeb3ac..32585c5 100644 --- a/FlippR-Driver/src/output/items/Solenoid.cpp +++ b/FlippR-Driver/src/output/items/Solenoid.cpp @@ -7,6 +7,8 @@ #include "Solenoid.h" +#include "output/IOutputGPIOInterface.h" + namespace flippR_driver { namespace output @@ -15,8 +17,7 @@ namespace items { Solenoid::Solenoid(std::shared_ptr output_gpio_interface, uint8_t address, std::string name, std::chrono::milliseconds deactivation_time): - Item(std::move(output_gpio_interface), address, std::move(name)), - deactivation_time(deactivation_time) + DriverBoardItem(std::move(output_gpio_interface), address, std::move(name)), deactivation_time(deactivation_time) {} void Solenoid::triggerTask() diff --git a/FlippR-Driver/src/output/items/Solenoid.h b/FlippR-Driver/src/output/items/Solenoid.h index a6688d0..d0ff6ec 100644 --- a/FlippR-Driver/src/output/items/Solenoid.h +++ b/FlippR-Driver/src/output/items/Solenoid.h @@ -9,7 +9,7 @@ #define _SRC_OUTPUT_SOLENOID_H_ #include "output/items/ISolenoid.h" -#include "Item.h" +#include "DriverBoardItem.h" #include #include @@ -21,7 +21,7 @@ namespace output namespace items { -class Solenoid : public Item, public ISolenoid +class Solenoid : public DriverBoardItem, public ISolenoid { public: Solenoid(std::shared_ptr output_gpio_interface, u_int8_t address, std::string name, std::chrono::milliseconds deactivation_time); diff --git a/FlippR-Driver/src/output/items/Sound.cpp b/FlippR-Driver/src/output/items/Sound.cpp index a5e7fdc..a29bdcf 100644 --- a/FlippR-Driver/src/output/items/Sound.cpp +++ b/FlippR-Driver/src/output/items/Sound.cpp @@ -7,6 +7,8 @@ #include "Sound.h" +#include "output/IOutputGPIOInterface.h" + namespace flippR_driver { namespace output @@ -15,9 +17,7 @@ namespace items { Sound::Sound(std::shared_ptr output_gpio_interface, uint8_t address, std::string name, std::chrono::milliseconds deactivation_time, u_int id) : - Item(std::move(output_gpio_interface), address, std::move(name)), - deactivation_time(deactivation_time), - id(id) + SoundItem(std::move(output_gpio_interface), address, std::move(name)), deactivation_time(deactivation_time), id(id) {} void Sound::play() diff --git a/FlippR-Driver/src/output/items/Sound.h b/FlippR-Driver/src/output/items/Sound.h index c614ab9..115b7ff 100644 --- a/FlippR-Driver/src/output/items/Sound.h +++ b/FlippR-Driver/src/output/items/Sound.h @@ -9,16 +9,13 @@ #define _SRC_OUTPUT_SOUND_H_ #include "output/items/ISound.h" -#include "output/items/ISoundItem.h" - -#include "Item.h" +#include "output/items/SoundItem.h" #include #include #include #include - namespace flippR_driver { namespace output @@ -26,7 +23,7 @@ namespace output namespace items { -class Sound : public ISound, public Item, public ISoundItem +class Sound : public SoundItem, public ISound { public: u_int id; @@ -35,9 +32,6 @@ public: Sound(std::shared_ptr output_gpio_interface, uint8_t address, std::string name, std::chrono::milliseconds deactivation_time, u_int id); ~Sound() override = default; - std::string get_name() override; - uint8_t get_address() override; - void play() override; private: diff --git a/FlippR-Driver/src/output/items/SoundItem.h b/FlippR-Driver/src/output/items/SoundItem.h new file mode 100644 index 0000000..48c1a21 --- /dev/null +++ b/FlippR-Driver/src/output/items/SoundItem.h @@ -0,0 +1,29 @@ +// +// Created by rhetenor on 23.11.18. +// + +#ifndef FLIPPR_DRIVER_ISOUNDITEM_H +#define FLIPPR_DRIVER_ISOUNDITEM_H + +#include "Item.h" + +namespace flippR_driver +{ +namespace output +{ +namespace items +{ + +class SoundItem : public Item +{ +public: + SoundItem(std::shared_ptr output_gpio_interface, uint8_t address, std::string name) : + Item(output_gpio_interface, address, name) {} + ~SoundItem() override = default; +}; + +} +} +} + +#endif //FLIPPR_DRIVER_ISOUNDITEM_H