src/DetailFermenter.cpp

Fri, 01 Jul 2022 19:52:11 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Fri, 01 Jul 2022 19:52:11 +0200
changeset 324
c1bb6b197763
parent 323
d053ffbbf3e9
child 325
fa946d12d937
permissions
-rw-r--r--

Implemented profile control. Added stage edit. Added manual control. Added temperature setting.

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"
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
18 #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
19 #include "global.h"
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
20 #include "MainWindow.h"
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
21
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
22
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
23 /*
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
24 * 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
25 * 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
26 * 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
27 */
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
28
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
29 DetailFermenter::DetailFermenter(int id, QWidget *parent) : QDialog(parent), ui(new Ui::DetailFermenter)
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
30 {
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
31 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
32
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
33 qDebug() << "DetailFermenter record:" << id;
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
34 ui->setupUi(this);
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
35 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
36 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
37 setWindowTitle(tr("BMSapp - Details Fermenter"));
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
38
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
39 ui->airThermo->setMaximum(45.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
40 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
41 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
42 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
43
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 ui->beerThermo->setMaximum(45.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
45 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
46 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
47 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
48
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 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
50 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
51 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
52 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
53 ui->modeEdit->addItem("PROFILE");
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
54
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
55 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
56 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
57 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
58 ui->stageEdit->addItem("CARBONATION");
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
59
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
60 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
61 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
62 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
63 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
64 }
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
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
66 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
67 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
68 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
69 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
70 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
71
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
72 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
73 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
74 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
75 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
76 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
77 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
78 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
79 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
80 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
81 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
82 connect(ui->profilePick, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &DetailFermenter::profile_changed);
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
83 connect(parent, SIGNAL(updateFermenter(QString)), this, SLOT(refreshFermenter(QString)));
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
84 emit refreshTable();
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
85 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
86
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
87
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
88 void DetailFermenter::refreshTable()
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
89 {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
90 QSqlQuery query;
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
91
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
92 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
93
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
94 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
95 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
96 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
97 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
98 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
99 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
100
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
101 query.prepare("SELECT * FROM mon_fermenters WHERE record = :recno");
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
102 query.bindValue(":recno", this->recno);
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
103 query.exec();
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
104 if (query.next()) {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
105
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
106 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
107 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
108 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
109 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
110 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
111
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
112 _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
113 _alias = query.value("alias").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
114
318
ff02aca2b63c Removed LED plugin, now using the one from the AnalogWidgets.
Michiel Broek <mbroek@mbse.eu>
parents: 317
diff changeset
115 ui->uuidEdit->setText(query.value("uuid").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
116 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
117 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
118
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
119 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
120 ui->statusEdit->setText(tr("Online"));
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
121 ui->codeEdit->setText(query.value("beercode").toString()+" - "+query.value("beername").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
122 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
123 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
124 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
125 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
126
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 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
128 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
129 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
130 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
131 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
132 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
133 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
134 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
135 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
136 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
137
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
138 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
139 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
140 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
141 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
142 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
143 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
144 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
145 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
146
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 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
148 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
149 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
150 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
151 } 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
152 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
153 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
154 }
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
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 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
157 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
158 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
159 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
160 } 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
161 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
162 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
163 }
318
ff02aca2b63c Removed LED plugin, now using the one from the AnalogWidgets.
Michiel Broek <mbroek@mbse.eu>
parents: 317
diff changeset
164
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
165 if (query.value("mode").toString() == "OFF") {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
166 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
167 ui->codePick->show();
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
168 } else {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
169 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
170 ui->codePick->hide();
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
171 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
172 ui->alarmLED->setChecked((query.value("alarm").toInt() != 0) ? true:false);
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
173
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
174 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
175 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
176 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
177 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
178 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
179 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
180 } 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
181 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
182 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
183 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
184 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
185 }
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
186 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
187 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
188 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
189 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
190
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->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
192 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
193 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
194 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
195
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 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
197 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
198 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
199 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
200 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
201 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
202 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
203 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
204 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
205 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
206 // 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
207 } 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
208 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
209 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
210 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
211 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
212 }
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
213
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
214 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
215 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
216 } else {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
217 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
218 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
219 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
220
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
221 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
222 _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
223 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
224 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
225 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
226 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
227 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
228 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
229 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
230 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
231 } 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
232 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
233 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
234 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
235 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
236 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
237 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
238 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
239 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
240 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
241 } 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
242 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
243 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
244 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
245 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
246 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
247 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
248 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
249 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
250 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
251 } 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
252 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
253 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
254 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
255 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
256 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
257 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
258 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
259 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
260 } else {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
261 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
262 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
263 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
264 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
265 _profile = QString("");
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
266 }
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
267
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
268 ui->thermoBox->show();
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
269 if (query.value("air_state").toString() == "OK") {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
270 ui->airThermo->setValue(query.value("air_temperature").toDouble());
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
271 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
272 if (query.value("beer_state").toString() == "OK") {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
273 ui->beerThermo->setValue(query.value("beer_temperature").toDouble());
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
274 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
275
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
276 } else {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
277 /* 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
278 ui->statusEdit->setText(tr("Offline"));
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
279 ui->powerLED->setChecked(false);
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
280 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
281 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
282 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
283 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
284 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
285 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
286 ui->switchBox->hide();
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
287 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
288 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
289
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
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
292
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
293 DetailFermenter::~DetailFermenter()
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
294 {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
295 qDebug() << "DetailFermenter done";
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
296 delete ui;
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
297 emit entry_changed();
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
298 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
299
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
300
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
301 /*
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
302 * 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
303 * Check if the signal is for us.
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
304 */
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
305 void DetailFermenter::refreshFermenter(QString data)
317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
306 {
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
307 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
308 qDebug() << "for us";
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
309 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
310 }
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 void DetailFermenter::on_quitButton_clicked()
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 this->close();
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
317 this->setResult(1);
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
318 }
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
319
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
320
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
321 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
322 {
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
323 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
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
325 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
326 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
327 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
328 .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
329 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
330 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
331 }
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
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
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
334 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
335 {
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
336 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
337
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
338 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
339 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
340 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
341 .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
342 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
343 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
344 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
345
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
346
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
347 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
348 {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
349 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
350 .arg((heat_state)?100:0).arg((cool_state)?100:0).arg((fan_state)?100:0);
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
351 qDebug() << msg;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
352 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
353 }
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
354
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
355
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
356 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
357 {
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
358 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
359 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
360 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
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
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 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
365 {
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
366 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
367 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
368 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
369 }
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
370
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
371
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
372 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
373 {
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
374 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
375 send_switches();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
376 }
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
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
379 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
380 {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
381 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
382 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
383 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
384 qDebug() << msg;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
385 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
386 return;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
387 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
388
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
389 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
390 // use popup
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
391 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
392 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
393 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
394 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
395 qDebug() << msg;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
396 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
397 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
398 return;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
399 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
400
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
401 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
402 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
403 qDebug() << msg;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
404 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
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
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
409 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
410 {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
411 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
412
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
413 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
414 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
415 qDebug() << msg;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
416 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
417 }
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
418 }
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
419
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
420
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
421 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
422 {
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
423 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
424 QString msg = QString("{\"device\":\"fermenters\",\"node\":\"" + _node + "\",\"unit\":\"" + _alias + "\",\"mode\":\"" + mode[val] + "\"}");
324
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
425 qDebug() << "mode_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
426 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
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
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
430 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
431 {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
432 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
433 QString msg = QString("{\"device\":\"fermenters\",\"node\":\"" + _node + "\",\"unit\":\"" + _alias + "\",\"stage\":\"" + stage[val] + "\"}");
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
434 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
435 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
436 }
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
437
324
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 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
440 {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
441 QString msg = QString("");
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
442 qDebug() << "code_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
443 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
444
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
445
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
446 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
447 {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
448 QString payload;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
449 QSqlQuery query;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
450 QJsonParseError parseError;
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
451
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
452 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
453 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
454 } else {
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
455 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
456 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
457 query.next();
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
458 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
459 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
460 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
461 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
462 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
463 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
464
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
465 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
466 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
467 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
468 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
469 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
470 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
471 } 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
472 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
473 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
474 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
475 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
476 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
477 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
478 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
479 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
480 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
481 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
482 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
483 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
484 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
485
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
486 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
487 // 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
488 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
489 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
490 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
491 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
492 }
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
493
c1bb6b197763 Implemented profile control. Added stage edit. Added manual control. Added temperature setting.
Michiel Broek <mbroek@mbse.eu>
parents: 323
diff changeset
494

mercurial