45 lines
972 B
C++
45 lines
972 B
C++
/*
|
|
* DisplayController.cpp
|
|
*
|
|
* Created on: Aug 7, 2018
|
|
* Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert
|
|
*/
|
|
|
|
#include "DisplayController.h"
|
|
|
|
#include "utility/config.h"
|
|
|
|
namespace flippR_driver
|
|
{
|
|
namespace output
|
|
{
|
|
|
|
DisplayController::DisplayController(std::vector<std::shared_ptr<items::IDisplay>> displays, std::shared_ptr<IOutputGPIOInterface> output_gpio_interface)
|
|
: displays(std::move(displays)), output_gpio_interface(std::move(output_gpio_interface)), is_running(true)
|
|
{
|
|
this->display_cycle_thread = std::thread(&DisplayController::cycle_displays, this);
|
|
|
|
CLOG(INFO, OUTPUT_LOGGER) << "Created DisplayController and started writing them.";
|
|
}
|
|
|
|
DisplayController::~DisplayController()
|
|
{
|
|
this->is_running = false;
|
|
|
|
this->display_cycle_thread.join();
|
|
}
|
|
|
|
void DisplayController::cycle_displays()
|
|
{
|
|
while(is_running)
|
|
{
|
|
for(auto& display : this->displays)
|
|
{
|
|
output_gpio_interface->write_display(display);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|