From d1817c63f6649e3b6f0f69ff3533a083e6d4b2f7 Mon Sep 17 00:00:00 2001 From: Johannes Wendel Date: Tue, 20 Nov 2018 22:35:21 +0100 Subject: [PATCH] changed display stuff --- FlippR-Driver/src/output/IDisplay.h | 4 +--- FlippR-Driver/src/output/Lamp.cpp | 4 ++-- FlippR-Driver/src/output/Lamp.h | 5 +++-- FlippR-Driver/src/output/OutputItem.h | 4 ++-- FlippR-Driver/src/output/Solenoid.cpp | 16 +++++++++++----- FlippR-Driver/src/output/Solenoid.h | 7 +++++-- FlippR-Driver/src/output/Sound.cpp | 4 ++-- FlippR-Driver/src/output/Sound.h | 8 ++------ 8 files changed, 28 insertions(+), 24 deletions(-) diff --git a/FlippR-Driver/src/output/IDisplay.h b/FlippR-Driver/src/output/IDisplay.h index 1da90d7..0d09f1e 100644 --- a/FlippR-Driver/src/output/IDisplay.h +++ b/FlippR-Driver/src/output/IDisplay.h @@ -14,6 +14,7 @@ namespace flippR_driver { namespace output { + class IDisplay { @@ -21,9 +22,6 @@ public: IDisplay(); virtual ~IDisplay(); - virtual void write_score(int score) = 0; - virtual void write_content(std::array content) = 0; - virtual int getID() = 0; private: diff --git a/FlippR-Driver/src/output/Lamp.cpp b/FlippR-Driver/src/output/Lamp.cpp index 7358cea..4853259 100644 --- a/FlippR-Driver/src/output/Lamp.cpp +++ b/FlippR-Driver/src/output/Lamp.cpp @@ -12,8 +12,8 @@ namespace flippR_driver namespace output { -Lamp::Lamp(std::shared_ptr output_gpio_interface, int address, std::string name, bool activated) : - OutputItem(output_gpio_interface, address, name), +Lamp::Lamp(std::shared_ptr output_gpio_interface, int i2c_address, int data_pin, std::string name, bool activated) : + OutputItem(output_gpio_interface, i2c_address, data_pin, name), activated(activated) { // TODO Auto-generated constructor stub diff --git a/FlippR-Driver/src/output/Lamp.h b/FlippR-Driver/src/output/Lamp.h index 0633e30..a9f5b99 100644 --- a/FlippR-Driver/src/output/Lamp.h +++ b/FlippR-Driver/src/output/Lamp.h @@ -9,16 +9,17 @@ #define _SRC_OUTPUT_LAMP_H_ #include "OutputItem.h" +#include "ILamp.h" namespace flippR_driver { namespace output { -class Lamp : public OutputItem +class Lamp : public OutputItem, ILamp { public: - Lamp(std::shared_ptr output_gpio_interface, int address, std::string name, bool activated = false); + Lamp(std::shared_ptr output_gpio_interface, int i2c_address, int data_pin, std::string name, bool activated = false); virtual ~Lamp(); void activate(); diff --git a/FlippR-Driver/src/output/OutputItem.h b/FlippR-Driver/src/output/OutputItem.h index 575e7fd..b15e4a4 100644 --- a/FlippR-Driver/src/output/OutputItem.h +++ b/FlippR-Driver/src/output/OutputItem.h @@ -23,11 +23,11 @@ namespace output class OutputItem : public IOutputItem { public: - OutputItem(std::shared_ptr output_gpio_interface, int address, std::string name); + OutputItem(std::shared_ptr output_gpio_interface, int i2c_address, int data_pin_address, std::string name); virtual ~OutputItem(); protected: - int address, i2c_address, data_pin_address; + int i2c_address, data_pin_address; std::string name; std::shared_ptr output_gpio_interface; diff --git a/FlippR-Driver/src/output/Solenoid.cpp b/FlippR-Driver/src/output/Solenoid.cpp index 8a7b72d..049fe7e 100644 --- a/FlippR-Driver/src/output/Solenoid.cpp +++ b/FlippR-Driver/src/output/Solenoid.cpp @@ -11,8 +11,8 @@ namespace flippR_driver { namespace output { -Solenoid::Solenoid(std::shared_ptr output_gpio_interface, int address, std::string name, std::chrono::milliseconds deactivation_time) : - OutputItem(output_gpio_interface, address, name), +Solenoid::Solenoid(std::shared_ptr output_gpio_interface, int i2c_address, int data_pin, std::string name, std::chrono::milliseconds deactivation_time) : + OutputItem(output_gpio_interface, i2c_address, data_pin, name), deactivation_time(deactivation_time) { // TODO Auto-generated constructor stub @@ -26,9 +26,8 @@ Solenoid::~Solenoid() void Solenoid::trigger() { -// activate -// wait -// deactivate + this->activate(); + this->wait_thread = std::async(this->deactivate_after_wait); } void Solenoid::activate() @@ -36,6 +35,13 @@ void Solenoid::activate() } +void Solenoid::deactivate_after_wait() +{ + this->std::this_thread::sleep_for(deactivation_time); + this->deactivate(); + +} + void Solenoid::deactivate() { diff --git a/FlippR-Driver/src/output/Solenoid.h b/FlippR-Driver/src/output/Solenoid.h index 9294e5c..1306921 100644 --- a/FlippR-Driver/src/output/Solenoid.h +++ b/FlippR-Driver/src/output/Solenoid.h @@ -9,6 +9,7 @@ #define _SRC_OUTPUT_SOLENOID_H_ #include "OutputItem.h" +#include "ISolenoid.h" #include #include @@ -19,10 +20,10 @@ namespace flippR_driver namespace output { -class Solenoid : public OutputItem +class Solenoid : public ISolenoid, OutputItem { public: - Solenoid(std::shared_ptr output_gpio_interface, int address, std::string name, std::chrono::milliseconds deactivation_time); + Solenoid(std::shared_ptr output_gpio_interface, int i2c_address, int data_pin, std::string name, std::chrono::milliseconds deactivation_time); virtual ~Solenoid(); //muss task sein @@ -34,6 +35,8 @@ private: void activate(); void deactivate(); + + void deactivate_after_wait(); }; } /* namespace output */ diff --git a/FlippR-Driver/src/output/Sound.cpp b/FlippR-Driver/src/output/Sound.cpp index 7f28239..366ea72 100644 --- a/FlippR-Driver/src/output/Sound.cpp +++ b/FlippR-Driver/src/output/Sound.cpp @@ -12,8 +12,8 @@ namespace flippR_driver namespace output { -Sound::Sound(std::shared_ptr output_gpio_interface, int address, std::string name) : - output_gpio_interface(output_gpio_interface), address(address), name(name) +Sound::Sound(std::shared_ptr output_gpio_interface, int i2c_address, int data_pin, std::string name) : + OutputItem(output_gpio_interface, i2c_address, data_pin, name) {} void Sound::play() diff --git a/FlippR-Driver/src/output/Sound.h b/FlippR-Driver/src/output/Sound.h index 2d4b35d..52cd1eb 100644 --- a/FlippR-Driver/src/output/Sound.h +++ b/FlippR-Driver/src/output/Sound.h @@ -20,19 +20,15 @@ namespace flippR_driver namespace output { -class Sound : ISound +class Sound : public ISound, OutputItem { public: - Sound(std::shared_ptr output_gpio_interface, int address, std::string name); + Sound(std::shared_ptr output_gpio_interface, int i2c_address, int data_pin, std::string name); virtual ~Sound() = default; virtual void play(); private: - std::shared_ptr output_gpio_interface; - - int address; - std::string name; }; } /* namespace output */