src/EditProductTab8.cpp

changeset 530
a4d5daae8389
parent 528
50b057ae50aa
child 532
082786891630
--- a/src/EditProductTab8.cpp	Sun Jun 09 11:47:41 2024 +0200
+++ b/src/EditProductTab8.cpp	Sun Jun 09 15:20:26 2024 +0200
@@ -376,7 +376,6 @@
 	    total_alkalinity = bicarbonate * 50 / 61;
 	}
 	ph = TpH;
-	ui->wb_phEdit->setValue(ph);
 	product->mash_ph = ph;
     } else { // Manual
 	/*
@@ -416,7 +415,6 @@
 	bicarbonate = wg_bicarbonate - protonDeficit * frac / liters;
 	total_alkalinity = bicarbonate * 50 / 61;
 	ph = pHa;
-	ui->wb_phEdit->setValue(ph);
 	ui->mw_phEdit->setValue(ph);
         product->mash_ph = ph;
     }
@@ -452,13 +450,33 @@
 	ui->so4clResult->setText(tr("Very bitter"));
     else
 	ui->so4clResult->setText(tr("Too bitter"));
-    if (chloride > 0)
-	RA = sulfate / chloride;
-    else
-	RA = 10;
-    ui->cur_so4clEdit->setValue(RA);
-    ui->cur_so4clResult->setValue(RA);
+
+    /* Calculate Actual Adjustments */
+    product->aa_calcium = calcium - product->wg_calcium;
+    product->aa_magnesium = magnesium - product->wg_magnesium;
+    product->aa_bicarbonate = bicarbonate - wg_bicarbonate;
+    product->aa_sodium = sodium - product->wg_sodium;
+    product->aa_chloride = chloride - product->wg_chloride;
+    product->aa_sulfate = sulfate - product->wg_sulfate;
+    product->aa_hardness = Utils::Hardness(calcium, magnesium) - Utils::Hardness(wg_calcium, wg_magnesium);
 
+    if (product->tw_name != "") {
+        /* Calculate Target Adjustments */
+        product->ta_calcium = product->tw_calcium - product->wg_calcium;
+        product->ta_magnesium = product->tw_magnesium - product->wg_magnesium;
+        product->ta_bicarbonate = Utils::Bicarbonate(product->tw_total_alkalinity, product->tw_ph) - wg_bicarbonate;
+        product->ta_sodium = product->tw_sodium - product->wg_sodium;
+        product->ta_chloride = product->tw_chloride - product->wg_chloride;
+        product->ta_sulfate = product->tw_sulfate - product->wg_sulfate;
+        product->ta_hardness = Utils::Hardness(product->tw_calcium, product->tw_magnesium) - Utils::Hardness(product->wg_calcium, product->wg_magnesium);
+    } else {
+        product->ta_calcium = product->ta_magnesium = product->ta_bicarbonate = product->ta_sodium = 0;
+        product->ta_chloride = product->ta_sulfate = product->ta_hardness = 0;
+    }
+
+    calcSparge();
+
+    /* Store treated mash water */
     product->wb_calcium = calcium;
     product->wb_magnesium = magnesium;
     product->wb_total_alkalinity = total_alkalinity;
@@ -467,6 +485,22 @@
     product->wb_sulfate = sulfate;
     product->wb_ph = ph;
 
+    /* Mix sparge and mash waters to display the final water. */
+    qDebug() << " ca" << product->wg_amount << product->sparge_volume << calcium << product->ws_calcium;
+    calcium = Utils::mix(product->wg_amount, product->sparge_volume, calcium, product->ws_calcium);
+    magnesium = Utils::mix(product->wg_amount, product->sparge_volume, magnesium, product->ws_magnesium);
+    sodium = Utils::mix(product->wg_amount, product->sparge_volume, sodium, product->ws_sodium);
+    chloride = Utils::mix(product->wg_amount, product->sparge_volume, chloride, product->ws_chloride);
+    sulfate = Utils::mix(product->wg_amount, product->sparge_volume, sulfate, product->ws_sulfate);
+    total_alkalinity = Utils::mix(product->wg_amount, product->sparge_volume, total_alkalinity, product->ws_total_alkalinity);
+    ph = -log10(((pow(10, -product->mash_ph) * product->wg_amount) + (pow(10, -product->sparge_ph) * product->sparge_volume)) /
+                              (product->wg_amount + product->sparge_volume));
+    bicarbonate = Utils::Bicarbonate(total_alkalinity, ph);
+
+    waterTreated_Show(ui->wx_Select->isChecked());
+    waterAdjust_Show(false);
+
+    ui->wb_phEdit->setValue(ph);
     ui->wb_caEdit->setValue(calcium);
     ui->wb_mgEdit->setValue(magnesium);
     ui->wb_hco3Edit->setValue(bicarbonate);
@@ -477,6 +511,13 @@
     ui->wb_hardnessEdit->setValue(Utils::Hardness(calcium, magnesium));
     ui->wb_raEdit->setValue(Utils::ResidualAlkalinity(total_alkalinity, calcium, magnesium));
 
+    if (chloride > 0)
+        RA = sulfate / chloride;
+    else
+        RA = 10;
+    ui->cur_so4clEdit->setValue(RA);
+    ui->cur_so4clResult->setValue(RA);
+
     ui->wb_caEdit->setStyleSheet((calcium < 40 || calcium > 150) ? "background-color: red":"background-color: green");
     ui->wb_mgEdit->setStyleSheet((magnesium < 5 || magnesium > 40) ? "background-color: red":"background-color: green");
     ui->wb_naEdit->setStyleSheet((sodium > 150) ? "background-color: red":"background-color: green");
@@ -493,36 +534,9 @@
 	ui->wb_clEdit->setStyleSheet("background-color: red");
 	ui->wb_so4Edit->setStyleSheet("background-color: red");
     }
-    ui->wb_phEdit->setStyleSheet((ph < 5.2 || ph > 5.6) ? "background-color: red":"background-color: green");
+    ui->wb_phEdit->setStyleSheet((ph < 5.2 || ph > 5.61) ? "background-color: red":"background-color: green");
     ui->wb_hco3Edit->setStyleSheet((bicarbonate > 250) ? "background-color: red":"background-color: green");
     ui->wb_caco3Edit->setStyleSheet((bicarbonate > 250) ? "background-color: red":"background-color: green");
-
-    /* Calculate Actual Adjustments */
-    product->aa_calcium = calcium - product->wg_calcium;
-    product->aa_magnesium = magnesium - product->wg_magnesium;
-    product->aa_bicarbonate = bicarbonate - wg_bicarbonate;
-    product->aa_sodium = sodium - product->wg_sodium;
-    product->aa_chloride = chloride - product->wg_chloride;
-    product->aa_sulfate = sulfate - product->wg_sulfate;
-    product->aa_hardness = Utils::Hardness(calcium, magnesium) - Utils::Hardness(wg_calcium, wg_magnesium);
-
-    if (product->tw_name != "") {
-	/* Calculate Target Adjustments */
-	product->ta_calcium = product->tw_calcium - product->wg_calcium;
-	product->ta_magnesium = product->tw_magnesium - product->wg_magnesium;
-	product->ta_bicarbonate = Utils::Bicarbonate(product->tw_total_alkalinity, product->tw_ph) - wg_bicarbonate;
-	product->ta_sodium = product->tw_sodium - product->wg_sodium;
-	product->ta_chloride = product->tw_chloride - product->wg_chloride;
-	product->ta_sulfate = product->tw_sulfate - product->wg_sulfate;
-	product->ta_hardness = Utils::Hardness(product->tw_calcium, product->tw_magnesium) - Utils::Hardness(product->wg_calcium, product->wg_magnesium);
-    } else {
-	product->ta_calcium = product->ta_magnesium = product->ta_bicarbonate = product->ta_sodium = 0;
-	product->ta_chloride = product->ta_sulfate = product->ta_hardness = 0;
-    }
-
-    waterTreated_Show(ui->wx_Select->isChecked());
-    waterAdjust_Show(false);
-    calcSparge();
 }
 
 
@@ -639,7 +653,6 @@
     	ui->sp_acidvolEdit->setValue(Acid);
     }
 
-//    ui->sp_phShow->setValue(product->sparge_ph);
     // Finally calculate the estimate preboil pH
     product->est_preboil_ph = -log10(((pow(10, -product->mash_ph) * product->wg_amount) + (pow(10, -product->sparge_ph) * product->brew_sparge_est)) /
 		     	      (product->wg_amount + product->brew_sparge_est));
@@ -690,8 +703,6 @@
     double calcium, magnesium, total_alkalinity, sodium;
     double chloride, sulfate, ph, volume, bicarbonate;
 
-    qDebug() << " wx_Select->isChecked()" << ui->wx_Select->isChecked();
-
     if (val) {
 	ui->wx_Select->setText(tr("Treated Sparge Water"));
 	calcium = product->ws_calcium;
@@ -745,7 +756,7 @@
         ui->wx_clEdit->setStyleSheet("background-color: red");
         ui->wx_so4Edit->setStyleSheet("background-color: red");
     }
-    ui->wx_phEdit->setStyleSheet((ph < 5.2 || ph > 5.6) ? "background-color: red":"background-color: green");
+    ui->wx_phEdit->setStyleSheet((ph < 5.2 || ph > 5.61) ? "background-color: red":"background-color: green");
     ui->wx_hco3Edit->setStyleSheet((bicarbonate > 250) ? "background-color: red":"background-color: green");
     ui->wx_caco3Edit->setStyleSheet((bicarbonate > 250) ? "background-color: red":"background-color: green");
 }

mercurial