diff --git a/FlippR-Driver/src/output/OutputPinController.cpp b/FlippR-Driver/src/output/OutputPinController.cpp index 09a1fa5..22a5f1e 100644 --- a/FlippR-Driver/src/output/OutputPinController.cpp +++ b/FlippR-Driver/src/output/OutputPinController.cpp @@ -21,12 +21,11 @@ void OutputPinController::initialize_i2c_address(uint8_t i2c_address, uint8_t pi mcp23017Setup(pin_base, i2c_address); } -void OutputPinController::initialize_pins_output(uint8_t pin_base) +void OutputPinController::initialize_pins_output(uint8_t pin_base, std::map::iterator begin, std::map::iterator end) { - // Since this are all outputs we just initialize everything as output conveniently - for(int i = 0; i < 16; i++) + for(; begin != end; begin++) { - PinController::initialize_output_pin(pin_base + i); + initialize_output_pin(pin_base + begin->second); } } diff --git a/FlippR-Driver/src/output/OutputPinController.h b/FlippR-Driver/src/output/OutputPinController.h index 408cd4f..bb3481c 100644 --- a/FlippR-Driver/src/output/OutputPinController.h +++ b/FlippR-Driver/src/output/OutputPinController.h @@ -10,6 +10,8 @@ #include "PinController.h" +#include + namespace flippR_driver { namespace output @@ -23,7 +25,7 @@ public: protected: static void initialize_i2c_address(uint8_t i2c_address, uint8_t pin_base); - static void initialize_pins_output(uint8_t pin_base); + static void initialize_pins_output(uint8_t pin_base, std::map::iterator begin, std::map::iterator end); }; } diff --git a/FlippR-Driver/src/output/detail/DisplayBoardPinController.cpp b/FlippR-Driver/src/output/detail/DisplayBoardPinController.cpp index d5d32b2..2185e13 100644 --- a/FlippR-Driver/src/output/detail/DisplayBoardPinController.cpp +++ b/FlippR-Driver/src/output/detail/DisplayBoardPinController.cpp @@ -17,8 +17,9 @@ namespace detail DisplayBoardPinController::DisplayBoardPinController(std::map pins_display) : pins_display_board(std::move(pins_display)) { - // todo init + initialize_pins_output(0, pins_display.begin(), pins_display.end()); + CLOG(INFO, OUTPUT_LOGGER) << "Created DisplayBoardPinController"; } void DisplayBoardPinController::activate_displays() const diff --git a/FlippR-Driver/src/output/detail/DisplayBoardPinController.h b/FlippR-Driver/src/output/detail/DisplayBoardPinController.h index 62e66a9..824f6e6 100644 --- a/FlippR-Driver/src/output/detail/DisplayBoardPinController.h +++ b/FlippR-Driver/src/output/detail/DisplayBoardPinController.h @@ -7,7 +7,7 @@ #include "output/DisplayBoardPinController.h" -#include "PinController.h" +#include "output/OutputPinController.h" #include @@ -18,7 +18,7 @@ namespace output namespace detail { -class DisplayBoardPinController : public output::DisplayBoardPinController, public PinController +class DisplayBoardPinController : public output::DisplayBoardPinController, public OutputPinController { public: explicit DisplayBoardPinController(std::map pins_display); diff --git a/FlippR-Driver/src/output/detail/DisplayController.cpp b/FlippR-Driver/src/output/detail/DisplayController.cpp index bd61cf8..ecc30cd 100644 --- a/FlippR-Driver/src/output/detail/DisplayController.cpp +++ b/FlippR-Driver/src/output/detail/DisplayController.cpp @@ -21,7 +21,9 @@ DisplayController::DisplayController(std::vectordisplay_cycle_thread = std::thread(&DisplayController::cycle_displays, this); - CLOG(INFO, OUTPUT_LOGGER) << "Created DisplayController and started writing them."; + CLOG(INFO, OUTPUT_LOGGER) << "Created DisplayController and started cycling them."; + + activate_displays(); } DisplayController::~DisplayController() @@ -44,11 +46,13 @@ void DisplayController::cycle_displays() const void DisplayController::activate_displays() const { + CLOG(INFO, OUTPUT_LOGGER) << "Activated all displays!"; pin_controller->activate_displays(); } void DisplayController::deactivate_displays() const { + CLOG(INFO, OUTPUT_LOGGER) << "Deactivated all displays!"; pin_controller->deactivate_displays(); } diff --git a/FlippR-Driver/src/output/detail/DriverBoardPinController.cpp b/FlippR-Driver/src/output/detail/DriverBoardPinController.cpp index f7c9832..c0e7557 100644 --- a/FlippR-Driver/src/output/detail/DriverBoardPinController.cpp +++ b/FlippR-Driver/src/output/detail/DriverBoardPinController.cpp @@ -4,6 +4,10 @@ #include "DriverBoardPinController.h" +#include "output/items/DriverBoardItem.h" + +#include "utility/config.h" + namespace flippR_driver { namespace output @@ -14,7 +18,13 @@ namespace detail DriverBoardPinController::DriverBoardPinController(std::map pins_driver_board, std::shared_ptr output_item_mutex) : pins_driver_board(std::move(pins_driver_board)), output_item_mutex(std::move(output_item_mutex)) { - // todo init + uint8_t i2c_address = pins_driver_board.at("i2c_address"); + uint8_t pin_base = pins_driver_board.at("pin_base"); + + initialize_i2c_address(i2c_address, pin_base); + initialize_pins_output(pin_base, pins_driver_board.begin(), pins_driver_board.end()); + + CLOG(INFO, OUTPUT_LOGGER) << "Created DriverBoardPinController with i2c_address 0x" << std::hex << i2c_address << " and pin_base " << std::dec << pin_base; } void DriverBoardPinController::activate(items::DriverBoardItem &driver_board_item) diff --git a/FlippR-Driver/src/output/detail/DriverBoardPinController.h b/FlippR-Driver/src/output/detail/DriverBoardPinController.h index 4353922..2047bb0 100644 --- a/FlippR-Driver/src/output/detail/DriverBoardPinController.h +++ b/FlippR-Driver/src/output/detail/DriverBoardPinController.h @@ -9,8 +9,6 @@ #include "output/OutputPinController.h" -#include - #include #include diff --git a/FlippR-Driver/src/output/detail/OutputDriver.cpp b/FlippR-Driver/src/output/detail/OutputDriver.cpp index 880a38a..6364c99 100644 --- a/FlippR-Driver/src/output/detail/OutputDriver.cpp +++ b/FlippR-Driver/src/output/detail/OutputDriver.cpp @@ -10,6 +10,8 @@ #include #include +#include "utility/config.h" + namespace flippR_driver { namespace output @@ -21,7 +23,9 @@ using namespace items; OutputDriver::OutputDriver(std::unique_ptr display_controller, std::map> solenoids, std::map> lamps, std::map> sounds, std::map> displays) : display_controller(std::move(display_controller)), solenoids(std::move(solenoids)), lamps(std::move(lamps)), sounds(std::move(sounds)), displays(std::move(displays)) -{} +{ + CLOG(INFO, OUTPUT_LOGGER) << "Created OutputDriver"; +} void OutputDriver::activate_displays() const { diff --git a/FlippR-Driver/src/output/detail/SoundBoardPinController.cpp b/FlippR-Driver/src/output/detail/SoundBoardPinController.cpp index 7ade5ce..b9c5246 100644 --- a/FlippR-Driver/src/output/detail/SoundBoardPinController.cpp +++ b/FlippR-Driver/src/output/detail/SoundBoardPinController.cpp @@ -4,6 +4,8 @@ #include "SoundBoardPinController.h" +#include "utility/config.h" + namespace flippR_driver { namespace output @@ -14,7 +16,13 @@ namespace detail SoundBoardPinController::SoundBoardPinController(std::map pins_sound, std::shared_ptr output_item_mutex) : pins_sound(std::move(pins_sound)), output_item_mutex(std::move(output_item_mutex)) { - // todo init + uint8_t i2c_address = pins_sound.at("i2c_address"); + uint8_t pin_base = pins_sound.at("pin_base"); + + initialize_i2c_address(i2c_address, pin_base); + initialize_pins_output(pin_base, pins_sound.begin(), pins_sound.end()); + + CLOG(INFO, OUTPUT_LOGGER) << "Created SoundBoardPinController with i2c_address 0x" << std::hex << i2c_address << " and pin_base " << std::dec << pin_base; } diff --git a/FlippR-Driver/src/output/detail/SoundBoardPinController.h b/FlippR-Driver/src/output/detail/SoundBoardPinController.h index 3c8a92a..552b687 100644 --- a/FlippR-Driver/src/output/detail/SoundBoardPinController.h +++ b/FlippR-Driver/src/output/detail/SoundBoardPinController.h @@ -9,9 +9,8 @@ #include "output/OutputPinController.h" -#include - #include + namespace flippR_driver { namespace output diff --git a/FlippR-Driver/src/output/items/detail/Display.hpp b/FlippR-Driver/src/output/items/detail/Display.hpp index 65322bc..e971242 100644 --- a/FlippR-Driver/src/output/items/detail/Display.hpp +++ b/FlippR-Driver/src/output/items/detail/Display.hpp @@ -21,6 +21,7 @@ Display::Display(uint8_t address, uint8_t id) : address(address), id(id) { + CLOG(INFO, OUTPUT_LOGGER) << "Created display with id " << id << " and address " << address << "."; } template diff --git a/FlippR-Driver/src/output/items/detail/Lamp.cpp b/FlippR-Driver/src/output/items/detail/Lamp.cpp index ef9c8ba..f3ddce7 100644 --- a/FlippR-Driver/src/output/items/detail/Lamp.cpp +++ b/FlippR-Driver/src/output/items/detail/Lamp.cpp @@ -7,6 +7,8 @@ #include "Lamp.h" +#include "utility/config.h" + namespace flippR_driver { namespace output @@ -18,7 +20,9 @@ namespace detail Lamp::Lamp(std::shared_ptr pin_controller, uint8_t address, std::string name) : DriverBoardItem(std::move(pin_controller), address, std::move(name)), activated(false) -{} +{ + CLOG(INFO, OUTPUT_LOGGER) << "Created lamp " << name << " with address " << address; +} void Lamp::activate() { diff --git a/FlippR-Driver/src/output/items/detail/Solenoid.cpp b/FlippR-Driver/src/output/items/detail/Solenoid.cpp index 2fdf691..c6727a3 100644 --- a/FlippR-Driver/src/output/items/detail/Solenoid.cpp +++ b/FlippR-Driver/src/output/items/detail/Solenoid.cpp @@ -7,6 +7,8 @@ #include "Solenoid.h" +#include "utility/config.h" + namespace flippR_driver { namespace output @@ -19,7 +21,9 @@ namespace detail Solenoid::Solenoid(std::shared_ptr pin_controller, uint8_t address, std::string name, std::chrono::milliseconds deactivation_time) : DriverBoardItem(std::move(pin_controller), address, std::move(name)), deactivation_time(deactivation_time) -{} +{ + CLOG(INFO, OUTPUT_LOGGER) << "Created solenoid " << name << " with address " << address; +} void Solenoid::triggerTask() { diff --git a/FlippR-Driver/src/output/items/detail/Sound.cpp b/FlippR-Driver/src/output/items/detail/Sound.cpp index 87d2e71..6662929 100644 --- a/FlippR-Driver/src/output/items/detail/Sound.cpp +++ b/FlippR-Driver/src/output/items/detail/Sound.cpp @@ -9,6 +9,8 @@ #include +#include "utility/config.h" + namespace flippR_driver { namespace output @@ -21,7 +23,9 @@ namespace detail Sound::Sound(std::shared_ptr pin_controller, uint8_t address, std::string name, std::chrono::milliseconds deactivation_time, u_int id) : pin_controller(std::move(pin_controller)), Item(address, std::move(name)), deactivation_time(deactivation_time), id(id) -{} +{ + CLOG(INFO, OUTPUT_LOGGER) << "Created sound " << id << " with name " << name << " and address " << address; +} void Sound::play() { diff --git a/FlippR-Driver/src/utility/LoggerFactory.cpp b/FlippR-Driver/src/utility/LoggerFactory.cpp index 8a1ac62..b66737f 100644 --- a/FlippR-Driver/src/utility/LoggerFactory.cpp +++ b/FlippR-Driver/src/utility/LoggerFactory.cpp @@ -36,7 +36,6 @@ el::Configurations createConfig(el::Level level) conf.setGlobally(el::ConfigurationType::ToStandardOutput, "false"); - conf.setGlobally(el::ConfigurationType::) conf.set(level, el::ConfigurationType::ToStandardOutput, "true"); conf.set(level, el::ConfigurationType::ToFile, "true"); conf.set(level, el::ConfigurationType::Filename, LOGGER_FILE);