# HG changeset patch # User Michiel Broek # Date 1557757588 -7200 # Node ID 1365b5e471309f6dd3a44b09a7b4fa7fc4515812 # Parent 023ca640b5aff515f710c6499e761da5437b7085 Added color method written by Hans Halberstadt. diff -r 023ca640b5af -r 1365b5e47130 www/js/global.js --- a/www/js/global.js Mon May 13 12:50:24 2019 +0200 +++ b/www/js/global.js Mon May 13 16:26:28 2019 +0200 @@ -294,9 +294,10 @@ var IBUmethodAdapter = new $.jqx.dataAdapter(IBUmethodSource); var ColorMethodData = [ - { id: 0, en: 'Morey', nl: 'Morey' }, - { id: 1, en: 'Mosher', nl: 'Mosher' }, - { id: 2, en: 'Daniels', nl: 'Daniels' } + { id: 0, en: 'Morey', nl: 'Morey' }, + { id: 1, en: 'Mosher', nl: 'Mosher' }, + { id: 2, en: 'Daniels', nl: 'Daniels' }, + { id: 3, en: 'Halberstadt', nl: 'Halberstadt' } ]; var ColorMethodSource = { localdata: ColorMethodData, @@ -735,6 +736,36 @@ /* + * Return incremented color by the boil and yeast. + * https://www.hobbybrouwen.nl/forum/index.php/topic,19020.msg281132.html#msg281132 + */ +function get_kt(ebc) { + + var kt = 1; + if (ebc < 3) + kt = 3.5; + else if (ebc < 6) + kt = 3; + else if (ebc < 8) + kt = 2.75; + else if (ebc < 10) + kt = 2.5; + else if (ebc < 20) + kt = 1.8; + else if (ebc < 30) + kt = 1.6; + else if (ebc < 60) + kt = 1.3; + else if (ebc < 100) + kt = 1.2; + else if (ebc < 300) + kt = 1.1; + return kt; +} + + + +/* * Alcohol By Volume */ function abvol(og, fg) { @@ -768,7 +799,7 @@ /* - * Kleurwerking naar SRM + * Kleurwerking naar SRM. Niet voor Halberstadt. */ function kw_to_srm(colormethod, c) { @@ -778,6 +809,8 @@ return 0.3 * c + 4.7; if (colormethod == 2) // Daniels return 0.2 * c + 8.4; + if (colormethod == 3) // Halberstadt + return 0; } diff -r 023ca640b5af -r 1365b5e47130 www/js/prod_edit.js --- a/www/js/prod_edit.js Mon May 13 12:50:24 2019 +0200 +++ b/www/js/prod_edit.js Mon May 13 16:26:28 2019 +0200 @@ -122,6 +122,7 @@ $("#ok_supplies").html(""); } + /* * All calculations that depend on changes in the fermentables, * volumes and equipments. @@ -140,9 +141,12 @@ var addedmass = 0; // Added mass after boil var mvol = 0; // mash volume var colort = 0; // Colors srm * vol totals + var colorh = 0; // Colors ebc * vol * kt var my_100 = false; var mashtime = 0; // Total mash time var mashtemp = 0; // Average mash temperature + var bv = 0.925; // Bierverlies rendement + var sr = 0.95; // Mash en spoel rendement if ((rows = $('#mashGrid').jqxGrid('getrows'))) { for (var i = 0; i < rows.length; i++) { @@ -189,6 +193,7 @@ vol += (x * sugardensity + (1 - x) * 1) * row.f_amount; } colort += row.f_amount * ebc_to_srm(row.f_color); + colorh += row.f_amount * row.f_color * get_kt(row.f_color); // Check supplies. if ((((dataRecord.inventory_reduced <= 2) && (row.f_added <= 1)) || // Mash or boil ((dataRecord.inventory_reduced <= 3) && (row.f_added == 2)) || // Primary @@ -255,8 +260,12 @@ dataRecord.brew_fermenter_sg = Math.round(plato_to_sg(pt) * 10000) / 10000; $("#brew_fermenter_sg").val(dataRecord.brew_fermenter_sg); // color - var cw = colort / (aboil_volume + top) * 8.34436; - dataRecord.brew_fermenter_color = kw_to_ebc(dataRecord.color_method, cw); + if (dataRecord.color_method == 3) { + dataRecord.brew_fermenter_color = Math.round((4.46 * bv * sr) / (aboil_volume + top) * colorh); + } else { + var cw = colort / (aboil_volume + top) * 8.34436; + dataRecord.brew_fermenter_color = kw_to_ebc(dataRecord.color_method, cw); + } $("#brew_fermenter_color").val(dataRecord.brew_fermenter_color); var scolor = ebc_to_color(dataRecord.brew_fermenter_color); $("#bcolorf").show(); @@ -271,8 +280,12 @@ } // Color of the wort - var cw = colort / parseFloat(dataRecord.batch_size) * 8.34436; - var color = kw_to_ebc(dataRecord.color_method, cw); + if (dataRecord.color_method == 3) { // Hans Halberstadt + var color = Math.round((4.46 * bv * sr) / parseFloat(dataRecord.batch_size) * colorh); + } else { + var cw = colort / parseFloat(dataRecord.batch_size) * 8.34436; + var color = kw_to_ebc(dataRecord.color_method, cw); + } dataRecord.est_color = color; $('#est_color').val(color); $('#est_color2').val(color); diff -r 023ca640b5af -r 1365b5e47130 www/js/rec_edit.js --- a/www/js/rec_edit.js Mon May 13 12:50:24 2019 +0200 +++ b/www/js/rec_edit.js Mon May 13 16:26:28 2019 +0200 @@ -169,9 +169,12 @@ var addedmass = 0; // Added mass after boil var mvol = 0; // mash volume var colort = 0; // Colors srm * vol totals + var colorh = 0; // Colors ebc * vol * kt var my_100 = false; var mashtime = 0; // Total mash time var mashtemp = 0; // Average mash temperature + var bv = 0.925; // Bierverlies rendement + var sr = 0.95; // Mash en spoel rendement if ((rows = $('#mashGrid').jqxGrid('getrows'))) { for (var i = 0; i < rows.length; i++) { @@ -218,6 +221,7 @@ vol += (x * sugardensity + (1 - x) * 1) * row.f_amount; } colort += row.f_amount * ebc_to_srm(row.f_color); + colorh += row.f_amount * row.f_color * get_kt(row.f_color); } to_100 = my_100; if (to_100) { @@ -235,8 +239,12 @@ preboil_sg = estimate_sg(sugarsm, parseFloat(dataRecord.boil_size)); // Color of the wort - var cw = colort / parseFloat(dataRecord.batch_size) * 8.34436; - var color = kw_to_ebc(dataRecord.color_method, cw); + if (dataRecord.color_method == 3) { // Hans Halberstadt + var color = Math.round((4.46 * bv * sr) / parseFloat(dataRecord.batch_size) * colorh); + } else { + var cw = colort / parseFloat(dataRecord.batch_size) * 8.34436; + var color = kw_to_ebc(dataRecord.color_method, cw); + } dataRecord.est_color = color; $('#est_color').val(color); $('#est_color2').val(color);