init branch 2

This commit is contained in:
IMback
2018-10-09 18:41:49 +02:00
parent 2801671ced
commit 74f117db69
15 changed files with 532 additions and 318 deletions

58
relay.cpp Normal file
View File

@ -0,0 +1,58 @@
#include "relay.h"
#include "microcontroller.h"
Relay::Relay(Microcontroller* micro, uint8_t id, QString name, uint16_t address, QObject* parent): QObject(parent), micro_(micro), name_(name), id_(id), address_(address)
{
}
QString Relay::getName()
{
return name_;
}
void Relay::setName(QString name)
{
name_ = name;
}
void Relay::addActor(std::unique_ptr<Actor> actor)
{
actors_.push_back(actor);
connect(actor.get(), &Actor::on, this, &Relay::on);
connect(actor.get(), &Actor::off, this, &Relay::off);
connect(actor.get(), &Actor::toggle, this, &Relay::toggle);
}
std::vector< std::unique_ptr<Actor> >* Relay::getActors()
{
return &actors_;
}
bool Relay::hasActors()
{
return actors_.size() > 0;
}
void Relay::on()
{
micro_->relayOn(id_);
state_ = true;
}
void Relay::off()
{
micro_->relayOn(id_);
state_ = false;
}
void Relay::setState(bool state)
{
state_ = state;
}
void Relay::setActorsActive(bool in)
{
actorsActive_ = true;
for(unsigned i = 0; i < actors_.size(); i++) in ? actors_[i]->makeActive() : actors_[i]->makeInactive();
}