/* * Factory.cpp * * Created on: December 28, 2019 * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert */ #include "Factory.h" namespace flippR_driver { namespace output { Factory::Factory(nlohmann::json &object, std::shared_ptr pin_controller) : pin_controller{pin_controller} { this->object = object; this->initialize_port_extenders(); this->port_extenders = object.at("port_extenders"); } void Factory::initialize_port_extender(nlohmann::json &extender) { auto i2c_address = extender.at("i2c_address").get(); auto pin_base = extender.at("pin_base").get(); this->pin_controller->initialize_port_expander(i2c_address, pin_base); } void Factory::initialize_port_extenders() { for (auto extender : port_extenders) { this->initialize_port_extender(extender); } } uint8_t Factory::get_extender_pin_base(std::string &name) { for (auto extender : port_extenders) { if (extender.at("name").get() == name) { return extender.at("pin_base").get(); } } return 0; } } }