still not done with refactoring but enough for today
This commit is contained in:
@@ -54,7 +54,7 @@ std::shared_ptr<OutputDriver> get_OutputDriver(std::istream &output_pin_config,
|
||||
boost::copy(displays | boost::adaptors::map_values, std::back_inserter(displays_vec));
|
||||
std::unique_ptr<DisplayController> display_controller(new impl::DisplayController(displays_vec, std::move(display_board_pin_controller)));
|
||||
|
||||
return std::make_shared<OutputDriver>(display_controller, solenoids, lamps, sounds, displays);
|
||||
return std::make_shared<impl::OutputDriver>(std::move(display_controller), solenoids, lamps, sounds, displays);
|
||||
}
|
||||
|
||||
std::map<std::string, uint8_t> parse_pins_driver_board(json &driver_board_config)
|
||||
@@ -114,7 +114,7 @@ std::map<std::string, uint8_t> parse_pins_sound_board(json &sound_board_config)
|
||||
return pins_sound;
|
||||
}
|
||||
|
||||
std::map<std::string, uint8_t> parse_pins_display(json &display_board_config)
|
||||
std::map<std::string, uint8_t> parse_pins_display_board(json &display_board_config)
|
||||
{
|
||||
std::map<std::string, uint8_t> pins_display;
|
||||
try
|
||||
@@ -131,7 +131,7 @@ std::map<std::string, uint8_t> parse_pins_display(json &display_board_config)
|
||||
return pins_display;
|
||||
}
|
||||
|
||||
std::map<std::string, std::shared_ptr<items::ISolenoid>> create_solenoids(std::istream &solenoid_config, std::shared_ptr<OutputPinController> output_gpio_interface)
|
||||
std::map<std::string, std::shared_ptr<items::ISolenoid>> create_solenoids(std::istream &solenoid_config, std::shared_ptr<DriverBoardPinController> &output_gpio_interface)
|
||||
{
|
||||
std::map<std::string, std::shared_ptr<items::ISolenoid>> solenoids;
|
||||
|
||||
@@ -148,7 +148,7 @@ std::map<std::string, std::shared_ptr<items::ISolenoid>> create_solenoids(std::i
|
||||
return solenoids;
|
||||
}
|
||||
|
||||
std::map<std::string, std::shared_ptr<items::ILamp>> create_lamps(std::istream &lamp_config, std::shared_ptr<OutputPinController> output_gpio_interface)
|
||||
std::map<std::string, std::shared_ptr<items::ILamp>> create_lamps(std::istream &lamp_config, std::shared_ptr<DriverBoardPinController> &output_gpio_interface)
|
||||
{
|
||||
std::map<std::string, std::shared_ptr<items::ILamp>> lamps;
|
||||
|
||||
@@ -164,7 +164,7 @@ std::map<std::string, std::shared_ptr<items::ILamp>> create_lamps(std::istream &
|
||||
return lamps;
|
||||
}
|
||||
|
||||
std::map<std::string, std::shared_ptr<items::ISound>> create_sounds(std::istream &sound_config, std::shared_ptr<OutputPinController> output_gpio_interface)
|
||||
std::map<std::string, std::shared_ptr<items::ISound>> create_sounds(std::istream &sound_config, std::shared_ptr<SoundBoardPinController> &output_gpio_interface)
|
||||
{
|
||||
std::map<std::string, std::shared_ptr<items::ISound>> sounds;
|
||||
|
||||
@@ -196,7 +196,7 @@ std::chrono::milliseconds get_deactivation_time(nlohmann::json &json)
|
||||
}
|
||||
}
|
||||
|
||||
std::shared_ptr<items::Solenoid> create_solenoid(nlohmann::json &solenoid_json, std::shared_ptr<DriverBoardPinController> &pin_controller, std::chrono::milliseconds deactivation_time)
|
||||
std::shared_ptr<items::Solenoid> create_solenoid(nlohmann::json &solenoid_json, std::shared_ptr<DriverBoardPinController> &pin_controller, std::chrono::milliseconds &deactivation_time)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -232,7 +232,7 @@ std::shared_ptr<items::Lamp> create_lamp(nlohmann::json &lamp_json, std::shared_
|
||||
}
|
||||
}
|
||||
|
||||
std::shared_ptr<items::Sound> create_sound(nlohmann::json &sound_json, std::shared_ptr<SoundBoardPinController> &pin_controller, std::chrono::milliseconds deactivation_time)
|
||||
std::shared_ptr<items::Sound> create_sound(nlohmann::json &sound_json, std::shared_ptr<SoundBoardPinController> &pin_controller, std::chrono::milliseconds &deactivation_time)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -247,6 +247,12 @@ std::shared_ptr<items::Sound> create_sound(nlohmann::json &sound_json, std::shar
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
std::map<char, std::shared_ptr<items::IDisplay>> create_displays(std::istream &display_config)
|
||||
{
|
||||
std::map<char, std::shared_ptr<items::IDisplay>> displays;
|
||||
|
||||
return displays;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,13 +26,13 @@ namespace OutputDriverFactory
|
||||
namespace
|
||||
{
|
||||
std::map<std::string, std::shared_ptr<items::ISolenoid>> create_solenoids(std::istream &solenoid_config, std::shared_ptr<DriverBoardPinController> &pin_controller);
|
||||
std::shared_ptr<items::Solenoid> create_solenoid(nlohmann::json &solenoid_json, std::shared_ptr<DriverBoardPinController> pin_controller, std::chrono::milliseconds deactivation_time);
|
||||
std::shared_ptr<items::Solenoid> create_solenoid(nlohmann::json &solenoid_json, std::shared_ptr<DriverBoardPinController> &pin_controller, std::chrono::milliseconds &deactivation_time);
|
||||
|
||||
std::map<std::string, std::shared_ptr<items::ILamp>> create_lamps(std::istream &lamp_config, std::shared_ptr<DriverBoardPinController> &pin_controller);
|
||||
std::shared_ptr<items::Lamp> create_lamp(nlohmann::json &lamp_json, std::shared_ptr<DriverBoardPinController> pin_controller);
|
||||
std::shared_ptr<items::Lamp> create_lamp(nlohmann::json &lamp_json, std::shared_ptr<DriverBoardPinController> &pin_controller);
|
||||
|
||||
std::map<std::string, std::shared_ptr<items::ISound>> create_sounds(std::istream &sound_config, std::shared_ptr<SoundBoardPinController> &pin_controller);
|
||||
std::shared_ptr<items::Sound> create_sound(nlohmann::json &sound_json, std::shared_ptr<SoundBoardPinController> pin_controller, std::chrono::milliseconds deactivation_time);
|
||||
std::shared_ptr<items::Sound> create_sound(nlohmann::json &sound_json, std::shared_ptr<SoundBoardPinController> &pin_controller, std::chrono::milliseconds &deactivation_time);
|
||||
|
||||
std::chrono::milliseconds get_deactivation_time(nlohmann::json &json);
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ void SoundBoardPinController::deactivate(const items::Sound &sound)
|
||||
}
|
||||
|
||||
|
||||
void SoundBoardPinController::write_sound_address(const uint8_t address)
|
||||
void SoundBoardPinController::write_sound_address(const uint8_t address) const
|
||||
{
|
||||
write_pin(pins_sound.at("A"), address & 0b0000001u);
|
||||
write_pin(pins_sound.at("B"), address & 0b0000010u);
|
||||
@@ -47,12 +47,12 @@ void SoundBoardPinController::write_sound_address(const uint8_t address)
|
||||
write_pin(pins_sound.at("G"), address & 0b1000000u);
|
||||
}
|
||||
|
||||
void SoundBoardPinController::fire_sound(const bool fire)
|
||||
void SoundBoardPinController::fire_sound(const bool fire) const
|
||||
{
|
||||
PinController::write_pin(pins_sound.at("fire"), fire);
|
||||
}
|
||||
|
||||
void SoundBoardPinController::write_pin(const uint8_t pin, const bool value)
|
||||
void SoundBoardPinController::write_pin(const uint8_t pin, const bool value) const
|
||||
{
|
||||
PinController::write_pin(pins_sound.at("pin_base") + pin, value);
|
||||
}
|
||||
|
||||
@@ -29,10 +29,10 @@ public:
|
||||
void deactivate(const items::Sound &sound) override;
|
||||
|
||||
private:
|
||||
void write_sound_address(const uint8_t address);
|
||||
void fire_sound(const bool fire);
|
||||
void write_sound_address(const uint8_t address) const;
|
||||
void fire_sound(const bool fire) const;
|
||||
|
||||
void write_pin(const uint8_t pin, const bool value);
|
||||
void write_pin(const uint8_t pin, const bool value) const;
|
||||
|
||||
private:
|
||||
std::shared_ptr<std::mutex> output_item_mutex;
|
||||
|
||||
@@ -23,8 +23,8 @@ class IItem
|
||||
public:
|
||||
virtual ~IItem() = default;
|
||||
|
||||
virtual uint8_t get_address() = 0;
|
||||
virtual std::string get_name() = 0;
|
||||
virtual uint8_t get_address() const = 0;
|
||||
virtual std::string get_name() const = 0;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -16,12 +16,12 @@ Item::Item(uint8_t address, std::string name) :
|
||||
address(address), name(std::move(name))
|
||||
{}
|
||||
|
||||
uint8_t Item::get_address()
|
||||
uint8_t Item::get_address() const
|
||||
{
|
||||
return this->address;
|
||||
}
|
||||
|
||||
std::string Item::get_name()
|
||||
std::string Item::get_name() const
|
||||
{
|
||||
return this->name;
|
||||
}
|
||||
|
||||
@@ -27,8 +27,8 @@ public:
|
||||
Item(uint8_t address, std::string name);
|
||||
~Item() override = default;
|
||||
|
||||
uint8_t get_address() override;
|
||||
std::string get_name() override;
|
||||
uint8_t get_address() const override;
|
||||
std::string get_name() const override;
|
||||
|
||||
protected:
|
||||
const uint8_t address;
|
||||
|
||||
@@ -21,12 +21,12 @@ DriverBoardItem(std::move(pin_controller), address, std::move(name)), activated(
|
||||
|
||||
void Lamp::activate()
|
||||
{
|
||||
pin_controller->activate(this);
|
||||
pin_controller->activate(*this);
|
||||
}
|
||||
|
||||
void Lamp::deactivate()
|
||||
{
|
||||
pin_controller->deactivate(this);
|
||||
pin_controller->deactivate(*this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -22,11 +22,11 @@ Solenoid::Solenoid(std::shared_ptr<DriverBoardPinController> pin_controller, uin
|
||||
|
||||
void Solenoid::triggerTask()
|
||||
{
|
||||
pin_controller->activate(this);
|
||||
pin_controller->activate(*this);
|
||||
|
||||
std::this_thread::sleep_for(deactivation_time);
|
||||
|
||||
pin_controller->deactivate(this);
|
||||
pin_controller->deactivate(*this);
|
||||
}
|
||||
|
||||
void Solenoid::trigger()
|
||||
|
||||
@@ -27,11 +27,11 @@ void Sound::play()
|
||||
|
||||
void Sound::playTask()
|
||||
{
|
||||
pin_controller->activate(this);
|
||||
pin_controller->activate(*this);
|
||||
|
||||
std::this_thread::sleep_for(deactivation_time);
|
||||
|
||||
pin_controller->deactivate(this);
|
||||
pin_controller->deactivate(*this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -10,11 +10,12 @@
|
||||
#include "input/EventHandler.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace flippR_driver
|
||||
{
|
||||
namespace utility
|
||||
{
|
||||
class InputSocketHandler : public SocketHandler, public EventHandler
|
||||
class InputSocketHandler : public SocketHandler, public input::EventHandler
|
||||
{
|
||||
public:
|
||||
explicit InputSocketHandler(boost::asio::io_service &service, std::string socket_file = "/var/run/user/" + std::to_string(getuid())
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
#ifndef FLIPPR_DRIVER_OUTPUTSOCKETHANDLER_H
|
||||
#define FLIPPR_DRIVER_OUTPUTSOCKETHANDLER_H
|
||||
|
||||
#include "SocketHandler.h"
|
||||
|
||||
namespace flippR_driver
|
||||
{
|
||||
namespace utility
|
||||
|
||||
Reference in New Issue
Block a user