This commit is contained in:
Jonas Zeunert
2020-01-15 18:04:34 +01:00
parent 23433eb9b0
commit 0c10c3daba
6 changed files with 19 additions and 97 deletions

View File

@@ -24,6 +24,8 @@ public:
virtual void activate(items::DriverBoardItem &driver_board_item) = 0;
virtual void deactivate(items::DriverBoardItem &driver_board_item) = 0;
virtual void clear() = 0;
};
}

View File

@@ -41,6 +41,7 @@ std::shared_ptr<OutputDriver> get_OutputDriver(const std::string & solenoid_conf
auto solenoids = get_items<SolenoidFactory, detail::DriverBoardPinController, items::Solenoid>(solenoid_config_path, driver_board_pin_controller);
auto lamps = get_items<LampFactory, detail::DriverBoardPinController, items::Lamp>(lamp_config_path, driver_board_pin_controller);
driver_board_pin_controller->clear();
auto sound_board_pin_controller = std::make_shared<detail::SoundBoardPinController>(output_pin_mutex);
auto sounds = get_items<SoundFactory, detail::SoundBoardPinController, items::Sound>(sound_config_path, sound_board_pin_controller);

View File

@@ -98,6 +98,20 @@ void DriverBoardPinController::deselect_all_muxes()
}
}
void DriverBoardPinController::clear()
{
for(auto mux : mux_enable_pins)
{
for(uint8_t i = 0; i<8; i++)
{
select_mux(mux);
select_adress(i);
write_pin(data_pin, 0);
}
}
}
}
}
}

View File

@@ -27,6 +27,7 @@ public:
void activate(items::DriverBoardItem & driver_board_item);
void deactivate(items::DriverBoardItem & driver_board_item);
void clear();
void set_address_pins(std::array<uint8_t, 3> address_pins);
void set_mux_pins(std::array<uint8_t, 13> mux_enable_pins);