Implements and integrates FlipperFactory

This commit is contained in:
Johannes Wendel
2020-01-06 08:12:15 +01:00
parent 1ef49a0e95
commit f00e10ea33
5 changed files with 44 additions and 11 deletions

View File

@@ -4,6 +4,7 @@
#include <output/factories/LampFactory.h>
#include <output/factories/SoundFactory.h>
#include <output/factories/FlipperFactory.h>
#include "OutputDriverFactory.h"
#include "utility/LoggerFactory.h"
@@ -49,8 +50,16 @@ std::shared_ptr<OutputDriver> get_OutputDriver(std::istream& solenoid_config,
auto output_pin_mutex = std::make_shared<std::mutex>();
std::shared_ptr<DriverBoardPinController> driver_board_pin_controller(new detail::DriverBoardPinController(output_pin_mutex));
/* auto solenoids = create_solenoids(driver_board_pin_controller);
auto flippers = create_flippers(driver_board_pin_controller);*/
FlipperFactory flipper_factory{config::solenoids, driver_board_pin_controller};
try
{
auto flippers = flipper_factory.getItemMap();
}
catch(json::exception &e)
{
CLOG(INFO, OUTPUT_LOGGER) << "File " << "solenoid_config.json" << " seems to be corrupted: " << ": " << e.what();
exit(EXIT_FAILURE);
}
LampFactory lamp_factory(config::lamps, driver_board_pin_controller);
try
@@ -58,14 +67,24 @@ std::shared_ptr<OutputDriver> get_OutputDriver(std::istream& solenoid_config,
auto lamps = lamp_factory.getItemMap();
}
catch(json::exception &e)
{
CLOG(INFO, OUTPUT_LOGGER) << "File " << "lamp_config.json" << " seems to be corrupted: " << ": " << e.what();
exit(EXIT_FAILURE);
}
auto sound_board_pin_controller = create_SoundBoardPinController();
SoundFactory sound_factory{config::sounds, sound_board_pin_controller};
try
{
auto sounds = sound_factory.getItemMap();
}
catch(json::exception &e)
{
CLOG(INFO, OUTPUT_LOGGER) << "File " << "sound_config.json" << " seems to be corrupted: " << ": " << e.what();
exit(EXIT_FAILURE);
}
auto sound_board_pin_controller = create_SoundBoardPinController();
SoundFactory sound_factory{config::sounds, sound_board_pin_controller};
auto sounds = sound_factory.getItemMap();
/*std::unique_ptr<DisplayBoardPinController> display_board_pin_controller(new detail::DisplayBoardPinController(parse_pins_display_board(display_config)));
auto displays = create_displays();