#ifndef RELAY_H #define RELAY_H #include #include #include #include #include #include"actor.h" class Microcontroller; class Relay : public QObject { Q_OBJECT private: Microcontroller* micro_; QString name_; bool state_ = false; uint8_t id_; uint16_t address_; std::vector< std::unique_ptr > actors_; bool actorsActive_ = true; public slots: void on(); void off(); void toggle(); public: Relay(Microcontroller* micro, uint8_t id, QString name = "", uint16_t address = 0, QObject *parent = nullptr); void addActor(std::unique_ptr actor); void setState(bool state); bool hasActors(); void setActorsActive(bool in); QString getName(); void setName(QString name); std::vector< std::unique_ptr >* getActors(); ~Relay(); }; #endif // RELAY_H