work with parameter

This commit is contained in:
Jonas Zeunert
2020-07-02 22:39:24 +02:00
parent 3259495c0d
commit 9f4bbd6eac
5 changed files with 12 additions and 12 deletions

View File

@@ -46,10 +46,10 @@ std::shared_ptr<OutputDriver> get_OutputDriver(const std::string & solenoid_conf
auto sound_board_pin_controller = std::make_shared<detail::SoundBoardPinController>(output_pin_mutex); auto sound_board_pin_controller = std::make_shared<detail::SoundBoardPinController>(output_pin_mutex);
auto sounds = get_items<SoundFactory, detail::SoundBoardPinController, items::Sound>(sound_config_path, sound_board_pin_controller); auto sounds = get_items<SoundFactory, detail::SoundBoardPinController, items::Sound>(sound_config_path, sound_board_pin_controller);
auto display_board_pin_controller = std::make_shared<detail::DisplayBoardPinController>(); auto display_board_pin_controller = std::make_shared<detail::DisplayBoardPinController>(get_update_frequency(display_config_path));
auto displays = get_items<DisplayFactory, detail::DisplayBoardPinController, items::Display>(display_config_path, display_board_pin_controller); auto displays = get_items<DisplayFactory, detail::DisplayBoardPinController, items::Display>(display_config_path, display_board_pin_controller);
auto display_controller = std::make_unique<detail::DisplayController>(displays, display_board_pin_controller, get_update_frequency(display_config_path)); auto display_controller = std::make_unique<detail::DisplayController>(displays, display_board_pin_controller);
return std::make_shared<OutputDriver>(std::move(display_controller), solenoids, lamps, sounds, flippers, displays); return std::make_shared<OutputDriver>(std::move(display_controller), solenoids, lamps, sounds, flippers, displays);
} }

View File

@@ -18,16 +18,16 @@ namespace output
namespace detail namespace detail
{ {
DisplayBoardPinController::DisplayBoardPinController(std::map<std::string, uint8_t> & pins_display) : DisplayBoardPinController::DisplayBoardPinController(std::map<std::string, uint8_t> & pins_display, std::chrono::microseconds update_time) :
pins_display_board{} pins_display_board{}, update_time{update_time}
{ {
this->set_pin_map(pins_display); this->set_pin_map(pins_display);
initialize_pins_output(); initialize_pins_output();
CLOG(DEBUG, OUTPUT_LOGGER) << "Created DisplayBoardPinController"; CLOG(DEBUG, OUTPUT_LOGGER) << "Created DisplayBoardPinController";
} }
DisplayBoardPinController::DisplayBoardPinController() : DisplayBoardPinController::DisplayBoardPinController(std::chrono::microseconds update_time) :
pins_display_board{} pins_display_board{}, update_time{update_time}
{ {
CLOG(DEBUG, OUTPUT_LOGGER) << "Created DisplayBoardPinController without pin map"; CLOG(DEBUG, OUTPUT_LOGGER) << "Created DisplayBoardPinController without pin map";
} }

View File

@@ -20,8 +20,8 @@ namespace detail
class DisplayBoardPinController : public output::DisplayBoardPinController class DisplayBoardPinController : public output::DisplayBoardPinController
{ {
public: public:
explicit DisplayBoardPinController(std::map<std::string, uint8_t> & pins_display); DisplayBoardPinController(std::map<std::string, uint8_t> & pins_display, std::chrono::microseconds update_time);
explicit DisplayBoardPinController(); DisplayBoardPinController(std::chrono::microseconds update_time);
~DisplayBoardPinController() override = default; ~DisplayBoardPinController() override = default;
void initDisplay(const items::OutputDisplay &display) const; void initDisplay(const items::OutputDisplay &display) const;
@@ -42,6 +42,7 @@ private:
private: private:
std::map<std::string, uint8_t> pins_display_board; std::map<std::string, uint8_t> pins_display_board;
std::chrono::microseconds update_time;
}; };
} }

View File

@@ -19,9 +19,9 @@ namespace detail
{ {
DisplayController::DisplayController(std::map<std::string, std::shared_ptr<items::Display>> & displays, DisplayController::DisplayController(std::map<std::string, std::shared_ptr<items::Display>> & displays,
std::shared_ptr<DisplayBoardPinController> pin_controller, std::chrono::microseconds update_frequency std::shared_ptr<DisplayBoardPinController> pin_controller
) )
: pin_controller{pin_controller}, update_frequency(update_frequency), is_running(true) : pin_controller{pin_controller}, is_running(true)
{ {
for (auto display : displays) for (auto display : displays)
{ {

View File

@@ -25,7 +25,7 @@ namespace detail
class DisplayController : public output::DisplayController class DisplayController : public output::DisplayController
{ {
public: public:
DisplayController(std::map<std::string, std::shared_ptr<items::Display>> &displays, std::shared_ptr<DisplayBoardPinController> pin_controller, std::chrono::microseconds update_frequency); DisplayController(std::map<std::string, std::shared_ptr<items::Display>> &displays, std::shared_ptr<DisplayBoardPinController> pin_controller);
~DisplayController() override; ~DisplayController() override;
void activate_displays() const override; void activate_displays() const override;
@@ -40,7 +40,6 @@ private:
const std::shared_ptr<DisplayBoardPinController> pin_controller; const std::shared_ptr<DisplayBoardPinController> pin_controller;
std::thread display_cycle_thread; std::thread display_cycle_thread;
std::chrono::microseconds update_frequency;
bool is_running; bool is_running;
}; };