added fliper items

This commit is contained in:
Johannes Wendel
2019-05-06 19:08:57 +02:00
parent caa72bd5fa
commit 94b768be4d
9 changed files with 413 additions and 729 deletions

View File

@@ -0,0 +1,33 @@
/*
* Flipper.h
*
* Created on: May 5, 2019
* Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert
*/
#ifndef _INCLUDE_FLIPPR_CODE_FLIPPER_H
#define _INCLUDE_FLIPPR_CODE_FLIPPER_H
namespace flippR_driver
{
namespace output
{
namespace items
{
class Flipper
{
public:
virtual ~Flipper() = default;
virtual void activate() = 0;
virtual void deactivate() = 0;
virtual bool is_activated() = 0;
};
}
}
}
#endif //FLIPPR_CODE_FLIPPER_H

View File

@@ -7,7 +7,7 @@
#include "output/items/detail/Item.h"
#include <output/DriverBoardPinController.h>
#include "../DriverBoardPinController.h"
#include <cstdint>

View File

@@ -0,0 +1,54 @@
/*
* Flipper.cpp
*
* Created on: May 6, 2019
* Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert
*/
#include "Flipper.h"
#include "../DriverBoardItem.h"
#include "utility/config.h"
namespace flippR_driver
{
namespace output
{
namespace items
{
namespace detail
{
Flipper::Flipper(std::shared_ptr<DriverBoardPinController> pin_controller, uint8_t address, std::string name) :
DriverBoardItem(pin_controller, address, name)
{
CLOG(INFO, OUTPUT_LOGGER) << "Created Flipper relay " << this->name << " with address " << this->address;
}
Flipper::~Flipper()
{
this->deactivate();
}
void Flipper::activate()
{
CLOG(INFO, OUTPUT_LOGGER) << "Flipper " << name << "activated";
this->pin_controller->activate(*this);
}
void Flipper::deactivate()
{
CLOG(INFO, OUTPUT_LOGGER) << "Flipper " << name << "deactivated";
this->pin_controller->deactivate(*this);
}
bool Flipper::is_activated()
{
return this->is_activated();
}
}
}
}
}

View File

@@ -0,0 +1,44 @@
/*
* Flipper.h
*
* Created on: May 6, 2019
* Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert
*/
#ifndef _SRC_FLIPPR_CODE_FLIPPER_H
#define _SRC_FLIPPR_CODE_FLIPPER_H
#include "output/items/Flipper.h"
#include "output/items/DriverBoardItem.h"
namespace flippR_driver
{
namespace output
{
namespace items
{
namespace detail
{
class Flipper : public items::Flipper, public DriverBoardItem
{
public:
Flipper(std::shared_ptr<DriverBoardPinController> pin_controller, uint8_t address, std::string name);
~Flipper() override;
void activate() override;
void deactivate() override;
bool is_activated() override;
private:
bool activated;
};
}
}
}
}
#endif //FLIPPR_CODE_FLIPPER_H

View File

@@ -27,11 +27,11 @@ DriverBoardItem(std::move(pin_controller), address, std::move(name)), deactivati
void Solenoid::triggerTask()
{
pin_controller->activate(*this);
this->pin_controller->activate(*this);
std::this_thread::sleep_for(deactivation_time);
pin_controller->deactivate(*this);
this->pin_controller->deactivate(*this);
}
void Solenoid::trigger()