still not done with refactoring but enough for today

This commit is contained in:
Jonas Zeunert
2018-12-14 02:56:29 +01:00
parent 8e12b3f3fa
commit ff3376b9d7
12 changed files with 38 additions and 29 deletions

View File

@@ -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;
}
}
}

View File

@@ -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);

View File

@@ -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);
}

View File

@@ -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;

View File

@@ -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;
};
}

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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);
}
}

View File

@@ -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()

View File

@@ -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);
}
}

View File

@@ -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())

View File

@@ -5,6 +5,8 @@
#ifndef FLIPPR_DRIVER_OUTPUTSOCKETHANDLER_H
#define FLIPPR_DRIVER_OUTPUTSOCKETHANDLER_H
#include "SocketHandler.h"
namespace flippR_driver
{
namespace utility