-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsolarmaxlogger.cpp
64 lines (50 loc) · 1.57 KB
/
solarmaxlogger.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <QTimer>
#include "config.hpp"
#include "solarmaxlogger.hpp"
#include "invertercomm.hpp"
#include "inverterdata.hpp"
#include "sqlstorage.hpp"
#include "updatemobile.hpp"
SolarMaxLogger::SolarMaxLogger(QObject *parent) : QObject(parent)
{
timer = new QTimer(this);
timer->setSingleShot(false);
timer->setInterval(SMLGR_CONFIG_DEFAULT_INV_INTERVAL);
inv = new InverterComm(this);
inv->setIp(SMLGR_CONFIG_DEFAULT_INV_ADDR);
inv->setPort(SMLGR_CONFIG_DEFAULT_INV_PORT);
inv->setId(SMLGR_CONFIG_DEFAULT_INV_NUM);
inv->setQuery(SMLGR_CONFIG_DEFAULT_QUERY);
sql = new SqlStorage(this);
sql->config(SMLGR_CONFIG_DEFAULT_SQL_ADDR, SMLGR_CONFIG_DEFAULT_SQL_PORT,
SMLGR_CONFIG_DEFAULT_SQL_USERNAME, SMLGR_CONFIG_DEFAULT_SQL_PASSWORD,
SMLGR_CONFIG_DEFAULT_SQL_DATABASE);
mobile = new UpdateMobile(this);
connect(timer, SIGNAL(timeout()), inv, SLOT(sendNewQuery()));
// connect(inv, SIGNAL(newResponse(InverterData)), this, SLOT(printData(InverterData)));
connect(inv, SIGNAL(newResponse(InverterData)), sql, SLOT(addDataIntoQueue(InverterData)));
connect(inv, SIGNAL(newResponse(InverterData)), mobile, SLOT(update(InverterData)));
}
SolarMaxLogger::~SolarMaxLogger()
{
delete mobile;
timer->stop();
delete timer;
delete inv;
sql->stop();
delete sql;
}
void SolarMaxLogger::printData(InverterData data)
{
qDebug() << data.getRaw();
}
void SolarMaxLogger::start()
{
timer->start();
sql->start();
}
void SolarMaxLogger::stop()
{
timer->stop();
sql->stop();
}