/* * OutputDriver.h * * Created on: Aug 2, 2018 * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert */ #ifndef _SRC_OUTPUT_IOUTPUTDRIVER_H_ #define _SRC_OUTPUT_IOUTPUTDRIVER_H_ #include #include #include #include #include "output/DisplayController.h" #include "output/items/Solenoid.h" #include "output/items/Lamp.h" #include "output/items/Sound.h" #include "output/items/Display.h" #include "output/items/Flipper.h" namespace flippR_driver { namespace output { class OutputDriver { public: OutputDriver(std::shared_ptr display_controller, std::map> solenoids, std::map> lamps, std::map> sounds, std::map> flippers, std::map> displays); ~OutputDriver() = default; void activate_displays() const; void deactivate_displays() const; void activate_all_lamps() const; void deactivate_all_lamps() const; void rotate_all_lamps() const; void activate_all_flipper_relays() const; void deactivate_all_flipper_relays() const; // todo driver board run for activate/deactivate? // todo what is flipper_relay ? std::vector> get_lamps() const; std::vector> get_solenoids() const; std::vector> get_sounds() const; std::vector> get_flippers() const; std::vector> get_displays() const; boost::optional> get_lamp(const std::string &name) const; boost::optional> get_solenoid(const std::string &name) const; boost::optional> get_sound(const std::string &name) const; boost::optional> get_flipper(const std::string &name) const; boost::optional> get_display(uint8_t number) const; private: std::shared_ptr display_controller; const std::map> lamps; const std::map> solenoids; const std::map> sounds; const std::map> flippers; const std::map> displays; }; } /* namespace output */ } #endif