Lamp factory adaption
This commit is contained in:
@@ -47,14 +47,18 @@ std::shared_ptr<OutputDriver> get_OutputDriver(const std::string & solenoid_conf
|
||||
auto display_board_pin_controller = std::make_shared<detail::DisplayBoardPinController>();
|
||||
auto displays = get_items<DisplayFactory, detail::DisplayBoardPinController, items::Display>(display_config_path, display_board_pin_controller);
|
||||
|
||||
nlohmann::json display_config;
|
||||
std::ifstream(display_config_path) >> display_config;
|
||||
std::chrono::milliseconds update_frequency(1/display_config.at(config_path::display_update_frequency).get<uint>());
|
||||
auto display_controller = std::make_unique<detail::DisplayController>(displays, display_board_pin_controller, update_frequency);
|
||||
auto display_controller = std::make_unique<detail::DisplayController>(displays, display_board_pin_controller, get_update_frequency(display_config_path));
|
||||
|
||||
return std::make_shared<OutputDriver>(std::move(display_controller), solenoids, lamps, sounds, flippers, displays);
|
||||
}
|
||||
|
||||
std::chrono::seconds get_update_frequency(const std::string & display_config_path)
|
||||
{
|
||||
nlohmann::json display_config;
|
||||
std::ifstream(display_config_path) >> display_config;
|
||||
return std::chrono::seconds{1/display_config.at(config_path::display_update_frequency).get<uint>()};
|
||||
}
|
||||
|
||||
template<typename FactoryType, typename ControllerType, typename ItemType>
|
||||
std::map<std::string, std::shared_ptr<ItemType>> get_items(const std::string &config_path, std::shared_ptr<PinController> pin_controller)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user