resolved some todos

This commit is contained in:
Johannes Wendel
2019-10-29 14:27:13 +01:00
parent e5c8e6affc
commit 09469b3de9
6 changed files with 19 additions and 8 deletions

View File

@@ -35,7 +35,7 @@ public:
std::map<std::string, std::shared_ptr<items::Lamp>> lamps, std::map<std::string, std::shared_ptr<items::Sound>> sounds, std::map<std::string, std::shared_ptr<items::Lamp>> lamps, std::map<std::string, std::shared_ptr<items::Sound>> sounds,
std::map<std::string, std::shared_ptr<items::Flipper>> flippers, std::map<uint8_t, std::shared_ptr<output::items::Display>> displays); std::map<std::string, std::shared_ptr<items::Flipper>> flippers, std::map<uint8_t, std::shared_ptr<output::items::Display>> displays);
~OutputDriver() = default;//TODO aufräumen ~OutputDriver() = default;
void activate_displays() const; void activate_displays() const;
void deactivate_displays() const; void deactivate_displays() const;

View File

@@ -8,8 +8,6 @@
#ifndef FLIPPR_DRIVER_OUTPUT_ITEMS_DISPLAY_H_ #ifndef FLIPPR_DRIVER_OUTPUT_ITEMS_DISPLAY_H_
#define FLIPPR_DRIVER_OUTPUT_ITEMS_DISPLAY_H_ #define FLIPPR_DRIVER_OUTPUT_ITEMS_DISPLAY_H_
#include <iosfwd> // todo wtf?
namespace flippR_driver namespace flippR_driver
{ {
namespace output namespace output

View File

@@ -10,6 +10,8 @@
#include "Item.h" #include "Item.h"
#include <chrono>
namespace flippR_driver namespace flippR_driver
{ {
namespace output namespace output
@@ -25,6 +27,7 @@ public:
virtual void activate() = 0; virtual void activate() = 0;
virtual void deactivate() = 0; virtual void deactivate() = 0;
virtual bool is_activated() = 0; virtual bool is_activated() = 0;
virtual std::chrono::milliseconds get_activation_time() const = 0;
}; };
} }

View File

@@ -56,12 +56,11 @@ void OutputDriver::activate_all_lamps() const
void OutputDriver::rotate_all_lamps() const void OutputDriver::rotate_all_lamps() const
{ {
for(const auto & lamp : lamps) for(const auto & lamp : this->lamps)
{ {
lamp.second->activate(); lamp.second->activate();
// ToDo sleep time + is this thread safe?? // ToDo is this thread safe??
// TODO: time should be parameter std::this_thread::sleep_for(lamp.second->get_activation_time());
std::this_thread::sleep_for(std::chrono::milliseconds(10));
lamp.second->deactivate(); lamp.second->deactivate();
} }
} }

View File

@@ -20,7 +20,11 @@ namespace detail
{ {
Lamp::Lamp(std::shared_ptr<DriverBoardPinController> pin_controller, const uint8_t & address, const uint8_t & pin_base, const std::string & name) : Lamp::Lamp(std::shared_ptr<DriverBoardPinController> pin_controller, const uint8_t & address, const uint8_t & pin_base, const std::string & name) :
detail::Item(std::move(name)), DriverBoardItem(pin_controller, address, pin_base), pin_controller(std::move(pin_controller)), activated(false) detail::Item(std::move(name)),
DriverBoardItem(pin_controller, address, pin_base),
pin_controller(std::move(pin_controller)),
activated(false),
activation_time(10)
{ {
CLOG(INFO, OUTPUT_LOGGER) << "Created lamp " << name << " with address " << address; CLOG(INFO, OUTPUT_LOGGER) << "Created lamp " << name << " with address " << address;
} }
@@ -44,6 +48,11 @@ bool Lamp::is_activated()
return this->activated; return this->activated;
} }
std::chrono::milliseconds Lamp::get_activation_time() const
{
return this->activation_time;
}
} }
} }
} /* namespace output */ } /* namespace output */

View File

@@ -33,10 +33,12 @@ public:
void activate() override; void activate() override;
void deactivate() override; void deactivate() override;
bool is_activated() override; bool is_activated() override;
std::chrono::milliseconds get_activation_time() const override;
private: private:
const std::shared_ptr<DriverBoardPinController> pin_controller; const std::shared_ptr<DriverBoardPinController> pin_controller;
bool activated; bool activated;
std::chrono::milliseconds activation_time;
}; };
} }