#ifndef MICROCONTROLLER_H #define MICROCONTROLLER_H #include #include #include #include #include #include #include #include #include #include #include class Microcontroller: public QObject { Q_OBJECT private: std::vector _relayStates; //ugh vector of bools QIODevice* _port = nullptr; QScopedPointer loop; QString _buffer; void processMicroReturn(); void requestState(); public: Microcontroller(QIODevice* port); Microcontroller(); ~Microcontroller(); bool connected(); void setIODevice(QIODevice* port); std::vector getLastState(); public slots: void rgbOn(); void rgbOff(); void changeRgbColor(const QColor color); void setPattern(int pattern); void relayToggle(int state, int id); void relayOn(int relay); void relayOff(int relay); void run(); void abort(); void doTick(); signals: void textRecived(const QString string); void relayStateChanged(std::vector relayStates); void doorOpenTimeout(); void doorOpened(int id); void doorClosed(int id); }; #endif // MICROCONTROLLER_H