Sat, 19 Aug 2023 16:58:03 +0200
In fermentation plot draw the SG line with temperature compensation.
src/ChartiSpindel.cpp | file | annotate | diff | comparison | revisions | |
src/Utils.cpp | file | annotate | diff | comparison | revisions | |
src/Utils.h | file | annotate | diff | comparison | revisions | |
translations/bmsapp_en.ts | file | annotate | diff | comparison | revisions | |
translations/bmsapp_nl.ts | file | annotate | diff | comparison | revisions |
--- a/src/ChartiSpindel.cpp Fri Jul 07 20:17:21 2023 +0200 +++ b/src/ChartiSpindel.cpp Sat Aug 19 16:58:03 2023 +0200 @@ -17,13 +17,14 @@ #include "ChartiSpindel.h" #include "callout.h" #include "MainWindow.h" +#include "Utils.h" ChartiSpindel::ChartiSpindel(QString code, QString name, QWidget *parent) : QDialog(parent) { QSqlQuery query; double timestamp; - double sg_min = 1.2, sg_max = 0.8, sg; + double sg_min = 1.2, sg_max = 0.8, mg, sg; double temp_min = 100, temp_max = 0, temp; double batt_min = 4.5, batt_max = 3.0, batt; @@ -57,18 +58,22 @@ while (query.next()) { timestamp = query.value("datetime").toDateTime().toSecsSinceEpoch() * 1000; - sg = query.value("sg").toDouble(); - if ((ceil(sg * 100) / 100) > sg_max) - sg_max = ceil(sg * 100) / 100; - if ((floor(sg * 100) / 100) < sg_min) - sg_min = floor(sg * 100) / 100; - + mg = query.value("sg").toDouble(); temp = query.value("temperature").toDouble(); if (ceil(temp) > temp_max) temp_max = ceil(temp); if (floor(temp) < temp_min) temp_min = floor(temp); + /* + * Correct the SG plotline for temperature. + */ + sg = Utils::HydroCorrection(mg, temp, 20.0); + if ((ceil(sg * 100) / 100) > sg_max) + sg_max = ceil(sg * 100) / 100; + if ((floor(sg * 100) / 100) < sg_min) + sg_min = floor(sg * 100) / 100; + batt = round(query.value("battery").toDouble() * 500) / 500; if ((ceil(batt * 10) / 10) > batt_max) batt_max = ceil(batt * 10) / 10;
--- a/src/Utils.cpp Fri Jul 07 20:17:21 2023 +0200 +++ b/src/Utils.cpp Sat Aug 19 16:58:03 2023 +0200 @@ -877,3 +877,14 @@ return P; } + +double Utils::HydroCorrection(double mg, double tr, double tc) +{ + double trf = tr * 1.8 + 32; + double tcf = tc * 1.8 + 32; + + return mg * ((1.00130346 - 1.34722124E-4 * trf + 2.04052596E-6 * trf * trf - 2.32820948E-9 * trf * trf * trf) / + (1.00130346 - 1.34722124E-4 * tcf + 2.04052596E-6 * tcf * tcf - 2.32820948E-9 * tcf * tcf * tcf)); +} + +
--- a/src/Utils.h Fri Jul 07 20:17:21 2023 +0200 +++ b/src/Utils.h Sat Aug 19 16:58:03 2023 +0200 @@ -240,6 +240,15 @@ * @return Pressure in Bar. */ double GetPressureBar(double gl, double T); + + /** + * @brief Calculate Hydrometer (and iSpindel) Correction. + * @param mg Measured SG + * @param tr Temperature at reading in C + * @param tc Calibration temperature in C + * @return Corrected SG. + */ + double HydroCorrection(double mg, double tr, double tc); } #endif
--- a/translations/bmsapp_en.ts Fri Jul 07 20:17:21 2023 +0200 +++ b/translations/bmsapp_en.ts Sat Aug 19 16:58:03 2023 +0200 @@ -163,79 +163,79 @@ <context> <name>ChartiSpindel</name> <message> - <location filename="../src/ChartiSpindel.cpp" line="33"/> + <location filename="../src/ChartiSpindel.cpp" line="34"/> <source>BMSapp - iSpindel </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="38"/> + <location filename="../src/ChartiSpindel.cpp" line="39"/> <source>Save</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="83"/> + <location filename="../src/ChartiSpindel.cpp" line="88"/> <source>Temperature</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="85"/> + <location filename="../src/ChartiSpindel.cpp" line="90"/> <source>SG</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="89"/> + <location filename="../src/ChartiSpindel.cpp" line="94"/> <source>Battery</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="101"/> + <location filename="../src/ChartiSpindel.cpp" line="106"/> <source>Date</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="112"/> + <location filename="../src/ChartiSpindel.cpp" line="117"/> <source>Temperature °C</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="130"/> + <location filename="../src/ChartiSpindel.cpp" line="135"/> <source>Battery volt</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="172"/> + <location filename="../src/ChartiSpindel.cpp" line="177"/> <source>Save Image</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="172"/> + <location filename="../src/ChartiSpindel.cpp" line="177"/> <source>Image (*.png)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="174"/> + <location filename="../src/ChartiSpindel.cpp" line="179"/> <source>Save File</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="174"/> + <location filename="../src/ChartiSpindel.cpp" line="179"/> <source>No image file selected.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="204"/> + <location filename="../src/ChartiSpindel.cpp" line="209"/> <source>%1 Temperature %2°C</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="206"/> + <location filename="../src/ChartiSpindel.cpp" line="211"/> <source>%1 Density %2 SG</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="214"/> + <location filename="../src/ChartiSpindel.cpp" line="219"/> <source>%1 Battery %2 volt Capacity %3%</source>
--- a/translations/bmsapp_nl.ts Fri Jul 07 20:17:21 2023 +0200 +++ b/translations/bmsapp_nl.ts Sat Aug 19 16:58:03 2023 +0200 @@ -193,7 +193,7 @@ <context> <name>ChartiSpindel</name> <message> - <location filename="../src/ChartiSpindel.cpp" line="33"/> + <location filename="../src/ChartiSpindel.cpp" line="34"/> <source>BMSapp - iSpindel </source> <translation>BMSapp - iSpindel </translation> </message> @@ -202,76 +202,76 @@ <translation type="vanished">Temp °C</translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="38"/> + <location filename="../src/ChartiSpindel.cpp" line="39"/> <source>Save</source> <translation>Bewaar</translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="83"/> + <location filename="../src/ChartiSpindel.cpp" line="88"/> <source>Temperature</source> <translation>Temperatuur</translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="85"/> + <location filename="../src/ChartiSpindel.cpp" line="90"/> <source>SG</source> <translation>SG</translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="89"/> + <location filename="../src/ChartiSpindel.cpp" line="94"/> <source>Battery</source> <translation>Batterij</translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="101"/> + <location filename="../src/ChartiSpindel.cpp" line="106"/> <source>Date</source> <translation>Datum</translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="112"/> + <location filename="../src/ChartiSpindel.cpp" line="117"/> <source>Temperature °C</source> <translation>Temperatuur °C</translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="130"/> + <location filename="../src/ChartiSpindel.cpp" line="135"/> <source>Battery volt</source> <translation>Batterij volt</translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="172"/> + <location filename="../src/ChartiSpindel.cpp" line="177"/> <source>Save Image</source> <translation>Opslaan plaatje</translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="172"/> + <location filename="../src/ChartiSpindel.cpp" line="177"/> <source>Image (*.png)</source> <translation>Plaatje (*.png)</translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="174"/> + <location filename="../src/ChartiSpindel.cpp" line="179"/> <source>Save File</source> <translation>Bestand opslaan</translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="174"/> + <location filename="../src/ChartiSpindel.cpp" line="179"/> <source>No image file selected.</source> <translation>Geen plaatjes bestand gekozen.</translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="204"/> + <location filename="../src/ChartiSpindel.cpp" line="209"/> <source>%1 Temperature %2°C</source> <translation>%1 Temperatuur %2°C</translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="206"/> + <location filename="../src/ChartiSpindel.cpp" line="211"/> <source>%1 Density %2 SG</source> <translation>%1 Dichtheid %2 SG</translation> </message> <message> - <location filename="../src/ChartiSpindel.cpp" line="214"/> + <location filename="../src/ChartiSpindel.cpp" line="219"/> <source>%1 Battery %2 volt Capacity %3%</source>