From f9edf2f8cc4f0468f144c76bacf127249b07c199 Mon Sep 17 00:00:00 2001 From: Jonas Zeunert Date: Fri, 14 Dec 2018 13:30:57 +0100 Subject: [PATCH] dunno --- .../{ => input}/Input_Matrix_Config.json | 0 .../{ => input}/Input_Pin_Config.json | 0 .../{ => output}/Lamp_Config.json | 0 .../{ => output}/Output_Pin_Config.json | 0 .../{ => output}/Solenoid_Config.json | 0 .../{ => output}/Sound_Config.json | 0 FlippR-Driver/include/output/OutputDriver.h | 19 ++++++++------ FlippR-Driver/src/input/DistributingEvent.cpp | 2 +- FlippR-Driver/src/input/DistributingEvent.h | 2 +- .../src/input/InputDriverFactory.cpp | 2 +- FlippR-Driver/src/output/DisplayController.h | 3 +++ .../src/output/OutputDriverFactory.cpp | 5 ++-- .../src/output/OutputDriverFactory.h | 2 +- .../output/impl/DisplayBoardPinController.cpp | 2 +- .../src/output/impl/DisplayController.cpp | 10 +++++++ .../src/output/impl/DisplayController.h | 3 +++ .../src/output/impl/OutputDriver.cpp | 22 +++++++++++----- FlippR-Driver/src/output/impl/OutputDriver.h | 26 +++++++++++-------- FlippR-Driver/src/output/items/Display.h | 2 +- FlippR-Driver/src/output/items/impl/Display.h | 6 ++--- .../src/output/items/impl/Display.hpp | 6 ++--- 21 files changed, 73 insertions(+), 39 deletions(-) rename FlippR-Driver/contrib/json_example/{ => input}/Input_Matrix_Config.json (100%) rename FlippR-Driver/contrib/json_example/{ => input}/Input_Pin_Config.json (100%) rename FlippR-Driver/contrib/json_example/{ => output}/Lamp_Config.json (100%) rename FlippR-Driver/contrib/json_example/{ => output}/Output_Pin_Config.json (100%) rename FlippR-Driver/contrib/json_example/{ => output}/Solenoid_Config.json (100%) rename FlippR-Driver/contrib/json_example/{ => output}/Sound_Config.json (100%) diff --git a/FlippR-Driver/contrib/json_example/Input_Matrix_Config.json b/FlippR-Driver/contrib/json_example/input/Input_Matrix_Config.json similarity index 100% rename from FlippR-Driver/contrib/json_example/Input_Matrix_Config.json rename to FlippR-Driver/contrib/json_example/input/Input_Matrix_Config.json diff --git a/FlippR-Driver/contrib/json_example/Input_Pin_Config.json b/FlippR-Driver/contrib/json_example/input/Input_Pin_Config.json similarity index 100% rename from FlippR-Driver/contrib/json_example/Input_Pin_Config.json rename to FlippR-Driver/contrib/json_example/input/Input_Pin_Config.json diff --git a/FlippR-Driver/contrib/json_example/Lamp_Config.json b/FlippR-Driver/contrib/json_example/output/Lamp_Config.json similarity index 100% rename from FlippR-Driver/contrib/json_example/Lamp_Config.json rename to FlippR-Driver/contrib/json_example/output/Lamp_Config.json diff --git a/FlippR-Driver/contrib/json_example/Output_Pin_Config.json b/FlippR-Driver/contrib/json_example/output/Output_Pin_Config.json similarity index 100% rename from FlippR-Driver/contrib/json_example/Output_Pin_Config.json rename to FlippR-Driver/contrib/json_example/output/Output_Pin_Config.json diff --git a/FlippR-Driver/contrib/json_example/Solenoid_Config.json b/FlippR-Driver/contrib/json_example/output/Solenoid_Config.json similarity index 100% rename from FlippR-Driver/contrib/json_example/Solenoid_Config.json rename to FlippR-Driver/contrib/json_example/output/Solenoid_Config.json diff --git a/FlippR-Driver/contrib/json_example/Sound_Config.json b/FlippR-Driver/contrib/json_example/output/Sound_Config.json similarity index 100% rename from FlippR-Driver/contrib/json_example/Sound_Config.json rename to FlippR-Driver/contrib/json_example/output/Sound_Config.json diff --git a/FlippR-Driver/include/output/OutputDriver.h b/FlippR-Driver/include/output/OutputDriver.h index 71692c1..9e547e0 100644 --- a/FlippR-Driver/include/output/OutputDriver.h +++ b/FlippR-Driver/include/output/OutputDriver.h @@ -27,15 +27,18 @@ class OutputDriver public: virtual ~OutputDriver() = default; - virtual std::vector> get_lamps() = 0; - virtual std::vector> get_solenoids() = 0; - virtual std::vector> get_sounds() = 0; - virtual std::vector> get_displays() = 0; + virtual void activate_displays() const = 0; + virtual void deactivate_displays() const = 0; - virtual boost::optional> get_lamp(std::string name) = 0; - virtual boost::optional> get_solenoid(std::string name) = 0; - virtual boost::optional> get_sound(std::string name) = 0; - virtual boost::optional> get_display(char number) = 0; + virtual std::vector> get_lamps() const = 0; + virtual std::vector> get_solenoids() const = 0; + virtual std::vector> get_sounds() const = 0; + virtual std::vector> get_displays() const = 0; + + virtual boost::optional> get_lamp(const std::string &name) const = 0; + virtual boost::optional> get_solenoid(const std::string &name) const = 0; + virtual boost::optional> get_sound(const std::string &name) const = 0; + virtual boost::optional> get_display(uint8_t number) const = 0; }; } /* namespace output */ diff --git a/FlippR-Driver/src/input/DistributingEvent.cpp b/FlippR-Driver/src/input/DistributingEvent.cpp index 6bc2472..82b72ae 100644 --- a/FlippR-Driver/src/input/DistributingEvent.cpp +++ b/FlippR-Driver/src/input/DistributingEvent.cpp @@ -9,7 +9,7 @@ namespace flippR_driver namespace input { -DistributingEvent::DistributingEvent(char address, int priority, std::string name, +DistributingEvent::DistributingEvent(uint8_t address, int priority, std::string name, std::chrono::milliseconds bounce_time, std::shared_ptr event_notifier) : Event(address, priority, std::move(name)), diff --git a/FlippR-Driver/src/input/DistributingEvent.h b/FlippR-Driver/src/input/DistributingEvent.h index 3f82bab..44ede56 100644 --- a/FlippR-Driver/src/input/DistributingEvent.h +++ b/FlippR-Driver/src/input/DistributingEvent.h @@ -16,7 +16,7 @@ namespace input class DistributingEvent : public Event { public: - DistributingEvent(char address, int priority, std::string name, + DistributingEvent(uint8_t address, int priority, std::string name, std::chrono::milliseconds bounce_time, std::shared_ptr event_notifier); void active(); diff --git a/FlippR-Driver/src/input/InputDriverFactory.cpp b/FlippR-Driver/src/input/InputDriverFactory.cpp index 0d32c3f..7a8607f 100644 --- a/FlippR-Driver/src/input/InputDriverFactory.cpp +++ b/FlippR-Driver/src/input/InputDriverFactory.cpp @@ -76,7 +76,7 @@ namespace std::shared_ptr create_event(json &json_event, std::shared_ptr event_notifier, int bounce_time) { std::string name = json_event.at("name"); - char address = json_event.at("address").get(); + uint8_t address = json_event.at("address").get(); int priority = json_event.at("priority").get(); set_individual_bounce_time(json_event, bounce_time); diff --git a/FlippR-Driver/src/output/DisplayController.h b/FlippR-Driver/src/output/DisplayController.h index 60f95f8..2dbc939 100644 --- a/FlippR-Driver/src/output/DisplayController.h +++ b/FlippR-Driver/src/output/DisplayController.h @@ -17,6 +17,9 @@ class DisplayController public: virtual ~DisplayController () = default; + + virtual void activate_displays() const = 0; + virtual void deactivate_displays() const = 0; }; } /* namespace output */ diff --git a/FlippR-Driver/src/output/OutputDriverFactory.cpp b/FlippR-Driver/src/output/OutputDriverFactory.cpp index 6ae09e2..7bf96cb 100644 --- a/FlippR-Driver/src/output/OutputDriverFactory.cpp +++ b/FlippR-Driver/src/output/OutputDriverFactory.cpp @@ -248,9 +248,10 @@ std::shared_ptr create_sound(nlohmann::json &sound_json, std exit(EXIT_FAILURE); } } -std::map> create_displays(std::istream &display_config) + +std::map> create_displays(std::istream &display_config) { - std::map> displays; + std::map> displays; return displays; } diff --git a/FlippR-Driver/src/output/OutputDriverFactory.h b/FlippR-Driver/src/output/OutputDriverFactory.h index d2441d3..fddcc6d 100644 --- a/FlippR-Driver/src/output/OutputDriverFactory.h +++ b/FlippR-Driver/src/output/OutputDriverFactory.h @@ -36,7 +36,7 @@ namespace OutputDriverFactory std::chrono::milliseconds get_deactivation_time(nlohmann::json &json); - std::map> create_displays(std::istream &display_config); + std::map> create_displays(std::istream &display_config); std::map parse_pins_driver_board(nlohmann::json &driver_board_config); std::map parse_pins_sound_board(nlohmann::json &sound_board_config); diff --git a/FlippR-Driver/src/output/impl/DisplayBoardPinController.cpp b/FlippR-Driver/src/output/impl/DisplayBoardPinController.cpp index fc1a65c..e56a95b 100644 --- a/FlippR-Driver/src/output/impl/DisplayBoardPinController.cpp +++ b/FlippR-Driver/src/output/impl/DisplayBoardPinController.cpp @@ -32,7 +32,7 @@ void DisplayBoardPinController::deactivate_displays() const void DisplayBoardPinController::write_display(const items::Display &display) const { - std::vector content = display.get_content(); + std::vector content = display.get_content(); for(uint8_t i = 0; i < content.size(); i++) { diff --git a/FlippR-Driver/src/output/impl/DisplayController.cpp b/FlippR-Driver/src/output/impl/DisplayController.cpp index 0739119..579bcc5 100644 --- a/FlippR-Driver/src/output/impl/DisplayController.cpp +++ b/FlippR-Driver/src/output/impl/DisplayController.cpp @@ -42,6 +42,16 @@ void DisplayController::cycle_displays() const } } +void DisplayController::activate_displays() const +{ + pin_controller->activate_displays(); +} + +void DisplayController::deactivate_displays() const +{ + pin_controller->deactivate_displays(); +} + } } } diff --git a/FlippR-Driver/src/output/impl/DisplayController.h b/FlippR-Driver/src/output/impl/DisplayController.h index 0cb5816..87d9d79 100644 --- a/FlippR-Driver/src/output/impl/DisplayController.h +++ b/FlippR-Driver/src/output/impl/DisplayController.h @@ -29,6 +29,9 @@ public: explicit DisplayController(std::vector> displays, std::unique_ptr pin_controller); ~DisplayController() override; + void activate_displays() const override; + void deactivate_displays() const override; + private: void cycle_displays() const; diff --git a/FlippR-Driver/src/output/impl/OutputDriver.cpp b/FlippR-Driver/src/output/impl/OutputDriver.cpp index 4a5e856..25d54af 100644 --- a/FlippR-Driver/src/output/impl/OutputDriver.cpp +++ b/FlippR-Driver/src/output/impl/OutputDriver.cpp @@ -19,11 +19,21 @@ namespace impl using namespace items; -OutputDriver::OutputDriver(std::unique_ptr display_controller, std::map> solenoids, std::map> lamps, std::map> sounds, std::map> displays) +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)) {} -std::vector> OutputDriver::get_sounds() +void OutputDriver::activate_displays() const +{ + display_controller->activate_displays(); +} + +void OutputDriver::deactivate_displays() const +{ + display_controller->deactivate_displays(); +} + +std::vector> OutputDriver::get_sounds() const { std::vector> sounds; @@ -32,7 +42,7 @@ std::vector> OutputDriver::get_sounds() return sounds; } -std::vector> OutputDriver::get_displays() +std::vector> OutputDriver::get_displays() const { std::vector> displays; @@ -41,7 +51,7 @@ std::vector> OutputDriver::get_displays() return displays; } -std::vector> OutputDriver::get_lamps() +std::vector> OutputDriver::get_lamps() const { std::vector> lamps; @@ -50,7 +60,7 @@ std::vector> OutputDriver::get_lamps() return lamps; } -std::vector> OutputDriver::get_solenoids() +std::vector> OutputDriver::get_solenoids() const { std::vector> solenoids; @@ -74,7 +84,7 @@ boost::optional> OutputDriver::get_sound(const std return this->sounds.find(name)->second; } -boost::optional> OutputDriver::get_display(uint8_tnumber) const +boost::optional> OutputDriver::get_display(uint8_t number) const { return this->displays.find(number)->second; } diff --git a/FlippR-Driver/src/output/impl/OutputDriver.h b/FlippR-Driver/src/output/impl/OutputDriver.h index bc15660..239de0e 100644 --- a/FlippR-Driver/src/output/impl/OutputDriver.h +++ b/FlippR-Driver/src/output/impl/OutputDriver.h @@ -23,19 +23,23 @@ namespace impl class OutputDriver : public output::OutputDriver { public: - OutputDriver(std::unique_ptr display_controller, std::map> solenoids, std::map> lamps, std::map> sounds, std::map> displays); + OutputDriver(std::unique_ptr display_controller, std::map> solenoids, std::map> lamps, std::map> sounds, std::map> displays); ~OutputDriver() override = default; - // todo what is flipper_relay ? - std::vector> get_lamps() override; - std::vector> get_solenoids() override; - std::vector> get_sounds() override; - std::vector> get_displays() override; - boost::optional> get_lamp(const std::string &name) override; - boost::optional> get_solenoid(const std::&string name) override; - boost::optional> get_sound(const std::string &name) override; - boost::optional> get_display(uint8_tnumber) override; + void activate_displays() const override; + void deactivate_displays() const override; + + // todo what is flipper_relay ? + std::vector> get_lamps() const override; + std::vector> get_solenoids() const override; + std::vector> get_sounds() const override; + std::vector> get_displays() const override; + + boost::optional> get_lamp(const std::string &name) const override; + boost::optional> get_solenoid(const std::string &name) const override; + boost::optional> get_sound(const std::string &name) const override; + boost::optional> get_display(uint8_t number) const override; private: std::unique_ptr display_controller; @@ -44,7 +48,7 @@ private: const std::map> solenoids; const std::map> sounds; - const std::map> displays; + const std::map> displays; }; } diff --git a/FlippR-Driver/src/output/items/Display.h b/FlippR-Driver/src/output/items/Display.h index 7c07ba9..3dae2da 100644 --- a/FlippR-Driver/src/output/items/Display.h +++ b/FlippR-Driver/src/output/items/Display.h @@ -25,7 +25,7 @@ public: virtual ~Display() = default; virtual uint8_t get_address() const = 0; - virtual std::vector get_content() const = 0; + virtual std::vector get_content() const = 0; }; } diff --git a/FlippR-Driver/src/output/items/impl/Display.h b/FlippR-Driver/src/output/items/impl/Display.h index 9452817..e185e1b 100644 --- a/FlippR-Driver/src/output/items/impl/Display.h +++ b/FlippR-Driver/src/output/items/impl/Display.h @@ -29,13 +29,13 @@ public: virtual ~Display() = default; virtual void write_score(int score); - virtual void write_content(std::array content); + virtual void write_content(std::array content); - std::vector get_content() const override; + std::vector get_content() const override; uint8_t get_address() const override; public: - std::array content; + std::array content; private: int address; diff --git a/FlippR-Driver/src/output/items/impl/Display.hpp b/FlippR-Driver/src/output/items/impl/Display.hpp index 5a1e54d..c02ed11 100644 --- a/FlippR-Driver/src/output/items/impl/Display.hpp +++ b/FlippR-Driver/src/output/items/impl/Display.hpp @@ -57,16 +57,16 @@ std::string Display::fit_string(std::string& score_string) } template -void Display::write_content( std::array content) +void Display::write_content( std::array content) { this->content = content; } -std::vector Display::get_content() +std::vector Display::get_content() { // todo: expensive? - return std::vector(content, content + DigitCount); + return std::vector(content, content + DigitCount); } }