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

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