59 lines
1.1 KiB
C++
59 lines
1.1 KiB
C++
#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();
|
|
}
|