added display init
This commit is contained in:
@@ -21,6 +21,8 @@ public:
|
||||
virtual void activate_displays() const = 0;
|
||||
virtual void deactivate_displays() const = 0;
|
||||
|
||||
virtual void initDisplay(const items::OutputDisplay &display) const = 0;
|
||||
|
||||
virtual void write_display(const items::OutputDisplay &display) const = 0;
|
||||
|
||||
virtual void set_pin_map(std::map<std::string, uint8_t> & pins_display) = 0;
|
||||
|
||||
@@ -30,6 +30,13 @@ void DisplayBoardPinController::clear()
|
||||
std::for_each(this->pins_display_board.begin(), this->pins_display_board.end(), [](auto& pin) { write_pin(pin.second, 0); });
|
||||
}
|
||||
|
||||
void DisplayBoardPinController::initDisplay(const items::OutputDisplay &display) const
|
||||
{
|
||||
initialize_output_pin(display.get_address());
|
||||
|
||||
write_pin(display.get_address(), 0);
|
||||
}
|
||||
|
||||
DisplayBoardPinController::DisplayBoardPinController() :
|
||||
pins_display_board{}
|
||||
{
|
||||
@@ -92,6 +99,7 @@ void DisplayBoardPinController::set_pin_map(std::map<std::string, uint8_t> & pin
|
||||
{
|
||||
this->pins_display_board.insert(pins_display.begin(), pins_display.end());
|
||||
initialize_pins_output(0, pins_display.begin(), pins_display.end());
|
||||
clear();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "output/DisplayBoardPinController.h"
|
||||
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
namespace flippR_driver
|
||||
{
|
||||
@@ -23,6 +24,7 @@ public:
|
||||
explicit DisplayBoardPinController();
|
||||
~DisplayBoardPinController() override = default;
|
||||
|
||||
void initDisplay(const items::OutputDisplay &display) const;
|
||||
void activate_displays() const;
|
||||
void deactivate_displays() const;
|
||||
|
||||
|
||||
@@ -28,9 +28,14 @@ DisplayController::DisplayController(std::map<std::string, std::shared_ptr<items
|
||||
this->displays.push_back(std::dynamic_pointer_cast<items::OutputDisplay>(display.second));
|
||||
}
|
||||
|
||||
this->display_cycle_thread = std::thread(&DisplayController::cycle_displays, this);
|
||||
for(auto &display : this->displays) {
|
||||
pin_controller->initDisplay(*display);
|
||||
}
|
||||
|
||||
activate_displays();
|
||||
|
||||
this->display_cycle_thread = std::thread(&DisplayController::cycle_displays, this);
|
||||
|
||||
CLOG(DEBUG, OUTPUT_LOGGER) << "Created DisplayController and started cycling them.";
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user