From 6cd1b2116295736274c3ef8d61b1587b058334ab Mon Sep 17 00:00:00 2001 From: Jonas Zeunert Date: Wed, 21 Nov 2018 00:08:59 +0100 Subject: [PATCH] added some tasks --- .../src/output/output_items/Lamp.cpp | 15 ++++------ .../src/output/output_items/OutputItem.h | 3 ++ .../src/output/output_items/Solenoid.cpp | 28 ++++++------------- .../src/output/output_items/Solenoid.h | 10 +------ .../src/output/output_items/Sound.cpp | 15 ++++++++-- FlippR-Driver/src/output/output_items/Sound.h | 1 + 6 files changed, 32 insertions(+), 40 deletions(-) diff --git a/FlippR-Driver/src/output/output_items/Lamp.cpp b/FlippR-Driver/src/output/output_items/Lamp.cpp index 4853259..f36c88c 100644 --- a/FlippR-Driver/src/output/output_items/Lamp.cpp +++ b/FlippR-Driver/src/output/output_items/Lamp.cpp @@ -15,25 +15,22 @@ namespace output 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 - -} +{} Lamp::~Lamp() -{ - // TODO Auto-generated destructor stub -} +{} void Lamp::activate() { -// activate + OutputItem::activate(); } + void Lamp::deactivate() { -// deactivate + OutputItem::deactivate(); } + } /* namespace output */ } diff --git a/FlippR-Driver/src/output/output_items/OutputItem.h b/FlippR-Driver/src/output/output_items/OutputItem.h index b15e4a4..4f53131 100644 --- a/FlippR-Driver/src/output/output_items/OutputItem.h +++ b/FlippR-Driver/src/output/output_items/OutputItem.h @@ -31,6 +31,9 @@ protected: std::string name; std::shared_ptr output_gpio_interface; + + void activate(); + void deactivate(); }; } /* namespace output */ diff --git a/FlippR-Driver/src/output/output_items/Solenoid.cpp b/FlippR-Driver/src/output/output_items/Solenoid.cpp index 049fe7e..e65342c 100644 --- a/FlippR-Driver/src/output/output_items/Solenoid.cpp +++ b/FlippR-Driver/src/output/output_items/Solenoid.cpp @@ -24,27 +24,17 @@ Solenoid::~Solenoid() // TODO Auto-generated destructor stub } +void Solenoid::triggerTask() +{ + OutputItem::activate(); + + std::this_thread::sleep_for(50 /*todo change magic number */); + + OutputItem::deactivate(); +} void Solenoid::trigger() { - this->activate(); - this->wait_thread = std::async(this->deactivate_after_wait); -} - -void Solenoid::activate() -{ - -} - -void Solenoid::deactivate_after_wait() -{ - this->std::this_thread::sleep_for(deactivation_time); - this->deactivate(); - -} - -void Solenoid::deactivate() -{ - + std::async(std::launch::async, &Solenoid::triggerTask); } } /* namespace output */ diff --git a/FlippR-Driver/src/output/output_items/Solenoid.h b/FlippR-Driver/src/output/output_items/Solenoid.h index c09cbb5..3e1790d 100644 --- a/FlippR-Driver/src/output/output_items/Solenoid.h +++ b/FlippR-Driver/src/output/output_items/Solenoid.h @@ -26,18 +26,10 @@ public: 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 void trigger(); private: - std::future wait_thread; - std::chrono::milliseconds deactivation_time; - - void activate(); - void deactivate(); - - void deactivate_after_wait(); -}; + virtual void triggerTask(); } /* namespace output */ } diff --git a/FlippR-Driver/src/output/output_items/Sound.cpp b/FlippR-Driver/src/output/output_items/Sound.cpp index 366ea72..9855bea 100644 --- a/FlippR-Driver/src/output/output_items/Sound.cpp +++ b/FlippR-Driver/src/output/output_items/Sound.cpp @@ -7,6 +7,8 @@ #include "Sound.h" +#include + namespace flippR_driver { namespace output @@ -18,9 +20,16 @@ Sound::Sound(std::shared_ptr output_gpio_interfac void Sound::play() { -// this->output_gpio_interface->activate(this); -// wait -// deactivate() + std::async(std::launch::async, &Sound::playTask); +} + +void Sound::playTask() +{ + OutputItem::activate(); + + std::this_thread::sleep_for(50 /*todo change magic number */); + + OutputItem::deactivate(); } } /* namespace output */ diff --git a/FlippR-Driver/src/output/output_items/Sound.h b/FlippR-Driver/src/output/output_items/Sound.h index 1138d46..ec32535 100644 --- a/FlippR-Driver/src/output/output_items/Sound.h +++ b/FlippR-Driver/src/output/output_items/Sound.h @@ -29,6 +29,7 @@ public: virtual void play(); private: + virtual void playTask(); }; } /* namespace output */