#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) { 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 >* 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(); }