resolved some todos
This commit is contained in:
@@ -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::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 deactivate_displays() const;
|
||||
|
||||
@@ -8,8 +8,6 @@
|
||||
#ifndef FLIPPR_DRIVER_OUTPUT_ITEMS_DISPLAY_H_
|
||||
#define FLIPPR_DRIVER_OUTPUT_ITEMS_DISPLAY_H_
|
||||
|
||||
#include <iosfwd> // todo wtf?
|
||||
|
||||
namespace flippR_driver
|
||||
{
|
||||
namespace output
|
||||
|
||||
@@ -10,6 +10,8 @@
|
||||
|
||||
#include "Item.h"
|
||||
|
||||
#include <chrono>
|
||||
|
||||
namespace flippR_driver
|
||||
{
|
||||
namespace output
|
||||
@@ -25,6 +27,7 @@ public:
|
||||
virtual void activate() = 0;
|
||||
virtual void deactivate() = 0;
|
||||
virtual bool is_activated() = 0;
|
||||
virtual std::chrono::milliseconds get_activation_time() const = 0;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -56,12 +56,11 @@ void OutputDriver::activate_all_lamps() const
|
||||
|
||||
void OutputDriver::rotate_all_lamps() const
|
||||
{
|
||||
for(const auto & lamp : lamps)
|
||||
for(const auto & lamp : this->lamps)
|
||||
{
|
||||
lamp.second->activate();
|
||||
// ToDo sleep time + is this thread safe??
|
||||
// TODO: time should be parameter
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(10));
|
||||
// ToDo is this thread safe??
|
||||
std::this_thread::sleep_for(lamp.second->get_activation_time());
|
||||
lamp.second->deactivate();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) :
|
||||
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;
|
||||
}
|
||||
@@ -44,6 +48,11 @@ bool Lamp::is_activated()
|
||||
return this->activated;
|
||||
}
|
||||
|
||||
std::chrono::milliseconds Lamp::get_activation_time() const
|
||||
{
|
||||
return this->activation_time;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
} /* namespace output */
|
||||
|
||||
@@ -33,10 +33,12 @@ public:
|
||||
void activate() override;
|
||||
void deactivate() override;
|
||||
bool is_activated() override;
|
||||
std::chrono::milliseconds get_activation_time() const override;
|
||||
|
||||
private:
|
||||
const std::shared_ptr<DriverBoardPinController> pin_controller;
|
||||
bool activated;
|
||||
std::chrono::milliseconds activation_time;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user