/* * FlipperFactory.cpp * * Created on: December 28, 2019 * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert */ #include #include #include "FlipperFactory.h" namespace flippR_driver { namespace output { FlipperFactory::FlipperFactory(nlohmann::json &object, std::shared_ptr pin_controller) : ItemFactory{object, pin_controller} {} std::map> FlipperFactory::getItemMap() { auto flippers = this->object.at(config_path::flipper_path); std::map> flipper_map; for (auto lamp : flippers) { auto name = lamp.at(config_path::item_name).get(); auto address = lamp.at(config_path::item_address).get(); auto extender = lamp.at(config_path::item_extender).get(); auto pin_base = this->get_extender_pin_base(extender); auto flipper_item = std::make_shared(std::static_pointer_cast(this->pin_controller), address, pin_base, name); flipper_map.emplace(name, flipper_item); } return flipper_map; } } }