src/EditRecipeTab7.cpp

changeset 133
08635b028dcf
parent 131
0115b97e8c39
child 134
5099df8ba6c6
equal deleted inserted replaced
132:9ede9c75cb54 133:08635b028dcf
18 */ 18 */
19 19
20 20
21 void EditRecipe::refreshWaters() 21 void EditRecipe::refreshWaters()
22 { 22 {
23 // recipe->w1_name
24 ui->w1_volEdit->setValue(recipe->w1_amount);
25 ui->w1_caEdit->setValue(recipe->w1_calcium);
26 ui->w1_mgEdit->setValue(recipe->w1_magnesium);
27 ui->w1_hco3Edit->setValue(recipe->w1_total_alkalinity * 1.22);
28 ui->w1_caco3Edit->setValue(recipe->w1_total_alkalinity);
29 ui->w1_naEdit->setValue(recipe->w1_sodium);
30 ui->w1_clEdit->setValue(recipe->w1_chloride);
31 ui->w1_so4Edit->setValue(recipe->w1_sulfate);
32 ui->w1_phEdit->setValue(recipe->w1_ph);
33
34 // recipe->w2_name
35 ui->w2_volEdit->setValue(recipe->w2_amount);
36 ui->w2_caEdit->setValue(recipe->w2_calcium);
37 ui->w2_mgEdit->setValue(recipe->w2_magnesium);
38 ui->w2_hco3Edit->setValue(recipe->w2_total_alkalinity * 1.22);
39 ui->w2_caco3Edit->setValue(recipe->w2_total_alkalinity);
40 ui->w2_naEdit->setValue(recipe->w2_sodium);
41 ui->w2_clEdit->setValue(recipe->w2_chloride);
42 ui->w2_so4Edit->setValue(recipe->w2_sulfate);
43 ui->w2_phEdit->setValue(recipe->w2_ph);
44
45 ui->wg_volEdit->setValue(recipe->wg_amount);
46 ui->wg_caEdit->setValue(recipe->wg_calcium);
47 ui->wg_mgEdit->setValue(recipe->wg_magnesium);
48 ui->wg_hco3Edit->setValue(recipe->wg_total_alkalinity * 1.22);
49 ui->wg_caco3Edit->setValue(recipe->wg_total_alkalinity);
50 ui->wg_naEdit->setValue(recipe->wg_sodium);
51 ui->wg_clEdit->setValue(recipe->wg_chloride);
52 ui->wg_so4Edit->setValue(recipe->wg_sulfate);
53 ui->wg_phEdit->setValue(recipe->wg_ph);
54
55 ui->wb_caEdit->setValue(recipe->wb_calcium);
56 ui->wb_mgEdit->setValue(recipe->wb_magnesium);
57 ui->wb_hco3Edit->setValue(recipe->wb_total_alkalinity * 1.22);
58 ui->wb_caco3Edit->setValue(recipe->wb_total_alkalinity);
59 ui->wb_naEdit->setValue(recipe->wb_sodium);
60 ui->wb_clEdit->setValue(recipe->wb_chloride);
61 ui->wb_so4Edit->setValue(recipe->wb_sulfate);
62 ui->wb_phEdit->setValue(recipe->wb_ph);
63
64 ui->sp_volEdit->setValue(recipe->sparge_volume);
65 ui->sp_tempEdit->setValue(recipe->sparge_temp);
66 ui->sp_phEdit->setValue(recipe->sparge_ph);
67 // sparge_source
68 // sparge_acid_type
69 ui->sp_acidpercEdit->setValue(recipe->sparge_acid_perc);
70 ui->sp_acidvolEdit->setValue(recipe->sparge_acid_amount);
71 23
72 // calc_acid 24 // calc_acid
73 ui->mw_phEdit->setValue(recipe->mash_ph); 25 ui->mw_phEdit->setValue(recipe->mash_ph);
74 // mash_name 26 // mash_name
75 //ui->mw_acidpercEdit->setValue(recipe-> 27 //ui->mw_acidpercEdit->setValue(recipe->
76 28
77 } 29 }
78 30
31
32 double EditRecipe::mix(double v1, double v2, double c1, double c2)
33 {
34 if ((v1 + v2) > 0) {
35 return ((v1 * c1) + (v2 * c2)) / (v1 + v2);
36 }
37 return 0;
38 }
39
40
41 void EditRecipe::calcWater()
42 {
43 double liters = 0;
44 double calcium = 0;
45 double magnesium = 0;
46 double sodium = 0;
47 double total_alkalinity = 0;
48 double bicarbonate = 0;
49 double chloride = 0;
50 double sulfate = 0;
51 double ph = 0;
52
53 qDebug() << "calcWater";
54
55 /*
56 * If there is a dilute water source, mix the waters.
57 */
58 if (recipe->w2_name != "") {
59 liters = recipe->w1_amount + recipe->w2_amount;
60 calcium = mix(recipe->w1_amount, recipe->w2_amount, recipe->w1_calcium, recipe->w2_calcium);
61 magnesium = mix(recipe->w1_amount, recipe->w2_amount, recipe->w1_magnesium, recipe->w2_magnesium);
62 sodium = mix(recipe->w1_amount, recipe->w2_amount, recipe->w1_sodium, recipe->w2_sodium);
63 chloride = mix(recipe->w1_amount, recipe->w2_amount, recipe->w1_chloride, recipe->w2_chloride);
64 sulfate = mix(recipe->w1_amount, recipe->w2_amount, recipe->w1_sulfate, recipe->w2_sulfate);
65 total_alkalinity = mix(recipe->w1_amount, recipe->w2_amount, recipe->w1_total_alkalinity, recipe->w2_total_alkalinity);
66 ph = -log10(((pow(10, -recipe->w1_ph) * recipe->w1_amount) + (pow(10, -recipe->w2_ph) * recipe->w2_amount)) / liters);
67 } else {
68 liters = recipe->w1_amount;
69 calcium = recipe->w1_calcium;
70 magnesium = recipe->w1_magnesium;
71 sodium = recipe->w1_sodium;
72 chloride = recipe->w1_chloride;
73 sulfate = recipe->w1_sulfate;
74 total_alkalinity = recipe->w1_total_alkalinity;
75 ph = recipe->w1_ph;
76 }
77
78 recipe->wg_amount = liters;
79 recipe->wg_calcium = round(calcium * 10.0) / 10.0;
80 recipe->wg_magnesium = round(magnesium * 10.0) / 10.0;
81 recipe->wg_sodium = round(sodium * 10.0) / 10.0;
82 recipe->wg_chloride = round(chloride * 10.0) / 10.0;
83 recipe->wg_sulfate = round(sulfate * 10.0) / 10.0;
84 recipe->wg_total_alkalinity = round(total_alkalinity * 10.0) / 10.0;
85
86 ui->wg_volEdit->setValue(liters);
87 ui->wg_caEdit->setValue(calcium);
88 ui->wg_mgEdit->setValue(magnesium);
89 ui->wg_hco3Edit->setValue(total_alkalinity * 1.22);
90 ui->wg_caco3Edit->setValue(total_alkalinity);
91 ui->wg_naEdit->setValue(sodium);
92 ui->wg_clEdit->setValue(chloride);
93 ui->wg_so4Edit->setValue(sulfate);
94 ui->wg_phEdit->setValue(ph);
95 bicarbonate = total_alkalinity * 1.22;
96
97 /* Save mixed water ions for later */
98 double wg_calcium = calcium;
99 double wg_sodium = sodium;
100 double wg_total_alkalinity = total_alkalinity;
101 double wg_chloride = chloride;
102 double wg_sulfate = sulfate;
103 double wg_bicarbonate = bicarbonate;
104
105 }
106
107
108 void EditRecipe::on_w2_vol_changed(double val)
109 {
110 }
111
112
113 void EditRecipe::on_cacl2_changed(double val)
114 {
115 set_brewing_salt("CaCl2", val);
116 }
117
118
119 void EditRecipe::on_caso4_changed(double val)
120 {
121 set_brewing_salt("CaSO4", val);
122 }
123
124
125 void EditRecipe::on_mgso4_changed(double val)
126 {
127 set_brewing_salt("MgSO4", val);
128 }
129
130
131 void EditRecipe::on_nacl_changed(double val)
132 {
133 set_brewing_salt("NaCl", val);
134 }
135
136
137 void EditRecipe::on_mgcl2_changed(double val)
138 {
139 set_brewing_salt("MgCl2", val);
140 }
141
142
143 void EditRecipe::on_nahco3_changed(double val)
144 {
145 set_brewing_salt("NaHCO3", val);
146 }
147
148
149 void EditRecipe::on_caco3_changed(double val)
150 {
151 set_brewing_salt("CaCO3", val);
152 }
153
154
155

mercurial