still the biggest refactor

This commit is contained in:
Jonas Zeunert
2018-12-14 02:44:53 +01:00
parent 67edde9078
commit 8e12b3f3fa
23 changed files with 137 additions and 147 deletions

View File

@@ -7,6 +7,8 @@
#include "output/items/Item.h"
#include <output/DriverBoardPinController.h>
#include <cstdint>
namespace flippR_driver
@@ -19,10 +21,13 @@ namespace items
class DriverBoardItem : public Item
{
public:
DriverBoardItem(std::shared_ptr<OutputPinController> output_gpio_interface, uint8_t address, std::string name) :
Item(std::move(output_gpio_interface), address, std::move(name)) {}
DriverBoardItem(std::shared_ptr<DriverBoardPinController> pin_controller, uint8_t address, std::string name) :
pin_controller(std::move(pin_controller)), Item(address, std::move(name)) {}
~DriverBoardItem() override = default;
protected:
const std::shared_ptr<DriverBoardPinController> pin_controller;
};
}

View File

@@ -12,10 +12,8 @@ namespace output
namespace items
{
Item::Item(std::shared_ptr<OutputPinController> output_gpio_interface, uint8_t address, std::string name) :
address(address),
name(std::move(name)),
gpio_interface(std::move(output_gpio_interface))
Item::Item(uint8_t address, std::string name) :
address(address), name(std::move(name))
{}
uint8_t Item::get_address()

View File

@@ -18,15 +18,13 @@ namespace flippR_driver
namespace output
{
class OutputPinController;
namespace items
{
class Item : public IItem
{
public:
Item(std::shared_ptr<OutputPinController> output_gpio_interface, uint8_t address, std::string name);
Item(uint8_t address, std::string name);
~Item() override = default;
uint8_t get_address() override;
@@ -36,8 +34,6 @@ protected:
const uint8_t address;
const std::string name;
const std::shared_ptr<OutputPinController> gpio_interface;
};
}

View File

@@ -15,18 +15,18 @@ namespace output
namespace items
{
Lamp::Lamp(std::shared_ptr<OutputPinController> output_gpio_interface, uint8_t address, std::string name) :
DriverBoardItem(std::move(output_gpio_interface), address, std::move(name)), activated(false)
Lamp::Lamp(std::shared_ptr<DriverBoardPinController> pin_controller, uint8_t address, std::string name) :
DriverBoardItem(std::move(pin_controller), address, std::move(name)), activated(false)
{}
void Lamp::activate()
{
gpio_interface->activate(this);
pin_controller->activate(this);
}
void Lamp::deactivate()
{
gpio_interface->deactivate(this);
pin_controller->deactivate(this);
}
}

View File

@@ -21,7 +21,7 @@ namespace items
class Lamp : public DriverBoardItem, public ILamp
{
public:
Lamp(std::shared_ptr<OutputPinController> output_gpio_interface, uint8_t address, std::string name);
Lamp(std::shared_ptr<DriverBoardPinController> pin_controller, uint8_t address, std::string name);
~Lamp() override = default;
void activate() override;

View File

@@ -16,17 +16,17 @@ namespace output
namespace items
{
Solenoid::Solenoid(std::shared_ptr<OutputPinController> output_gpio_interface, uint8_t address, std::string name, std::chrono::milliseconds deactivation_time):
DriverBoardItem(std::move(output_gpio_interface), address, std::move(name)), deactivation_time(deactivation_time)
Solenoid::Solenoid(std::shared_ptr<DriverBoardPinController> 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)
{}
void Solenoid::triggerTask()
{
gpio_interface->activate(this);
pin_controller->activate(this);
std::this_thread::sleep_for(deactivation_time);
gpio_interface->deactivate(this);
pin_controller->deactivate(this);
}
void Solenoid::trigger()

View File

@@ -24,7 +24,7 @@ namespace items
class Solenoid : public DriverBoardItem, public ISolenoid
{
public:
Solenoid(std::shared_ptr<OutputPinController> output_gpio_interface, u_int8_t address, std::string name, std::chrono::milliseconds deactivation_time);
Solenoid(std::shared_ptr<DriverBoardPinController> pin_controller, u_int8_t address, std::string name, std::chrono::milliseconds deactivation_time);
~Solenoid() override = default;
void trigger() override;

View File

@@ -7,7 +7,7 @@
#include "Sound.h"
#include "output/OutputPinController.h"
#include <output/SoundBoardPinController.h>
namespace flippR_driver
{
@@ -16,8 +16,8 @@ namespace output
namespace items
{
Sound::Sound(std::shared_ptr<OutputPinController> output_gpio_interface, uint8_t address, std::string name, std::chrono::milliseconds deactivation_time, u_int id) :
Item(std::move(output_gpio_interface), address, std::move(name)), deactivation_time(deactivation_time), id(id)
Sound::Sound(std::shared_ptr<SoundBoardPinController> 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)
{}
void Sound::play()
@@ -27,11 +27,11 @@ void Sound::play()
void Sound::playTask()
{
gpio_interface->activate(this);
pin_controller->activate(this);
std::this_thread::sleep_for(deactivation_time);
gpio_interface->deactivate(this);
pin_controller->deactivate(this);
}
}

View File

@@ -20,6 +20,9 @@ namespace flippR_driver
{
namespace output
{
class SoundBoardPinController;
namespace items
{
@@ -29,12 +32,14 @@ public:
u_int id;
public:
Sound(std::shared_ptr<OutputPinController> output_gpio_interface, uint8_t address, std::string name, std::chrono::milliseconds deactivation_time, u_int id);
Sound(std::shared_ptr<SoundBoardPinController> pin_controller, uint8_t address, std::string name, std::chrono::milliseconds deactivation_time, u_int id);
~Sound() override = default;
void play() override;
private:
const std::shared_ptr<SoundBoardPinController> pin_controller;
std::chrono::milliseconds deactivation_time;
std::future<void> play_task;