adds set mux pins
This commit is contained in:
@@ -31,6 +31,7 @@ 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";
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ LampFactory::LampFactory(nlohmann::json &object, std::shared_ptr<DriverBoardPinC
|
||||
ItemFactory{object, pin_controller}
|
||||
{
|
||||
this->set_address_pins();
|
||||
this->set_mux_pins();
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
pins.at(0) = address_pins.at("A0");
|
||||
pins.at(1) = address_pins.at("A1");
|
||||
pins.at(2) = address_pins.at("A2");
|
||||
pins.at(0) = this->get_address_pin(address_pins.at("A0"));
|
||||
pins.at(1) = this->get_address_pin(address_pins.at("A1"));
|
||||
pins.at(2) = this->get_address_pin(address_pins.at("A2"));
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
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:
|
||||
void set_address_pins();
|
||||
void set_mux_pins();
|
||||
|
||||
uint8_t get_address_pin(nlohmann::json & pin_object);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user