Skip to content
Snippets Groups Projects
shactuator.h 1.23 KiB
Newer Older
  • Learn to ignore specific revisions
  • Peter Altenbernd's avatar
    Peter Altenbernd committed
    #ifndef SHACTUATOR_H
    #define SHACTUATOR_H
    
    #include <QTcpSocket>
    
    Peter Altenbernd's avatar
    Peter Altenbernd committed
    
    #ifndef SHREMOTE
    
    #include <QSerialPort>
    
    Peter Altenbernd's avatar
    Peter Altenbernd committed
    #endif
    
    Peter Altenbernd's avatar
    Peter Altenbernd committed
    
    
    #include "shsensor.h"
    
    Peter Altenbernd's avatar
    Peter Altenbernd committed
    
    class SHactuator : public SHsensor
    {
    public:
        enum class State {UNKOWN=-1, OFF, ON};
    
    
        SHactuator(int nid, int powerDemand, SensorType sid=SensorType::Switch, QString url="");
        SHactuator(int nid, int powerDemand, QString url="");
    
    Peter Altenbernd's avatar
    Peter Altenbernd committed
    
        virtual void setValue(const QString &payl) override;
    
        void ON();
        void OFF();
        void set(State state);
    
        State switchState() const;
    
    
    Peter Altenbernd's avatar
    Peter Altenbernd committed
    
    
        void setIgnoreF3error();
    
        
        static void setSocket(QTcpSocket *newSocket);
    
    Peter Altenbernd's avatar
    Peter Altenbernd committed
    #ifndef SHREMOTE
    
        static void setSerial(QSerialPort *newSerial);
    
    Peter Altenbernd's avatar
    Peter Altenbernd committed
    #endif
    
    Peter Altenbernd's avatar
    Peter Altenbernd committed
    private:
        friend class TestSHserver;
    
    
        // Gateway Verbindung
        static QTcpSocket * m_socket;
    
    Peter Altenbernd's avatar
    Peter Altenbernd committed
    #ifndef SHREMOTE
    
        static QSerialPort *m_serial;
    
    Peter Altenbernd's avatar
    Peter Altenbernd committed
    #endif
    
        State m_switchState = State::UNKOWN; // vom Switch empfangen
        State m_assignedState = State::UNKOWN; // von SolarControl gesetzt
    
        bool m_ignoreF3error; // Für Controlled Switches: Solange noch kein process() (d.h. ON() oder OFF()) gelaufen ist, kein Konsistenz-Check
    
    Peter Altenbernd's avatar
    Peter Altenbernd committed
    
    
    Peter Altenbernd's avatar
    Peter Altenbernd committed
        void swtch(bool on);
    
    Peter Altenbernd's avatar
    Peter Altenbernd committed
        QString msg(int payload);
    
    };
    
    #endif // SHACTUATOR_H