Browse Source

Revert "Thermostat: MQTTClient: switch to a singleton"

This reverts commit 23c726f740.

It's better to make mqttclient part of the background loop and use
signals/slots
master
Richard Genoud 4 years ago
parent
commit
12de99110e
4 changed files with 12 additions and 21 deletions
  1. +2
    -0
      soft/thermostat/inc/mainwindow.h
  2. +3
    -5
      soft/thermostat/inc/mqttclient.h
  3. +6
    -1
      soft/thermostat/src/mainwindow.cpp
  4. +1
    -15
      soft/thermostat/src/mqttclient.cpp

+ 2
- 0
soft/thermostat/inc/mainwindow.h View File

@ -26,6 +26,8 @@ public:
explicit MainWindow(QWidget *parent = NULL);
~MainWindow();
MQTTClient *mqttclient;
private:
QPushButton m_state_btn;
BackgroundLoop m_backLoop;


+ 3
- 5
soft/thermostat/inc/mqttclient.h View File

@ -18,15 +18,13 @@ class MQTTClient: public QMQTT::Client
{
Q_OBJECT
public:
void publish_msg(const QString& topic, const QString& payload);
static MQTTClient *getInstance(void);
private:
explicit MQTTClient(const QHostAddress& host = QHostAddress::LocalHost,
const quint16 port = 1883,
QObject* parent = NULL);
virtual ~MQTTClient();
static MQTTClient *_singleton;
void publish_msg(const QString& topic, const QString& payload);
private:
QTimer m_timer;
public slots:


+ 6
- 1
soft/thermostat/src/mainwindow.cpp View File

@ -21,8 +21,10 @@ MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
ZoneItem *zone;
Settings *s = Settings::getInstance();
MQTTClient *mqttclient = MQTTClient::getInstance();
mqttclient = new MQTTClient(QHostAddress(s->m_broker.address), s->m_broker.port);
for (int i = 0; i < s->nbZones(); i++) {
zone = new ZoneItem(s->m_rooms.at(i).name, this);
@ -67,8 +69,11 @@ MainWindow::MainWindow(QWidget *parent) :
setWindowTitle(tr("Sorico's thermostat"));
m_backLoop.start();
mqttclient->connectToHost();
connect(this, SIGNAL(new_pwr_state(enum power_states)),
&m_backLoop, SLOT(onNewPowerState(enum power_states)));
connect(&m_state_btn, SIGNAL(clicked()), this, SLOT(change_state()));
}


+ 1
- 15
soft/thermostat/src/mqttclient.cpp View File

@ -16,19 +16,6 @@
#include "settings.h"
#include "qmqtt.h"
MQTTClient *MQTTClient::_singleton = NULL;
MQTTClient *MQTTClient::getInstance(void)
{
if (!_singleton) {
Settings *s = Settings::getInstance();
_singleton = new MQTTClient(QHostAddress(s->m_broker.address), s->m_broker.port);
}
return _singleton;
}
MQTTClient::MQTTClient(const QHostAddress& host, const quint16 port,
QObject* parent) : QMQTT::Client(host, port, parent)
{
@ -37,8 +24,7 @@ MQTTClient::MQTTClient(const QHostAddress& host, const quint16 port,
connect(this, &MQTTClient::received, this, &MQTTClient::onReceived);
connect(this, &MQTTClient::published, this, &MQTTClient::onPublished);
connect(this, &MQTTClient::error, this, &MQTTClient::onError);
connectToHost();
qDebug() << "created" << endl;
}
MQTTClient::~MQTTClient() {


Loading…
Cancel
Save