44 lines
818 B
C++
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
|