src/DetailFermenter.cpp

Sun, 03 Jul 2022 14:30:49 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Sun, 03 Jul 2022 14:30:49 +0200
changeset 333
499c95108bbd
parent 328
ee2c8b29f389
child 391
42936c86cbac
permissions
-rw-r--r--

Moved Fermenter and iSpindel charts to their own functions. Added these to DetailFermenter and DetailiSpindel too.

317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 /**
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2 * DetailFermenter.cpp is part of bmsapp.
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3 *
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4 * bmsapp is free software: you can redistribute it and/or modify
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5 * it under the terms of the GNU General Public License as published by
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
6 * the Free Software Foundation, either version 3 of the License, or
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7 * (at your option) any later version.
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8 *
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9 * bmsapp is distributed in the hope that it will be useful,
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
12 * GNU General Public License for more details.
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
13 *
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
14 * You should have received a copy of the GNU General Public License
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
16 */
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
17 #include "DetailFermenter.h"
333
499c95108bbd Moved Fermenter and iSpindel charts to their own functions. Added these to DetailFermenter and DetailiSpindel too.
Michiel Broek <mbroek@mbse.eu>
parents: 328
diff changeset
18 #include "ChartFermenter.h"
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
19 #include "../ui/ui_DetailFermenter.h"
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
20 #include "global.h"
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
21 #include "MainWindow.h"
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
22
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
23
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
24 /*
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
25 * Results are available via MySQL and websockets. Because we initialize using
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
26 * MySQL we only use that for the results and up to date status.
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
27 * Commands are send via websockets only.
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
28 */
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
29
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
30 DetailFermenter::DetailFermenter(int id, QWidget *parent) : QDialog(parent), ui(new Ui::DetailFermenter)
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
31 {
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
32 QSqlQuery query;
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
33
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
34 qDebug() << "DetailFermenter record:" << id;
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
35 ui->setupUi(this);
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
36 this->recno = id;
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
37 setWindowFlags(Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
38 setWindowTitle(tr("BMSapp - Details Fermenter"));
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
39
325
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
40 ui->airThermo->setMaximum(40.0);
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
41 ui->airThermo->setNominal(15.0);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
42 ui->airThermo->setCritical(20.0);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
43 ui->airThermo->setSuffix(QString("°C"));
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
44
325
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
45 ui->beerThermo->setMaximum(40.0);
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
46 ui->beerThermo->setNominal(15.0);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
47 ui->beerThermo->setCritical(20.0);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
48 ui->beerThermo->setSuffix(QString("°C"));
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
49
325
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
50 ui->chillerThermo->setMinimum(-15.0);
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
51 ui->chillerThermo->setMaximum(25.0);
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
52 ui->chillerThermo->setNominal(0.0);
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
53 ui->chillerThermo->setCritical(15.0);
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
54 ui->chillerThermo->setSuffix(QString("°C"));
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
55
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
56 ui->modeEdit->addItem("OFF");
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
57 ui->modeEdit->addItem("NONE");
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
58 ui->modeEdit->addItem("FRIDGE");
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
59 ui->modeEdit->addItem("BEER");
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
60 ui->modeEdit->addItem("PROFILE");
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
61
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
62 ui->stageEdit->addItem("PRIMARY");
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
63 ui->stageEdit->addItem("SECONDARY");
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
64 ui->stageEdit->addItem("TERTIARY");
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
65 ui->stageEdit->addItem("CARBONATION");
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
66
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
67 ui->codePick->addItem("Free - Dummy"); // Will be replaced later
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
68 query.exec("SELECT code,name FROM products WHERE stage='1' OR stage='2' OR stage='3' OR stage='4' OR stage='5' OR stage='6' OR stage='7' ORDER BY code");
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
69 while (query.next()) {
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
70 ui->codePick->addItem(query.value("code").toString()+" - "+query.value("name").toString());
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
71 }
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
72
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
73 ui->profilePick->addItem(tr("Erase profile"));
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
74 query.exec("SELECT name FROM profile_fermentation ORDER BY name");
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
75 while (query.next()) {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
76 ui->profilePick->addItem(query.value("name").toString());
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
77 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
78
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
79 connect(ui->loEdit, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &DetailFermenter::lo_changed);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
80 connect(ui->hiEdit, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &DetailFermenter::hi_changed);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
81 connect(ui->heatSwitch, SIGNAL(clicked()), this, SLOT(heat_switched()));
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
82 connect(ui->coolSwitch, SIGNAL(clicked()), this, SLOT(cool_switched()));
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
83 connect(ui->fanSwitch, SIGNAL(clicked()), this, SLOT(fan_switched()));
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
84 connect(ui->modeButton1, SIGNAL(clicked()), this, SLOT(button1_pressed()));
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
85 connect(ui->modeButton2, SIGNAL(clicked()), this, SLOT(button2_pressed()));
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
86 connect(ui->modeEdit, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &DetailFermenter::mode_changed);
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
87 connect(ui->stageEdit, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &DetailFermenter::stage_changed);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
88 connect(ui->codePick, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &DetailFermenter::code_changed);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
89 connect(ui->profilePick, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &DetailFermenter::profile_changed);
333
499c95108bbd Moved Fermenter and iSpindel charts to their own functions. Added these to DetailFermenter and DetailiSpindel too.
Michiel Broek <mbroek@mbse.eu>
parents: 328
diff changeset
90 connect(ui->logButton, SIGNAL(clicked()), this, SLOT(on_ChartButton_clicked()));
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
91 connect(parent, SIGNAL(updateFermenter(QString)), this, SLOT(refreshFermenter(QString)));
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
92 emit refreshTable();
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
93 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
94
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
95
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
96 void DetailFermenter::refreshTable()
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
97 {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
98 QSqlQuery query;
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
99
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
100 qDebug() << "refreshTable fermenter rec:" << this->recno;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
101
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
102 QIcon icon_done, icon_start, icon_abort, icon_pause, icon_cont;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
103 icon_done.addFile(QString::fromUtf8(":icons/silk/accept.png"), QSize(), QIcon::Normal, QIcon::Off);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
104 icon_start.addFile(QString::fromUtf8(":icons/silk/resultset_next.png"), QSize(), QIcon::Normal, QIcon::Off);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
105 icon_abort.addFile(QString::fromUtf8(":icons/silk/bomb.png"), QSize(), QIcon::Normal, QIcon::Off);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
106 icon_pause.addFile(QString::fromUtf8(":icons/silk/cup.png"), QSize(), QIcon::Normal, QIcon::Off);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
107 icon_cont.addFile(QString::fromUtf8(":icons/silk/cup_go.png"), QSize(), QIcon::Normal, QIcon::Off);
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
108
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
109 query.prepare("SELECT * FROM mon_fermenters WHERE record = :recno");
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
110 query.bindValue(":recno", this->recno);
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
111 query.exec();
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
112 if (query.next()) {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
113
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
114 const QSignalBlocker blocker1(ui->codePick);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
115 const QSignalBlocker blocker2(ui->modeEdit);
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
116 const QSignalBlocker blocker3(ui->loEdit);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
117 const QSignalBlocker blocker4(ui->hiEdit);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
118 const QSignalBlocker blocker5(ui->stageEdit);
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
119
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
120 _node = query.value("node").toString();
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
121 _alias = query.value("alias").toString();
328
ee2c8b29f389 Added CO2 meter monitor detail screen.
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
122 _uuid = query.value("uuid").toString();
325
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
123 _beercode = query.value("beercode").toString();
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
124 _beername = query.value("beername").toString();
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
125
328
ee2c8b29f389 Added CO2 meter monitor detail screen.
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
126 ui->uuidEdit->setText(_uuid);
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
127 ui->systemEdit->setText(_node+"/"+_alias);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
128 ui->codePick->setItemText(0, _alias.toUpper()+" - "+_alias);
318
ff02aca2b63c Removed LED plugin, now using the one from the AnalogWidgets.
Michiel Broek <mbroek@mbse.eu>
parents: 317
diff changeset
129
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
130 if (query.value("online").toInt()) {
318
ff02aca2b63c Removed LED plugin, now using the one from the AnalogWidgets.
Michiel Broek <mbroek@mbse.eu>
parents: 317
diff changeset
131 ui->statusEdit->setText(tr("Online"));
325
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
132 ui->codeEdit->setText(_beercode+" - "+_beername);
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
133 ui->airThermo->setNominal(query.value("yeast_lo").toDouble());
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
134 ui->airThermo->setCritical(query.value("yeast_hi").toDouble());
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
135 ui->beerThermo->setNominal(query.value("yeast_lo").toDouble());
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
136 ui->beerThermo->setCritical(query.value("yeast_hi").toDouble());
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
137
325
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
138 ui->modeEdit->show();
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
139 if (query.value("mode").toString() == "OFF")
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
140 ui->modeEdit->setCurrentIndex(0);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
141 else if (query.value("mode").toString() == "NONE")
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
142 ui->modeEdit->setCurrentIndex(1);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
143 else if (query.value("mode").toString() == "FRIDGE")
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
144 ui->modeEdit->setCurrentIndex(2);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
145 else if (query.value("mode").toString() == "BEER")
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
146 ui->modeEdit->setCurrentIndex(3);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
147 else if (query.value("mode").toString() == "PROFILE")
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
148 ui->modeEdit->setCurrentIndex(4);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
149
325
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
150 ui->stageEdit->show();
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
151 if (query.value("stage").toString() == "PRIMARY")
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
152 ui->stageEdit->setCurrentIndex(0);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
153 else if (query.value("stage").toString() == "SECONDARY")
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
154 ui->stageEdit->setCurrentIndex(1);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
155 else if (query.value("stage").toString() == "TERTIARY")
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
156 ui->stageEdit->setCurrentIndex(2);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
157 else if (query.value("stage").toString() == "CARBONATION")
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
158 ui->stageEdit->setCurrentIndex(3);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
159
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
160 if (query.value("door_address").toString() != "") {
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
161 ui->doorLED->show();
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
162 ui->doorLabel->show();
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
163 ui->doorLED->setChecked((query.value("door_state").toInt() != 0) ? true:false);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
164 } else {
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
165 ui->doorLED->hide();
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
166 ui->doorLabel->hide();
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
167 }
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
168
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
169 if (query.value("light_address").toString() != "") {
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
170 ui->lightLED->show();
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
171 ui->lightLabel->show();
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
172 ui->lightLED->setChecked((query.value("light_state").toInt() != 0) ? true:false);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
173 } else {
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
174 ui->lightLED->hide();
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
175 ui->lightLabel->hide();
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
176 }
318
ff02aca2b63c Removed LED plugin, now using the one from the AnalogWidgets.
Michiel Broek <mbroek@mbse.eu>
parents: 317
diff changeset
177
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
178 if (query.value("mode").toString() == "OFF") {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
179 ui->powerLED->setChecked(false);
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
180 ui->codePick->show();
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
181 } else {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
182 ui->powerLED->setChecked(true);
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
183 ui->codePick->hide();
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
184 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
185 ui->alarmLED->setChecked((query.value("alarm").toInt() != 0) ? true:false);
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
186
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
187 ui->tempsetBox->show();
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
188 if ((query.value("mode").toString() == "FRIDGE") || (query.value("mode").toString() == "BEER")) {
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
189 ui->loEdit->setReadOnly(false);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
190 ui->loEdit->setButtonSymbols(QAbstractSpinBox::UpDownArrows);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
191 ui->hiEdit->setReadOnly(false);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
192 ui->hiEdit->setButtonSymbols(QAbstractSpinBox::UpDownArrows);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
193 } else {
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
194 ui->loEdit->setReadOnly(true);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
195 ui->loEdit->setButtonSymbols(QAbstractSpinBox::NoButtons);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
196 ui->hiEdit->setReadOnly(true);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
197 ui->hiEdit->setButtonSymbols(QAbstractSpinBox::NoButtons);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
198 }
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
199 lo_set = query.value("setpoint_low").toDouble();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
200 hi_set = query.value("setpoint_high").toDouble();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
201 ui->loEdit->setValue(lo_set);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
202 ui->hiEdit->setValue(hi_set);
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
203
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
204 ui->switchBox->show();
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
205 ui->heatLED->setChecked((query.value("heater_state").toInt() != 0) ? true:false);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
206 ui->coolLED->setChecked((query.value("cooler_state").toInt() != 0) ? true:false);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
207 ui->fanLED->setChecked((query.value("fan_state").toInt() != 0) ? true:false);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
208
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
209 if (query.value("mode").toString() == "NONE") {
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
210 ui->heatSwitch->show();
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
211 ui->coolSwitch->show();
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
212 ui->fanSwitch->show();
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
213 heat_state = (query.value("heater_state").toInt()) ? true:false;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
214 cool_state = (query.value("cooler_state").toInt()) ? true:false;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
215 fan_state = (query.value("fan_state").toInt()) ? true:false;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
216 ui->heatSwitch->setChecked(heat_state);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
217 ui->coolSwitch->setChecked(cool_state);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
218 ui->fanSwitch->setChecked(fan_state);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
219 // Copy state values to variables and set the switches.
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
220 } else {
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
221 ui->heatSwitch->hide();
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
222 ui->coolSwitch->hide();
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
223 ui->fanSwitch->hide();
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
224 heat_state = cool_state = fan_state = false;
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
225 }
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
226
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
227 if (query.value("profile_name").toString() == "") {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
228 qobject_cast<QStandardItemModel*>(ui->modeEdit->model())->item(4)->setEnabled(false);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
229 } else {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
230 qobject_cast<QStandardItemModel*>(ui->modeEdit->model())->item(4)->setEnabled(true);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
231 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
232 ui->profileEdit->setText(query.value("profile_name").toString());
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
233
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
234 if (query.value("mode").toString() == "PROFILE") {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
235 _profile = query.value("profile_state").toString(); // So we know the profile state anywhere.
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
236 qDebug() << "profile state" << query.value("profile_state").toString();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
237 if (query.value("profile_state").toString() == "OFF") {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
238 ui->profilePick->show();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
239 ui->profileShow->hide(); // Both on the same location.
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
240 ui->modeButton1->show();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
241 ui->modeButton1->setText(tr("Start"));
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
242 ui->modeButton1->setIcon(icon_start);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
243 ui->modeButton2->hide();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
244 } else if (query.value("profile_state").toString() == "RUN") {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
245 ui->profilePick->hide();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
246 ui->profileShow->show();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
247 ui->profileShow->setText(QString(tr("Profile active %1% done")).arg(query.value("profile_percent").toDouble()));
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
248 ui->modeButton1->show();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
249 ui->modeButton1->setText(tr("Abort"));
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
250 ui->modeButton1->setIcon(icon_abort);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
251 ui->modeButton2->show();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
252 ui->modeButton2->setText(tr("Pause"));
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
253 ui->modeButton2->setIcon(icon_pause);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
254 } else if (query.value("profile_state").toString() == "PAUSE") {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
255 ui->profilePick->hide();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
256 ui->profileShow->show();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
257 ui->profileShow->setText(QString(tr("Profile paused %1% done")).arg(query.value("profile_percent").toDouble()));
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
258 ui->modeButton1->show();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
259 ui->modeButton1->setText(tr("Abort"));
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
260 ui->modeButton1->setIcon(icon_abort);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
261 ui->modeButton2->show();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
262 ui->modeButton2->setText(tr("Continue"));
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
263 ui->modeButton2->setIcon(icon_cont);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
264 } else if (query.value("profile_state").toString() == "DONE") {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
265 ui->profilePick->hide();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
266 ui->profileShow->show();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
267 ui->profileShow->setText(QString(tr("Profile ready")));
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
268 ui->modeButton1->show();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
269 ui->modeButton1->setText(tr("Profile Ok"));
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
270 ui->modeButton1->setIcon(icon_done);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
271 ui->modeButton2->hide();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
272 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
273 } else {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
274 ui->profilePick->show();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
275 ui->profileShow->hide(); // Both on the same location.
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
276 ui->modeButton1->hide();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
277 ui->modeButton2->hide();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
278 _profile = QString("");
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
279 }
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
280
325
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
281 if (query.value("webcam_url").toString() == "") {
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
282 ui->camButton->hide();
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
283 } else {
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
284 ui->camButton->show();
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
285 }
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
286
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
287 ui->thermoBox->show();
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
288 if (query.value("air_state").toString() == "OK") {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
289 ui->airThermo->setValue(query.value("air_temperature").toDouble());
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
290 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
291 if (query.value("beer_state").toString() == "OK") {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
292 ui->beerThermo->setValue(query.value("beer_temperature").toDouble());
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
293 }
325
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
294 if (query.value("chiller_state").toString() == "OK") {
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
295 ui->chillerThermo->setValue(query.value("chiller_temperature").toDouble());
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
296 }
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
297
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
298 } else {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
299 /* Offline */
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
300 ui->statusEdit->setText(tr("Offline"));
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
301 ui->powerLED->setChecked(false);
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
302 ui->alarmLED->setChecked(true);
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
303 ui->codePick->hide();
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
304 ui->modeEdit->hide();
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
305 ui->stageEdit->hide();
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
306 ui->thermoBox->hide();
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
307 ui->tempsetBox->hide();
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
308 ui->switchBox->hide();
325
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
309 ui->camButton->hide();
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
310 ui->logButton->hide();
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
311 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
312 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
313
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
314 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
315
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
316
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
317 DetailFermenter::~DetailFermenter()
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
318 {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
319 qDebug() << "DetailFermenter done";
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
320 delete ui;
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
321 emit entry_changed();
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
322 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
323
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
324
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
325 /*
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
326 * Receive signals destined for all fermenters.
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
327 * Check if the signal is for us.
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
328 */
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
329 void DetailFermenter::refreshFermenter(QString data)
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
330 {
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
331 if (_node+"/"+_alias == data) {
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
332 emit refreshTable();
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
333 }
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
334 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
335
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
336
333
499c95108bbd Moved Fermenter and iSpindel charts to their own functions. Added these to DetailFermenter and DetailiSpindel too.
Michiel Broek <mbroek@mbse.eu>
parents: 328
diff changeset
337 void DetailFermenter::on_ChartButton_clicked()
499c95108bbd Moved Fermenter and iSpindel charts to their own functions. Added these to DetailFermenter and DetailiSpindel too.
Michiel Broek <mbroek@mbse.eu>
parents: 328
diff changeset
338 {
499c95108bbd Moved Fermenter and iSpindel charts to their own functions. Added these to DetailFermenter and DetailiSpindel too.
Michiel Broek <mbroek@mbse.eu>
parents: 328
diff changeset
339 ChartFermenter dialog(_beercode, _beername, this);
499c95108bbd Moved Fermenter and iSpindel charts to their own functions. Added these to DetailFermenter and DetailiSpindel too.
Michiel Broek <mbroek@mbse.eu>
parents: 328
diff changeset
340 }
499c95108bbd Moved Fermenter and iSpindel charts to their own functions. Added these to DetailFermenter and DetailiSpindel too.
Michiel Broek <mbroek@mbse.eu>
parents: 328
diff changeset
341
499c95108bbd Moved Fermenter and iSpindel charts to their own functions. Added these to DetailFermenter and DetailiSpindel too.
Michiel Broek <mbroek@mbse.eu>
parents: 328
diff changeset
342
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
343 void DetailFermenter::on_quitButton_clicked()
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
344 {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
345 this->close();
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
346 this->setResult(1);
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
347 }
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
348
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
349
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
350 void DetailFermenter::lo_changed(double val)
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
351 {
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
352 double hi = ui->hiEdit->value();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
353
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
354 if (val >= hi)
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
355 hi = val + 0.1;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
356 QString msg = QString("{\"device\":\"fermenters\",\"node\":\""+_node+"\",\"unit\":\""+_alias+"\",\"setpoint_low\":%1,\"setpoint_high\":%2}")
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
357 .arg(val, 2, 'f', 1, '0').arg(hi, 2, 'f', 1, '0');
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
358 qDebug() << "lo_changed" << val << msg;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
359 webSocket->sendTextMessage(msg);
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
360 }
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
361
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
362
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
363 void DetailFermenter::hi_changed(double val)
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
364 {
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
365 double lo = ui->loEdit->value();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
366
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
367 if (val <= lo)
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
368 lo = val - 0.1;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
369 QString msg = QString("{\"device\":\"fermenters\",\"node\":\""+_node+"\",\"unit\":\""+_alias+"\",\"setpoint_low\":%1,\"setpoint_high\":%2}")
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
370 .arg(lo, 2, 'f', 1, '0').arg(val, 2, 'f', 1, '0');
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
371 qDebug() << "hi_changed" << val << msg;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
372 webSocket->sendTextMessage(msg);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
373 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
374
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
375
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
376 void DetailFermenter::send_switches()
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
377 {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
378 QString msg=QString("{\"device\":\"fermenters\",\"node\":\""+_node+"\",\"unit\":\""+_alias+"\",\"heater_state\":%1,\"cooler_state\":%2,\"fan_state\":%3}")
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
379 .arg((heat_state)?100:0).arg((cool_state)?100:0).arg((fan_state)?100:0);
325
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
380 //qDebug() << msg;
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
381 webSocket->sendTextMessage(msg);
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
382 }
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
383
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
384
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
385 void DetailFermenter::heat_switched()
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
386 {
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
387 heat_state = !heat_state;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
388 cool_state = false;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
389 send_switches();
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
390 }
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
391
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
392
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
393 void DetailFermenter::cool_switched()
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
394 {
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
395 cool_state = !cool_state;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
396 heat_state = false;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
397 send_switches();
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
398 }
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
399
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
400
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
401 void DetailFermenter::fan_switched()
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
402 {
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
403 fan_state = !fan_state;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
404 send_switches();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
405 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
406
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
407
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
408 void DetailFermenter::button1_pressed()
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
409 {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
410 qDebug() << "button1" << _profile;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
411 if (_profile == "OFF") {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
412 QString msg = QString("{\"device\":\"fermenters\",\"node\":\"" + _node + "\",\"unit\":\"" + _alias + "\",\"profile\":{\"command\":\"start\"}}");
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
413 qDebug() << msg;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
414 webSocket->sendTextMessage(msg);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
415 return;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
416 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
417
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
418 if ((_profile == "RUN") || (_profile == "PAUSE")) {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
419 int rc = QMessageBox::warning(this, tr("Profile running"), tr("Profile is active, really abort?"),
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
420 QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
421 if (rc == QMessageBox::Yes) {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
422 QString msg = QString("{\"device\":\"fermenters\",\"node\":\"" + _node + "\",\"unit\":\"" + _alias + "\",\"profile\":{\"command\":\"abort\"}}");
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
423 qDebug() << msg;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
424 webSocket->sendTextMessage(msg);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
425 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
426 return;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
427 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
428
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
429 if (_profile == "DONE") {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
430 QString msg = QString("{\"device\":\"fermenters\",\"node\":\"" + _node + "\",\"unit\":\"" + _alias + "\",\"profile\":{\"command\":\"done\"}}");
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
431 qDebug() << msg;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
432 webSocket->sendTextMessage(msg);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
433 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
434 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
435
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
436
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
437 void DetailFermenter::button2_pressed()
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
438 {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
439 qDebug() << "button2" << _profile;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
440
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
441 if ((_profile == "RUN") || (_profile == "PAUSE")) {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
442 QString msg = QString("{\"device\":\"fermenters\",\"node\":\"" + _node + "\",\"unit\":\"" + _alias + "\",\"profile\":{\"command\":\"pause\"}}");
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
443 qDebug() << msg;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
444 webSocket->sendTextMessage(msg);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
445 }
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
446 }
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
447
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
448
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
449 void DetailFermenter::mode_changed(int val)
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
450 {
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
451 QStringList mode ({ "OFF", "NONE", "FRIDGE", "BEER", "PROFILE" });
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
452 QString msg = QString("{\"device\":\"fermenters\",\"node\":\"" + _node + "\",\"unit\":\"" + _alias + "\",\"mode\":\"" + mode[val] + "\"}");
325
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
453 //qDebug() << "mode_changed" << val << msg;
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
454 webSocket->sendTextMessage(msg);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
455 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
456
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
457
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
458 void DetailFermenter::stage_changed(int val)
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
459 {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
460 QStringList stage ({ "PRIMARY", "SECONDARY", "TERTIARY", "CARBONATION" });
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
461 QString msg = QString("{\"device\":\"fermenters\",\"node\":\"" + _node + "\",\"unit\":\"" + _alias + "\",\"stage\":\"" + stage[val] + "\"}");
325
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
462 //qDebug() << "stage_changed" << val << msg;
323
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
463 webSocket->sendTextMessage(msg);
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
464 }
d053ffbbf3e9 Started with change and signal functions. Implemented mode change for test. The MainWindow webSocket is now global so the Detail screens can send websocket messages.
Michiel Broek <mbroek@mbse.eu>
parents: 318
diff changeset
465
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
466
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
467 void DetailFermenter::code_changed(int val)
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
468 {
325
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
469 QJsonParseError parseError;
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
470 QSqlQuery query;
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
471
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
472 QString msg = QString("{\"device\":\"fermenters\",\"node\":\"" + _node + "\",\"unit\":\"" + _alias + "\",");
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
473 if (val == 0) {
328
ee2c8b29f389 Added CO2 meter monitor detail screen.
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
474 msg.append(QString("\"beeruuid\":\"") + _uuid + "\",");
325
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
475 msg.append(QString("\"beercode\":\"") + _alias.toUpper() + "\",");
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
476 msg.append(QString("\"beername\":\"") + _alias + "\",");
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
477 msg.append(QString("\"yeast_lo\":12.0,"));
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
478 msg.append(QString("\"yeast_hi\":24.0}"));
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
479
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
480 } else {
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
481 query.exec("SELECT code,name,uuid,stage,json_yeasts FROM products WHERE stage='1' OR stage='2' OR stage='3' OR stage='4' OR stage='5' OR stage='6' OR stage='7' ORDER BY code");
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
482 for (int i = 0; i < val; i++) {
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
483 query.next();
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
484 }
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
485 double yl = 0;
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
486 double yh = 40;
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
487 const auto& y_json = query.value("json_yeasts").toString();
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
488 if (! y_json.trimmed().isEmpty()) {
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
489 const auto& formattedJson = QString("%1").arg(y_json);
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
490 QJsonDocument yeasts = QJsonDocument::fromJson(formattedJson.toUtf8(), &parseError);
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
491 if (parseError.error != QJsonParseError::NoError) {
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
492 qWarning() << "Parse error: " << parseError.errorString() << "at" << parseError.offset ;
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
493 } else if (yeasts.isArray()) {
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
494 for (int i = 0; i < yeasts.array().size(); i++) {
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
495 QJsonObject obj = yeasts.array().at(i).toObject();
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
496 if (obj["y_use"].toInt() == 0) { // Primary yeast
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
497 if (obj["y_min_temperature"].toDouble() > yl)
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
498 yl = obj["y_min_temperature"].toDouble();
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
499 if (obj["y_max_temperature"].toDouble() < yh)
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
500 yh = obj["y_max_temperature"].toDouble();
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
501 }
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
502 }
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
503 }
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
504 }
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
505 msg.append(QString("\"beeruuid\":\"") + query.value("uuid").toString() + "\",");
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
506 msg.append(QString("\"beercode\":\"") + query.value("code").toString() + "\",");
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
507 msg.append(QString("\"beername\":\"") + query.value("name").toString() + "\",");
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
508 msg.append(QString("\"yeast_lo\":%1,").arg(yl));
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
509 msg.append(QString("\"yeast_hi\":%1}").arg(yh));
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
510 }
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
511
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
512 qDebug() << "code_changed" << val << msg;
325
fa946d12d937 Workaround for the thermometer scale ranges. Added chiller thermometer settings. Added beer select.
Michiel Broek <mbroek@mbse.eu>
parents: 324
diff changeset
513 webSocket->sendTextMessage(msg);
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
514 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
515
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
516
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
517 void DetailFermenter::profile_changed(int val)
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
518 {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
519 QString payload;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
520 QSqlQuery query;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
521 QJsonParseError parseError;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
522
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
523 if (val == 0) {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
524 payload = QString("\"profile\":null");
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
525 } else {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
526 query.exec("SELECT * FROM profile_fermentation ORDER BY name");
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
527 for (int i = 0; i < val; i++) {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
528 query.next();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
529 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
530 payload = QString("\"profile\":{\"uuid\":\""+query.value("uuid").toString()+"\",\"name\":\""+query.value("name").toString());
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
531 payload.append(QString("\",\"inittemp\":{\"low\":") + QString("%1").arg(query.value("inittemp_lo").toDouble(), 2, 'f', 1, '0' ));
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
532 payload.append(QString(",\"high\":") + QString("%1").arg(query.value("inittemp_hi").toDouble(), 2, 'f', 1, '0' ) + QString("},"));
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
533 payload.append(QString("\"fridgemode\":") + QString("%1").arg(query.value("fridgemode").toInt()) );
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
534 payload.append(QString(",\"steps\":["));
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
535
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
536 const auto& s_json = query.value("steps").toString();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
537 if (! s_json.trimmed().isEmpty()) {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
538 const auto& formattedJson = QString("%1").arg(s_json);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
539 QJsonDocument steps = QJsonDocument::fromJson(formattedJson.toUtf8(), &parseError);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
540 if (parseError.error != QJsonParseError::NoError) {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
541 qWarning() << "Parse error: " << parseError.errorString() << "at" << parseError.offset ;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
542 } else if (steps.isArray()) {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
543 for (int i = 0; i < steps.array().size(); i++) {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
544 QJsonObject obj = steps.array().at(i).toObject();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
545 if (i > 0)
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
546 payload.append(QString(","));
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
547 payload.append(QString("{\"steptime\":%1").arg(obj["steptime"].toString().toDouble()));
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
548 payload.append(QString(",\"resttime\":%1").arg(obj["resttime"].toString().toDouble()));
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
549 payload.append(QString(",\"target_lo\":%1").arg(obj["target_lo"].toString().toDouble()));
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
550 payload.append(QString(",\"target_hi\":%1").arg(obj["target_hi"].toString().toDouble()));
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
551 payload.append(QString(",\"fridgemode\":%1").arg(obj["fridgemode"].toString().toInt()));
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
552 payload.append(QString(",\"name\":\"") + obj["name"].toString() + QString("\"}"));
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
553 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
554 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
555 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
556
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
557 payload.append(QString("]}"));
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
558 // qDebug() << query.value("steps").toString();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
559 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
560 QString msg = QString("{\"device\":\"fermenters\",\"node\":\"" + _node + "\",\"unit\":\"" + _alias + "\",%1}").arg(payload);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
561 qDebug() << "profile_changed" << val << msg;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
562 webSocket->sendTextMessage(msg);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
563 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
564
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
565

mercurial