adds set mux pins
This commit is contained in:
@@ -31,6 +31,7 @@ namespace config_path
|
|||||||
const char sound_path[] = "sounds";
|
const char sound_path[] = "sounds";
|
||||||
const char fire_pin[] = "fire_pin";
|
const char fire_pin[] = "fire_pin";
|
||||||
const char address_pins[] = "address_pins";
|
const char address_pins[] = "address_pins";
|
||||||
|
const char enable_pins[] = "enable_pins";
|
||||||
|
|
||||||
const char flipper_path[] = "flippers";
|
const char flipper_path[] = "flippers";
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ LampFactory::LampFactory(nlohmann::json &object, std::shared_ptr<DriverBoardPinC
|
|||||||
ItemFactory{object, pin_controller}
|
ItemFactory{object, pin_controller}
|
||||||
{
|
{
|
||||||
this->set_address_pins();
|
this->set_address_pins();
|
||||||
|
this->set_mux_pins();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::map<std::string, std::shared_ptr<items::Lamp>> LampFactory::getItemMap()
|
std::map<std::string, std::shared_ptr<items::Lamp>> LampFactory::getItemMap()
|
||||||
@@ -44,9 +45,9 @@ void LampFactory::set_address_pins()
|
|||||||
|
|
||||||
std::array<uint8_t, 3> pins;
|
std::array<uint8_t, 3> pins;
|
||||||
|
|
||||||
pins.at(0) = address_pins.at("A0");
|
pins.at(0) = this->get_address_pin(address_pins.at("A0"));
|
||||||
pins.at(1) = address_pins.at("A1");
|
pins.at(1) = this->get_address_pin(address_pins.at("A1"));
|
||||||
pins.at(2) = address_pins.at("A2");
|
pins.at(2) = this->get_address_pin(address_pins.at("A2"));
|
||||||
|
|
||||||
std::dynamic_pointer_cast<detail::DriverBoardPinController>(this->pin_controller)->set_address_pins(pins);
|
std::dynamic_pointer_cast<detail::DriverBoardPinController>(this->pin_controller)->set_address_pins(pins);
|
||||||
}
|
}
|
||||||
@@ -60,6 +61,20 @@ uint8_t LampFactory::get_address_pin(nlohmann::json & pin_object)
|
|||||||
return address + pin_base;
|
return address + pin_base;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LampFactory::set_mux_pins()
|
||||||
|
{
|
||||||
|
auto address_pins = this->object.at(config_path::address_pins);
|
||||||
|
|
||||||
|
std::array<uint8_t, 13> pins;
|
||||||
|
|
||||||
|
for(int i = 1; i < 14; i++)
|
||||||
|
{
|
||||||
|
pins.at(i) = this->get_address_pin(address_pins.at("E" + std::string{i}));
|
||||||
|
}
|
||||||
|
|
||||||
|
std::dynamic_pointer_cast<detail::DriverBoardPinController>(this->pin_controller)->set_mux_pins(pins);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
void set_address_pins();
|
void set_address_pins();
|
||||||
|
void set_mux_pins();
|
||||||
|
|
||||||
uint8_t get_address_pin(nlohmann::json & pin_object);
|
uint8_t get_address_pin(nlohmann::json & pin_object);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user