diff --git a/FlippR-Driver/CMakeLists.txt b/FlippR-Driver/CMakeLists.txt index c109c87..a998016 100644 --- a/FlippR-Driver/CMakeLists.txt +++ b/FlippR-Driver/CMakeLists.txt @@ -56,7 +56,7 @@ file(GLOB_RECURSE SOURCES src/*.cpp) if(BUILD_SHARED_LIB) add_library(${PROJECT_NAME} SHARED ${SOURCES}) else() - add_library(${PROJECT_NAME} STATIC ${SOURCES} cli/OutputInterpreter.cpp cli/OutputInterpreter.h src/output/items/detail/DriverBoardItem.cpp src/output/items/detail/DriverBoardItem.h include/DriverFactory.h src/utility/Colors.h src/output/factories/SoundFactory.cpp src/output/factories/SoundFactory.h src/output/factories/ItemFactory.cpp src/output/factories/ItemFactory.h src/output/factories/FlipperFactory.cpp src/output/factories/FlipperFactory.h src/output/factories/LampFactory.cpp src/output/factories/LampFactory.h src/output/factories/DisplayFactory.cpp src/output/factories/DisplayFactory.h src/output/factories/SolenoidFactory.cpp src/output/factories/SolenoidFactory.h) + add_library(${PROJECT_NAME} STATIC ${SOURCES} cli/OutputInterpreter.cpp cli/OutputInterpreter.h src/output/items/detail/DriverBoardItem.cpp src/output/items/detail/DriverBoardItem.h include/DriverFactory.h src/utility/Colors.h src/output/factories/SoundFactory.cpp src/output/factories/SoundFactory.h src/output/factories/ItemFactory.cpp src/output/factories/ItemFactory.h src/output/factories/FlipperFactory.cpp src/output/factories/FlipperFactory.h src/output/factories/LampFactory.cpp src/output/factories/LampFactory.h src/output/factories/DisplayFactory.cpp src/output/factories/DisplayFactory.h src/output/factories/SolenoidFactory.cpp src/output/factories/SolenoidFactory.h src/utility/helper_functions.hpp) endif(BUILD_SHARED_LIB) target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/src) diff --git a/FlippR-Driver/src/output/detail/DriverBoardPinController.cpp b/FlippR-Driver/src/output/detail/DriverBoardPinController.cpp index d91372b..0cf951d 100644 --- a/FlippR-Driver/src/output/detail/DriverBoardPinController.cpp +++ b/FlippR-Driver/src/output/detail/DriverBoardPinController.cpp @@ -2,6 +2,7 @@ // Created by rhetenor on 14.12.18. // +#include #include "output/detail/DriverBoardPinController.h" #include "output/items/DriverBoardItem.h" @@ -94,34 +95,25 @@ void DriverBoardPinController::set_address_pins(std::array address_p { this->address_pins = address_pins; - std::stringstream ss; - - for(auto pin : address_pins) { - ss << int{pin} << ", "; initialize_output_pin(pin); write_pin(pin, 1); } - ss << std::string(2, 0x08); - CLOG(DEBUG, OUTPUT_LOGGER) << "Pin addresses for driver board set to: [" << ss.str() << "]"; + CLOG(DEBUG, OUTPUT_LOGGER) << "Pin addresses for driver board set to: " + help::make_list_string>(address_pins); } void DriverBoardPinController::set_mux_pins(std::array mux_enable_pins) { this->mux_enable_pins = mux_enable_pins; - std::stringstream ss; - for(auto pin : mux_enable_pins) { - ss << int{pin} << ", "; initialize_output_pin(pin); write_pin(pin, 1); } - ss << std::string(2, 0x08); - CLOG(DEBUG, OUTPUT_LOGGER) << "Pin addresses for multiplexers set to: [" << ss.str() << "]"; + CLOG(DEBUG, OUTPUT_LOGGER) << "Pin addresses for multiplexers set to: " + help::make_list_string>(mux_enable_pins); } void DriverBoardPinController::set_data_pin(uint8_t data_pin) { diff --git a/FlippR-Driver/src/output/detail/SoundBoardPinController.cpp b/FlippR-Driver/src/output/detail/SoundBoardPinController.cpp index c27fe09..b918199 100644 --- a/FlippR-Driver/src/output/detail/SoundBoardPinController.cpp +++ b/FlippR-Driver/src/output/detail/SoundBoardPinController.cpp @@ -2,6 +2,7 @@ // Created by rhetenor on 14.12.18. // +#include #include "output/detail/SoundBoardPinController.h" #include "utility/config.h" @@ -80,15 +81,7 @@ void SoundBoardPinController::set_address_pins(std::array address_pi this->initialize_output_pin(pin); } - //print string in a nice manner - std::stringstream ss; - for (auto & p : address_pins) - { - ss << int{p} << ", "; - } - ss << std::string(2, 0x08); - - CLOG(DEBUG, OUTPUT_LOGGER) << "Pin addresses for sounds set to: [" << ss.str() << "]"; + CLOG(DEBUG, OUTPUT_LOGGER) << "Pin addresses for sounds set to: " + help::make_list_string>(address_pins); } void SoundBoardPinController::set_fire_address(const uint8_t &fire_address) diff --git a/FlippR-Driver/src/utility/helper_functions.hpp b/FlippR-Driver/src/utility/helper_functions.hpp new file mode 100644 index 0000000..2bfae15 --- /dev/null +++ b/FlippR-Driver/src/utility/helper_functions.hpp @@ -0,0 +1,24 @@ +/* + * helper_functions.hpp + * + * Created on: Jan 16, 2020 + * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert + */ +#include +#include + +namespace help +{ + template + std::string make_list_string(Container container) + { + std::stringstream ss; + for(auto & elem : container) + { + ss << std::to_string(elem) << ", "; + } + ss << std::string(2, 0x08); + + return std::string("[") + ss.str() + "]"; + } +}