resolved some todos

This commit is contained in:
Johannes Wendel
2019-10-29 14:27:13 +01:00
parent 585dbe0811
commit c695b928ab
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::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;

View File

@@ -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

View File

@@ -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;
};
}

View File

@@ -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();
}
}

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) :
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 */

View File

@@ -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;
};
}