Sat, 01 Jun 2024 21:10:54 +0200
Added fields for target_water and auto upgrade the products table
503
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
1 | /** |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
2 | * CalibrateiSpindel.cpp is part of bmsapp. |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
3 | * |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
4 | * bmsapp is free software: you can redistribute it and/or modify |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
5 | * it under the terms of the GNU General Public License as published by |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
6 | * the Free Software Foundation, either version 3 of the License, or |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
7 | * (at your option) any later version. |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
8 | * |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
9 | * bmsapp is distributed in the hope that it will be useful, |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
12 | * GNU General Public License for more details. |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
13 | * |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
14 | * You should have received a copy of the GNU General Public License |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
15 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
16 | */ |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
17 | #include "CalibrateiSpindel.h" |
505
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
18 | #include "../ui/ui_CalibrateiSpindel.h" |
503
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
19 | #include "global.h" |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
20 | #include "Utils.h" |
506
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
21 | #include "polyfit.h" |
503
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
22 | #include "MainWindow.h" |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
23 | |
509
af4a8649245e
Added MySQL query example in the source.
Michiel Broek <mbroek@mbse.eu>
parents:
507
diff
changeset
|
24 | /* |
af4a8649245e
Added MySQL query example in the source.
Michiel Broek <mbroek@mbse.eu>
parents:
507
diff
changeset
|
25 | * The following MySQL query produces a table with historic real results: |
af4a8649245e
Added MySQL query example in the source.
Michiel Broek <mbroek@mbse.eu>
parents:
507
diff
changeset
|
26 | * |
af4a8649245e
Added MySQL query example in the source.
Michiel Broek <mbroek@mbse.eu>
parents:
507
diff
changeset
|
27 | * SELECT pr.code, |
af4a8649245e
Added MySQL query example in the source.
Michiel Broek <mbroek@mbse.eu>
parents:
507
diff
changeset
|
28 | * pr.og, |
af4a8649245e
Added MySQL query example in the source.
Michiel Broek <mbroek@mbse.eu>
parents:
507
diff
changeset
|
29 | * (SELECT angle FROM log_ispindel WHERE code=pr.code ORDER BY datetime LIMIT 1) as og_angle, |
af4a8649245e
Added MySQL query example in the source.
Michiel Broek <mbroek@mbse.eu>
parents:
507
diff
changeset
|
30 | * pr.fg, |
af4a8649245e
Added MySQL query example in the source.
Michiel Broek <mbroek@mbse.eu>
parents:
507
diff
changeset
|
31 | * (SELECT angle FROM log_ispindel WHERE code=pr.code ORDER BY datetime DESC LIMIT 1) as fg_angle |
af4a8649245e
Added MySQL query example in the source.
Michiel Broek <mbroek@mbse.eu>
parents:
507
diff
changeset
|
32 | * FROM products AS pr |
af4a8649245e
Added MySQL query example in the source.
Michiel Broek <mbroek@mbse.eu>
parents:
507
diff
changeset
|
33 | * WHERE pr.stage=11 AND pr.log_ispindel=1 |
af4a8649245e
Added MySQL query example in the source.
Michiel Broek <mbroek@mbse.eu>
parents:
507
diff
changeset
|
34 | * ORDER BY pr.fg DESC |
af4a8649245e
Added MySQL query example in the source.
Michiel Broek <mbroek@mbse.eu>
parents:
507
diff
changeset
|
35 | * ; |
af4a8649245e
Added MySQL query example in the source.
Michiel Broek <mbroek@mbse.eu>
parents:
507
diff
changeset
|
36 | */ |
503
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
37 | |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
38 | |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
39 | CalibrateiSpindel::CalibrateiSpindel(int id, QWidget *parent) : QDialog(parent), ui(new Ui::CalibrateiSpindel) |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
40 | { |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
41 | QSqlQuery query; |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
42 | |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
43 | #ifdef DEBUG_MONITOR |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
44 | qDebug() << "CalibrateiSpindel record:" << id; |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
45 | #endif |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
46 | |
505
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
47 | ui->setupUi(this); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
48 | this->recno = id; |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
49 | setWindowFlags(Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
50 | WindowTitle(); |
503
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
51 | |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
52 | query.prepare("SELECT node,alias,calibrate FROM mon_ispindels WHERE record = :recno"); |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
53 | query.bindValue(":recno", this->recno); |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
54 | query.exec(); |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
55 | if (query.next()) { |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
56 | |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
57 | _node = query.value("node").toString(); |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
58 | _alias = query.value("alias").toString(); |
505
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
59 | ui->nameEdit->setText(_node+"/"+_alias); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
60 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
61 | QJsonParseError parseError; |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
62 | const auto& json = query.value("calibrate").toString(); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
63 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
64 | if (!json.trimmed().isEmpty()) { |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
65 | const auto& formattedJson = QString("%1").arg(json); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
66 | QJsonDocument jsonResponse = QJsonDocument::fromJson(formattedJson.toUtf8(), &parseError); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
67 | if (parseError.error != QJsonParseError::NoError) { |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
68 | qWarning() << "Parse error: " << parseError.errorString() << "at" << parseError.offset ; |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
69 | } else { |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
70 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
71 | QJsonObject jsonObj = jsonResponse.object(); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
72 | QJsonArray polyData = jsonObj.value("polyData").toArray(); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
73 | for (int i = 0; i < polyData.size(); i++) { |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
74 | Old[i] = New[i] = polyData.at(i).toDouble(); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
75 | } |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
76 | _data_old = QString("(%1 * x^3) + (%2 * x^2) + (%3 * x) + %4").arg(Old[0], 0, 'f', 9, '0').arg(Old[1], 0, 'f', 9, '0').arg(Old[2], 0, 'f', 9, '0').arg(Old[3], 0, 'f', 9, '0'); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
77 | ui->oldEdit->setText(_data_old); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
78 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
79 | QJsonArray calData = jsonObj.value("calData").toArray(); |
506
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
80 | oldtotal = 0; |
505
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
81 | for (int i = 0; i < calData.size(); i++) { |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
82 | QJsonObject calObj = calData.at(i).toObject(); |
510
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
83 | Calibrate c; |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
84 | c.plato = calObj["plato"].toDouble(); |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
85 | c.angle = calObj["angle"].toDouble(); |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
86 | c.sg = Utils::plato_to_sg(c.plato); |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
87 | nCal.append(c); |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
88 | oCal.append(c); |
506
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
89 | oldtotal++; |
505
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
90 | } |
506
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
91 | newtotal = oldtotal; |
505
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
92 | } |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
93 | } |
503
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
94 | |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
95 | } |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
96 | |
505
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
97 | connect(ui->dataTable, SIGNAL(cellChanged(int, int)), this, SLOT(cell_Changed(int, int))); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
98 | emit refreshTable(); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
99 | } |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
100 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
101 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
102 | void CalibrateiSpindel::refreshTable() |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
103 | { |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
104 | QString w; |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
105 | QWidget* pWidget; |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
106 | QHBoxLayout* pLayout; |
506
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
107 | double d, x[12], y[12]; |
511
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
108 | bool gerror, aerror; |
505
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
109 | |
506
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
110 | qDebug() << "refreshTable" << oldtotal << newtotal; |
505
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
111 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
112 | /* |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
113 | * During filling the table turn off the cellChanged signal because every cell that is filled |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
114 | * triggers the cellChanged signal. The QTableWidget has no better signal to use. |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
115 | */ |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
116 | this->ignoreChanges = true; |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
117 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
118 | const QStringList labels({tr("SG"), tr("°Plato"), tr("Angle"), tr("Del")}); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
119 | ui->dataTable->setColumnCount(4); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
120 | ui->dataTable->setColumnWidth(0, 100); /* SG */ |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
121 | ui->dataTable->setColumnWidth(1, 100); /* °Plato */ |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
122 | ui->dataTable->setColumnWidth(2, 100); /* Tilt angle */ |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
123 | ui->dataTable->setColumnWidth(3, 55); /* Del button */ |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
124 | ui->dataTable->setHorizontalHeaderLabels(labels); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
125 | ui->dataTable->verticalHeader()->hide(); |
506
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
126 | ui->dataTable->setRowCount(newtotal); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
127 | |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
128 | for (int i = 0; i < 12; i++) { |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
129 | x[i] = y[i] = 0; |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
130 | } |
505
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
131 | |
510
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
132 | std::sort(nCal.begin() , nCal.end(), [=]( const Calibrate& test1 , const Calibrate& test2 )->bool { |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
133 | return test2.angle < test1.angle; |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
134 | }); |
511
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
135 | this->dataHasErrors = false; |
510
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
136 | |
506
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
137 | for (int i = 0; i < newtotal; i++) { |
505
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
138 | |
506
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
139 | y[i] = nCal[i].plato; |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
140 | x[i] = nCal[i].angle; |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
141 | |
511
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
142 | gerror = aerror = false; |
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
143 | if ((nCal[i].angle < 10) || (nCal[i].angle > 80)) |
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
144 | aerror = true; |
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
145 | if (i == 0) { |
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
146 | if (nCal[0].plato <= nCal[1].plato) |
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
147 | gerror = true; |
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
148 | } else if (i == (newtotal -1)) { |
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
149 | if (nCal[i].plato != 0) |
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
150 | gerror = true; |
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
151 | } else { |
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
152 | if ((nCal[i].plato <= nCal[i + 1].plato) || (nCal[i].plato >= nCal[i - 1].plato)) |
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
153 | gerror = true; |
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
154 | } |
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
155 | if (gerror || aerror) |
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
156 | this->dataHasErrors = true; |
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
157 | |
505
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
158 | w = QString("%1").arg(nCal[i].sg, 1, 'f', 4, '0'); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
159 | QTableWidgetItem *item = new QTableWidgetItem(w); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
160 | item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); |
511
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
161 | if (gerror) |
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
162 | item->setForeground(QBrush(QColor(Qt::red))); |
505
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
163 | ui->dataTable->setItem(i, 0, item); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
164 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
165 | w = QString("%1").arg(nCal[i].plato, 1, 'f', 3, '0'); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
166 | item = new QTableWidgetItem(w); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
167 | item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); |
511
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
168 | if (gerror) |
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
169 | item->setForeground(QBrush(QColor(Qt::red))); |
505
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
170 | ui->dataTable->setItem(i, 1, item); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
171 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
172 | w = QString("%1").arg(nCal[i].angle, 1, 'f', 5, '0'); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
173 | item = new QTableWidgetItem(w); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
174 | item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); |
511
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
175 | if (aerror) |
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
176 | item->setForeground(QBrush(QColor(Qt::red))); |
505
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
177 | ui->dataTable->setItem(i, 2, item); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
178 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
179 | /* Add the Delete row button */ |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
180 | pWidget = new QWidget(); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
181 | QPushButton* btn_del = new QPushButton(); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
182 | btn_del->setObjectName(QString("%1").arg(i)); /* Send row with the button */ |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
183 | btn_del->setText(tr("Del")); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
184 | connect(btn_del, SIGNAL(clicked()), this, SLOT(on_deleteRow_clicked())); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
185 | pLayout = new QHBoxLayout(pWidget); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
186 | pLayout->addWidget(btn_del); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
187 | pLayout->setContentsMargins(5, 0, 5, 0); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
188 | pWidget->setLayout(pLayout); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
189 | ui->dataTable->setCellWidget(i, 3, pWidget); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
190 | } |
506
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
191 | int rc = Polyfit::polyfit(newtotal, x, y, 4, New); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
192 | |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
193 | _data_new = QString("(%1 * x^3) + (%2 * x^2) + (%3 * x) + %4").arg(New[0], 0, 'f', 9, '0').arg(New[1], 0, 'f', 9, '0').arg(New[2], 0, 'f', 9, '0').arg(New[3], 0, 'f', 9, '0'); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
194 | ui->newEdit->setText(_data_new); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
195 | |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
196 | /* |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
197 | * Check the new formula against the old formula. |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
198 | */ |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
199 | this->textIsChanged = (_data_old.compare(_data_new) == 0) ? false:true; |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
200 | CalibrateiSpindel::WindowTitle(); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
201 | |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
202 | new_plot = new QLineSeries(); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
203 | old_plot = new QLineSeries(); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
204 | |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
205 | for (int i = 0; i < oldtotal; i++) { |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
206 | old_plot->append(oCal[i].angle, oCal[i].plato); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
207 | } |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
208 | for (int i = 0; i < newtotal; i++) { |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
209 | new_plot->append(nCal[i].angle, nCal[i].plato); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
210 | } |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
211 | |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
212 | old_plot->setName(tr("Old")); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
213 | new_plot->setName(tr("New")); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
214 | |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
215 | chart = new QChart(); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
216 | chart->setTitle(tr("Calibration plot")); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
217 | chart->addSeries(old_plot); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
218 | chart->addSeries(new_plot); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
219 | |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
220 | QValueAxis *axisX = new QValueAxis; |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
221 | axisX->setRange(10, 80); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
222 | axisX->setTickCount(8); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
223 | axisX->setLabelFormat("%.0f"); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
224 | axisX->setTitleText(tr("Angle")); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
225 | axisX->setLabelsFont(QFont("Helvetica", 8, QFont::Normal)); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
226 | chart->addAxis(axisX, Qt::AlignBottom); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
227 | old_plot->attachAxis(axisX); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
228 | new_plot->attachAxis(axisX); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
229 | |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
230 | QValueAxis *axisY = new QValueAxis; |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
231 | axisY->setRange(0, 20); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
232 | axisY->setTickCount(11); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
233 | axisY->setLabelFormat("%.1f"); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
234 | axisY->setTitleText("Plato"); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
235 | axisY->setLabelsFont(QFont("Helvetica", 8, QFont::Normal)); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
236 | chart->addAxis(axisY, Qt::AlignLeft); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
237 | old_plot->attachAxis(axisY); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
238 | new_plot->attachAxis(axisY); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
239 | |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
240 | ui->chartView->setRenderHint(QPainter::Antialiasing); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
241 | ui->chartView->setChart(chart); |
505
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
242 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
243 | this->ignoreChanges = false; |
503
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
244 | } |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
245 | |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
246 | |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
247 | CalibrateiSpindel::~CalibrateiSpindel() |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
248 | { |
505
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
249 | delete ui; |
512
1dfae8de6ca9
Removed several development debug messages. Implemented delete and add data row.
Michiel Broek <mbroek@mbse.eu>
parents:
511
diff
changeset
|
250 | emit entry_changed(); |
503
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
251 | } |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
252 | |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
253 | |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
254 | void CalibrateiSpindel::on_quitButton_clicked() |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
255 | { |
510
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
256 | if (this->textIsChanged) { |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
257 | int rc = QMessageBox::warning(this, tr("iSpindel calibrate changed"), tr("The calibration data has been modified. Save changes?"), |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
258 | QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel, QMessageBox::Save); |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
259 | switch (rc) { |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
260 | case QMessageBox::Save: |
511
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
261 | if (this->dataHasErrors) { |
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
262 | QMessageBox::warning(this, tr("iSpindel calibrate"), tr("Data is changed but has errors, not saving.")); |
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
263 | return; /* Return to the editor page */ |
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
264 | } else { |
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
265 | SaveData(); |
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
266 | } |
510
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
267 | break; /* Saved and then Quit */ |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
268 | case QMessageBox::Discard: |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
269 | break; /* Quit without Save */ |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
270 | case QMessageBox::Cancel: |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
271 | return; /* Return to the editor page */ |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
272 | } |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
273 | } |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
274 | |
503
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
275 | this->close(); |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
276 | this->setResult(1); |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
277 | } |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
278 | |
61c114afb0ee
Basic setup for iSpindel calibration.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
279 | |
511
c6fa5be47634
Added error checks on calibration data
Michiel Broek <mbroek@mbse.eu>
parents:
510
diff
changeset
|
280 | void CalibrateiSpindel::SaveData() |
505
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
281 | { |
510
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
282 | QSqlQuery query; |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
283 | |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
284 | if (this->textIsChanged) { |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
285 | /* |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
286 | * Build json data |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
287 | */ |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
288 | QJsonObject calObj; |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
289 | QJsonArray coeff, poly; |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
290 | |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
291 | for (int i = 0; i < 4; i++) { |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
292 | coeff.append(New[i]); |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
293 | } |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
294 | calObj.insert("polyData", coeff); |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
295 | for (int i = 0; i < newtotal; i++) { |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
296 | QJsonObject obj; |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
297 | obj.insert("plato", nCal[i].plato); |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
298 | obj.insert("angle", nCal[i].angle); |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
299 | poly.append(obj); |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
300 | } |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
301 | calObj.insert("calData", poly); |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
302 | |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
303 | query.prepare("UPDATE mon_ispindels SET calibrate=:calibrate WHERE record = :recno"); |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
304 | query.bindValue(":calibrate", QJsonDocument(calObj).toJson(QJsonDocument::Compact) ); |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
305 | query.bindValue(":recno", this->recno); |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
306 | query.exec(); |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
307 | if (query.lastError().isValid()) { |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
308 | qWarning() << "CalibrateiSpindel" << query.lastError(); |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
309 | QMessageBox::warning(this, tr("Database error"), |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
310 | tr("MySQL error: %1\n%2\n%3") |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
311 | .arg(query.lastError().nativeErrorCode()) |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
312 | .arg(query.lastError().driverText()) |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
313 | .arg(query.lastError().databaseText())); |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
314 | } else { |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
315 | qDebug() << "CalibrateiSpindel Saved"; |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
316 | } |
080524ab2fe8
Changed xCal array to a QList. Added sort on angle. Added save data. Added quit/save dialog.
Michiel Broek <mbroek@mbse.eu>
parents:
509
diff
changeset
|
317 | } |
505
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
318 | } |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
319 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
320 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
321 | void CalibrateiSpindel::on_deleteRow_clicked() |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
322 | { |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
323 | QPushButton *pb = qobject_cast<QPushButton *>(QObject::sender()); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
324 | int row = pb->objectName().toInt(); |
506
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
325 | qDebug() << "Delete row" << row << newtotal; |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
326 | |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
327 | if (newtotal < 4) { |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
328 | QMessageBox::warning(this, tr("iSpindel calibrate"), tr("You cannot delete too many rows.")); |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
329 | return; |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
330 | } |
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
331 | |
512
1dfae8de6ca9
Removed several development debug messages. Implemented delete and add data row.
Michiel Broek <mbroek@mbse.eu>
parents:
511
diff
changeset
|
332 | nCal.removeAt(row); |
1dfae8de6ca9
Removed several development debug messages. Implemented delete and add data row.
Michiel Broek <mbroek@mbse.eu>
parents:
511
diff
changeset
|
333 | newtotal--; |
506
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
334 | emit refreshTable(); |
505
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
335 | } |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
336 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
337 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
338 | void CalibrateiSpindel::on_addButton_clicked() |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
339 | { |
506
ea07f6c97a69
Added Simple polynomial fitting functions written by Henry M. Forson. Added a graph that displays the old and new iSpindel calibration curve. Implemented delete row from the data.
Michiel Broek <mbroek@mbse.eu>
parents:
505
diff
changeset
|
340 | qDebug() << "Add row" << newtotal; |
512
1dfae8de6ca9
Removed several development debug messages. Implemented delete and add data row.
Michiel Broek <mbroek@mbse.eu>
parents:
511
diff
changeset
|
341 | this->ignoreChanges = true; |
1dfae8de6ca9
Removed several development debug messages. Implemented delete and add data row.
Michiel Broek <mbroek@mbse.eu>
parents:
511
diff
changeset
|
342 | |
1dfae8de6ca9
Removed several development debug messages. Implemented delete and add data row.
Michiel Broek <mbroek@mbse.eu>
parents:
511
diff
changeset
|
343 | Calibrate c; |
1dfae8de6ca9
Removed several development debug messages. Implemented delete and add data row.
Michiel Broek <mbroek@mbse.eu>
parents:
511
diff
changeset
|
344 | c.plato = 10.0; |
1dfae8de6ca9
Removed several development debug messages. Implemented delete and add data row.
Michiel Broek <mbroek@mbse.eu>
parents:
511
diff
changeset
|
345 | c.angle = 50.0; |
1dfae8de6ca9
Removed several development debug messages. Implemented delete and add data row.
Michiel Broek <mbroek@mbse.eu>
parents:
511
diff
changeset
|
346 | c.sg = Utils::plato_to_sg(10.0); |
1dfae8de6ca9
Removed several development debug messages. Implemented delete and add data row.
Michiel Broek <mbroek@mbse.eu>
parents:
511
diff
changeset
|
347 | nCal.append(c); |
1dfae8de6ca9
Removed several development debug messages. Implemented delete and add data row.
Michiel Broek <mbroek@mbse.eu>
parents:
511
diff
changeset
|
348 | newtotal++; |
1dfae8de6ca9
Removed several development debug messages. Implemented delete and add data row.
Michiel Broek <mbroek@mbse.eu>
parents:
511
diff
changeset
|
349 | |
1dfae8de6ca9
Removed several development debug messages. Implemented delete and add data row.
Michiel Broek <mbroek@mbse.eu>
parents:
511
diff
changeset
|
350 | this->ignoreChanges = false; |
1dfae8de6ca9
Removed several development debug messages. Implemented delete and add data row.
Michiel Broek <mbroek@mbse.eu>
parents:
511
diff
changeset
|
351 | emit refreshTable(); |
505
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
352 | } |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
353 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
354 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
355 | void CalibrateiSpindel::cell_Changed(int nRow, int nCol) |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
356 | { |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
357 | QString w; |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
358 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
359 | if (this->ignoreChanges) |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
360 | return; |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
361 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
362 | qDebug() << "Cell at row " + QString::number(nRow) + " column " + QString::number(nCol) + " was changed."; |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
363 | |
507
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
364 | if (nCol == 0) { // SG changed |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
365 | double d = ui->dataTable->item(nRow, 0)->text().toDouble(); |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
366 | if (d < 1.000 || d > 1.100) { |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
367 | QMessageBox::warning(this, tr("iSpindel calibrate"), tr("The SG must be between 1.000 and 1.100.")); |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
368 | return; |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
369 | } |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
370 | nCal[nRow].sg = d; |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
371 | nCal[nRow].plato = Utils::sg_to_plato(d); |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
372 | } else if (nCol == 1) { |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
373 | double d = ui->dataTable->item(nRow, 1)->text().toDouble(); |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
374 | if (d < 0 || d > 25) { |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
375 | QMessageBox::warning(this, tr("iSpindel calibrate"), tr("Plato must be between 0 and 25.")); |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
376 | return; |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
377 | } |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
378 | nCal[nRow].plato = d; |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
379 | nCal[nRow].sg = Utils::plato_to_sg(d); |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
380 | } else if (nCol == 2) { |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
381 | double d = ui->dataTable->item(nRow, 2)->text().toDouble(); |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
382 | if (d < 10 || d > 80) { |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
383 | QMessageBox::warning(this, tr("iSpindel calibrate"), tr("The tilt angles must be between 10 and 80.")); |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
384 | return; |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
385 | } |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
386 | nCal[nRow].angle = d; |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
387 | } |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
388 | |
fa07b6c6238a
Added the cell edit function.
Michiel Broek <mbroek@mbse.eu>
parents:
506
diff
changeset
|
389 | emit refreshTable(); |
505
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
390 | } |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
391 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
392 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
393 | /* |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
394 | * Window header, mark any change with '**' |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
395 | */ |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
396 | void CalibrateiSpindel::WindowTitle() |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
397 | { |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
398 | QString txt; |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
399 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
400 | txt = QString(tr("BMSapp - Calibrate iSpindel %1").arg(this->recno)); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
401 | |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
402 | if (this->textIsChanged) { |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
403 | txt.append((QString(" **"))); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
404 | } |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
405 | setWindowTitle(txt); |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
406 | } |
7ae4d022cf8f
Load and show current calibration data.
Michiel Broek <mbroek@mbse.eu>
parents:
504
diff
changeset
|
407 |