diff -r 7c9fb24bcc07 -r a4d5daae8389 src/EditProductTab8.cpp --- 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"); }