#ifndef BROADCAST_H #define BROADCAST_H #include #include #include #include #include "sensors/sensor.h" class BroadCast: public QObject { Q_OBJECT private: bool master_; static constexpr uint8_t MODE_PREPACKET = 0; static constexpr uint8_t MODE_PACKET = 1; QByteArray buffer_; QIODevice* const iodevice_; void write(const char * const buffer, const size_t length); void write(const QByteArray& buffer); void decode(); void decodeMaster(); private slots: void readyRead(); public slots: void requestJson(); signals: void jsonRequested(); void gotJson(QJsonObject json); void gotSensorState(Sensor sensor); public: BroadCast(QIODevice* const iodevice = nullptr, bool master = true); void sendJson(const QJsonObject& json); void sendMessage(const QString& title, const QString& body); }; #endif // BROADCAST_H