From a670d11a4ae768640df1f72b83e411dcc596ec84 Mon Sep 17 00:00:00 2001 From: Johannes Wendel Date: Wed, 15 Jan 2020 16:38:52 +0100 Subject: [PATCH] adds set data_pin and run_pin --- FlippR-Driver/src/output/factories/ItemFactory.h | 5 +++-- FlippR-Driver/src/output/factories/LampFactory.cpp | 11 +++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/FlippR-Driver/src/output/factories/ItemFactory.h b/FlippR-Driver/src/output/factories/ItemFactory.h index 2225f4c..216bb2b 100644 --- a/FlippR-Driver/src/output/factories/ItemFactory.h +++ b/FlippR-Driver/src/output/factories/ItemFactory.h @@ -30,14 +30,15 @@ namespace config_path const char sound_path[] = "sounds"; const char fire_pin[] = "fire_pin"; - const char address_pins[] = "address_pins"; - const char enable_pins[] = "enable_pins"; const char flipper_path[] = "flippers"; const char solenoid_path[] = "solenoids"; const char lamps_path[] = "lamps"; + const char address_pins[] = "address_pins"; + const char enable_pins[] = "enable_pins"; + const char data_pin[] = "data_pin"; const char display_board[] = "display_board"; const char run_pin[] = "run"; diff --git a/FlippR-Driver/src/output/factories/LampFactory.cpp b/FlippR-Driver/src/output/factories/LampFactory.cpp index 3247c78..39c0937 100644 --- a/FlippR-Driver/src/output/factories/LampFactory.cpp +++ b/FlippR-Driver/src/output/factories/LampFactory.cpp @@ -20,6 +20,14 @@ LampFactory::LampFactory(nlohmann::json &object, std::shared_ptrset_address_pins(); this->set_mux_pins(); + + auto controller = std::dynamic_pointer_cast(this->pin_controller); + + auto data_pin = this->get_address_pin(this->object.at(config_path::data_pin)); + controller->set_data_pin(data_pin); + + auto run_pin = this->get_address_pin(this->object.at(config_path::run_pin)); + controller->set_run_pin(run_pin); } std::map> LampFactory::getItemMap() @@ -63,7 +71,7 @@ uint8_t LampFactory::get_address_pin(nlohmann::json & pin_object) void LampFactory::set_mux_pins() { - auto address_pins = this->object.at(config_path::address_pins); + auto address_pins = this->object.at(config_path::enable_pins); std::array pins; @@ -75,6 +83,5 @@ void LampFactory::set_mux_pins() std::dynamic_pointer_cast(this->pin_controller)->set_mux_pins(pins); } - } }