Adapted output items.

This commit is contained in:
Johannes Wendel
2019-07-15 23:59:46 +02:00
parent 25a937cc2d
commit d113e206c0
15 changed files with 20 additions and 22 deletions

View File

@@ -10,6 +10,8 @@
#include "utility/config.h"
#include "wiringPi/wiringPi.h"
#include "wiringPi/mcp23017.h"
#include "json/json.hpp"
namespace flippR_driver
@@ -42,5 +44,10 @@ bool PinController::read_pin(uint8_t address)
return PULLDOWN == digitalRead(address);
}
void PinController::initialize_port_expander(const uint8_t i2c_address, const uint8_t pin_base)
{
mcp23017Setup(pin_base, i2c_address);
}
}

View File

@@ -23,6 +23,7 @@ public:
virtual ~PinController() = default;
static void initialize_output_pin(const uint8_t address);
void initialize_port_expander(const uint8_t i2c_address, const uint8_t pin_base);
protected:
static void initialize_input_pin(uint8_t address);

View File

@@ -8,7 +8,6 @@
#include "OutputPinController.h"
#include "utility/config.h"
#include "wiringPi/mcp23017.h"
namespace flippR_driver
@@ -21,12 +20,5 @@ void OutputPinController::initialize_i2c_address(const uint8_t i2c_address, cons
mcp23017Setup(pin_base, i2c_address);
}
void OutputPinController::initialize_port_expander(const uint8_t i2c_address, const uint8_t pin_base)
{
mcp23017Setup(pin_base, i2c_address);
}
}
}

View File

@@ -27,8 +27,6 @@ class OutputPinController : public PinController
public:
virtual ~OutputPinController() = default;
void initialize_port_expander(const uint8_t i2c_address, const uint8_t pin_base);
protected:
static void initialize_i2c_address(const uint8_t i2c_address, const uint8_t pin_base);
static void initialize_pins_output(const uint8_t pin_base, std::map<std::string, uint8_t>::iterator begin, std::map<std::string, uint8_t>::iterator end);

View File

@@ -2,7 +2,7 @@
// Created by rhetenor on 14.12.18.
//
#include "DriverBoardPinController.h"
#include "output/DriverBoardPinController.h"
#include "output/items/DriverBoardItem.h"

View File

@@ -6,7 +6,7 @@
using namespace flippR_driver::output;
items::detail::DriverBoardItem::DriverBoardItem(std::shared_ptr<PinController> pin_controller, const uint8_t address, const uint8_t pin_base) :
items::detail::DriverBoardItem::DriverBoardItem(std::shared_ptr<PinController> pin_controller, const uint8_t & address, const uint8_t & pin_base) :
address(pin_base + address)
{
pin_controller->initialize_output_pin(this->address);

View File

@@ -21,7 +21,7 @@ namespace detail
class DriverBoardItem : public output::items::DriverBoardItem
{
public:
DriverBoardItem(std::shared_ptr<PinController> pin_controller, const uint8_t address, const uint8_t pin_base);
DriverBoardItem(std::shared_ptr<PinController> pin_controller, const uint8_t & address, const uint8_t & pin_base);
~DriverBoardItem() override = default;

View File

@@ -20,8 +20,8 @@ namespace items
namespace detail
{
Flipper::Flipper(std::shared_ptr<DriverBoardPinController> pin_controller, uint8_t address, std::string name) :
Item(std::move(name)), DriverBoardItem(address), pin_controller(std::move(pin_controller))
Flipper::Flipper(std::shared_ptr<DriverBoardPinController> pin_controller, const uint8_t & address, const uint8_t & pin_base, const std::string & name) :
Item(std::move(name)), DriverBoardItem(pin_controller, address, pin_base), pin_controller(std::move(pin_controller))
{
CLOG(INFO, OUTPUT_LOGGER) << "Created Flipper relay " << this->name << " with address " << this->address;
}

View File

@@ -23,7 +23,7 @@ namespace detail
class Flipper : public detail::Item, public items::Flipper, public detail::DriverBoardItem
{
public:
Flipper(std::shared_ptr<DriverBoardPinController> pin_controller, uint8_t address, std::string name);
Flipper(std::shared_ptr<DriverBoardPinController> pin_controller, const uint8_t & address, const uint8_t & pin_base, const std::string & name);
~Flipper() override;
void activate() override;

View File

@@ -19,7 +19,7 @@ namespace items
namespace detail
{
Lamp::Lamp(std::shared_ptr<DriverBoardPinController> pin_controller, const uint8_t address, const uint8_t pin_base, const std::string name) :
Lamp::Lamp(std::shared_ptr<DriverBoardPinController> pin_controller, const uint8_t & address, const uint8_t & pin_base, const std::string & name) :
detail::Item(std::move(name)), DriverBoardItem(pin_controller, address, pin_base), pin_controller(std::move(pin_controller)), activated(false)
{
CLOG(INFO, OUTPUT_LOGGER) << "Created lamp " << name << " with address " << address;

View File

@@ -27,7 +27,7 @@ namespace detail
class Lamp : public detail::DriverBoardItem, public detail::Item, public items::Lamp
{
public:
Lamp(std::shared_ptr<DriverBoardPinController> pin_controller, const uint8_t address, const uint8_t pin_base, const std::string name);
Lamp(std::shared_ptr<DriverBoardPinController> pin_controller, const uint8_t & address, const uint8_t & pin_base, const std::string & name);
~Lamp() override = default;
void activate() override;

View File

@@ -18,7 +18,7 @@ namespace items
namespace detail
{
Solenoid::Solenoid(std::shared_ptr<DriverBoardPinController> pin_controller, const uint8_t address, const uint8_t pin_base, const std::string name, std::chrono::milliseconds deactivation_time)
Solenoid::Solenoid(std::shared_ptr<DriverBoardPinController> pin_controller, const uint8_t & address, const uint8_t & pin_base, const std::string & name, const std::chrono::milliseconds & deactivation_time)
: detail::Item(std::move(name)), DriverBoardItem(pin_controller, address, pin_base), pin_controller(pin_controller), deactivation_time(deactivation_time)
{
CLOG(INFO, OUTPUT_LOGGER) << "Created solenoid " << name << " with address " << address;

View File

@@ -29,7 +29,7 @@ namespace detail
class Solenoid : public DriverBoardItem, public detail::Item, public items::Solenoid
{
public:
Solenoid(std::shared_ptr<DriverBoardPinController> pin_controller, const uint8_t address, const uint8_t pin_base, const std::string name, std::chrono::milliseconds deactivation_time);
Solenoid(std::shared_ptr<DriverBoardPinController> pin_controller, const uint8_t & address, const uint8_t & pin_base, const std::string & name, const std::chrono::milliseconds & deactivation_time);
~Solenoid() override = default;
void trigger() override;

View File

@@ -20,7 +20,7 @@ namespace items
namespace detail
{
Sound::Sound(std::shared_ptr<SoundBoardPinController> pin_controller, const uint8_t address, const uint8_t pin_base, const std::string name, std::chrono::milliseconds deactivation_time, u_int id)
Sound::Sound(std::shared_ptr<SoundBoardPinController> pin_controller, const uint8_t & address, const uint8_t & pin_base, const std::string & name, const std::chrono::milliseconds & deactivation_time, u_int id)
: detail::Item(std::move(name)), DriverBoardItem(pin_controller, address, pin_base), pin_controller(std::move(pin_controller)), deactivation_time(deactivation_time), id(id)
{
CLOG(INFO, OUTPUT_LOGGER) << "Created sound " << id << " with name " << name << " and address " << address;

View File

@@ -35,7 +35,7 @@ public:
u_int id;
public:
Sound(std::shared_ptr<SoundBoardPinController> pin_controller, const uint8_t address, const uint8_t pin_base, const std::string name, std::chrono::milliseconds deactivation_time, u_int id);
Sound(std::shared_ptr<SoundBoardPinController> pin_controller, const uint8_t & address, const uint8_t & pin_base, const std::string & name, const std::chrono::milliseconds & deactivation_time, u_int id);
~Sound() override = default;
void play() override;