UvosSmartHomeInterface/src/items/relay.h

44 lines
818 B
C++

#ifndef RELAY_H
#define RELAY_H
#include<stdint.h>
#include<QObject>
#include "sensors/sensor.h"
#include "item.h"
class Microcontroller;
class Relay : public Item
{
Q_OBJECT
private:
static Microcontroller* micro_;
uint8_t id_;
uint16_t address_;
protected:
virtual void enactValue(uint8_t value) override;
public slots:
void on();
void off();
void toggle();
public:
Relay(uint8_t id = 0, QString name = "", uint16_t address = 0, bool state = false, QObject* parent = nullptr);
uint16_t getAddress() const;
uint8_t getId() const;
void setId(uint8_t id);
inline static void setMicrocontroller(Microcontroller* micro)
{
micro_ = micro;
}
virtual void store(QJsonObject& json) override;
virtual void load(const QJsonObject& json, const bool preserve = false) override;
};
#endif // RELAY_H