improve clear

This commit is contained in:
Jonas Zeunert
2020-01-16 20:36:28 +01:00
parent 9748239aab
commit fe96470089

View File

@@ -23,9 +23,10 @@ DriverBoardPinController::DriverBoardPinController(std::shared_ptr<std::mutex> o
void DriverBoardPinController::activate(items::DriverBoardItem &driver_board_item) void DriverBoardPinController::activate(items::DriverBoardItem &driver_board_item)
{ {
this->deselect_all_muxes();
std::lock_guard<std::mutex> guard(*output_item_mutex); std::lock_guard<std::mutex> guard(*output_item_mutex);
this->deselect_all_muxes();
uint8_t address = driver_board_item.get_address(); uint8_t address = driver_board_item.get_address();
this->select_adress(address); this->select_adress(address);
@@ -38,9 +39,10 @@ void DriverBoardPinController::activate(items::DriverBoardItem &driver_board_ite
void DriverBoardPinController::deactivate(items::DriverBoardItem &driver_board_item) void DriverBoardPinController::deactivate(items::DriverBoardItem &driver_board_item)
{ {
this->deselect_all_muxes();
std::lock_guard<std::mutex> guard(*output_item_mutex); std::lock_guard<std::mutex> guard(*output_item_mutex);
this->deselect_all_muxes();
uint8_t address = driver_board_item.get_address(); uint8_t address = driver_board_item.get_address();
this->select_adress(address); this->select_adress(address);
@@ -77,13 +79,14 @@ void DriverBoardPinController::clear()
write_pin(data_pin, 0); write_pin(data_pin, 0);
for(auto mux : mux_enable_pins) for(auto mux : mux_enable_pins)
{ {
for(uint8_t i = 0; i<8; i++) select_mux(mux);
{
this->deselect_all_muxes();
select_mux(mux);
select_adress(i);
}
} }
for(uint8_t i = 0; i<8; i++)
{
select_adress(i);
}
this->deselect_all_muxes();
} }
void DriverBoardPinController::set_address_pins(std::array<uint8_t, 3> address_pins) void DriverBoardPinController::set_address_pins(std::array<uint8_t, 3> address_pins)