# HG changeset patch # User Michiel Broek # Date 1587331706 -7200 # Node ID 224851e811170d727d5fbe56c961f4c8bae3565a # Parent cba50f7529d060dbe54a4cbd6754165efadd00ba Version 0.3.9. Added no-boil handling. Fixed cooling temp during cooling to allow 45 degrees setpoint. diff -r cba50f7529d0 -r 224851e81117 CMakeLists.txt --- a/CMakeLists.txt Mon Nov 25 21:01:46 2019 +0100 +++ b/CMakeLists.txt Sun Apr 19 23:28:26 2020 +0200 @@ -2,7 +2,7 @@ # in this exact order for cmake to work correctly cmake_minimum_required(VERSION 3.5) -set(PROJECT_VER "0.3.8") +set(PROJECT_VER "0.3.9") set(PROJECT_NAME "brewboard") include($ENV{IDF_PATH}/tools/cmake/project.cmake) diff -r cba50f7529d0 -r 224851e81117 main/automation.c --- a/main/automation.c Mon Nov 25 21:01:46 2019 +0100 +++ b/main/automation.c Sun Apr 19 23:28:26 2020 +0200 @@ -249,6 +249,13 @@ break; case MAIN_AUTO_TOBOIL: + if (recipe.BoilTime == 0) { + /* no-boil recipe */ + log_msg(TAG, "No-boil, start cooling"); + Main_Screen = MAIN_AUTO_COOLING_H; + return true; + } + if (xSemaphoreTake(xSemaphoreDriver, 10) == pdTRUE) { driver_state->mlt_sp = stageTemp = config.BoilTemperature; driver_state->mlt_mode = MLT_MODE_EXT; @@ -464,23 +471,25 @@ } ShowInteger(2, y, (char *)"Kooktijd", (char *)" min", recipe.BoilTime); ShowFloat(162, y, (char *)"Koel tot", (char *)" C", recipe.CoolTemp, 2); - y += 16; - if (recipe.Additions) { - _fg = TFT_YELLOW; - sprintf(tmp, "%d ", recipe.Additions); - TFT_print(tmp, 2, y); - _fg = TFT_WHITE; - TFT_print((char *)"toevoegingen om", LASTX, y); - _fg = TFT_YELLOW; - for (int i = 1; i <= recipe.Additions; i++) { - sprintf(tmp, " %d", recipe.Addition[i-1].Time); - TFT_print(tmp, LASTX, y); + if (recipe.BoilTime) { + y += 16; + if (recipe.Additions) { + _fg = TFT_YELLOW; + sprintf(tmp, "%d ", recipe.Additions); + TFT_print(tmp, 2, y); + _fg = TFT_WHITE; + TFT_print((char *)"toevoegingen om", LASTX, y); + _fg = TFT_YELLOW; + for (int i = 1; i <= recipe.Additions; i++) { + sprintf(tmp, " %d", recipe.Addition[i-1].Time); + TFT_print(tmp, LASTX, y); + } + _fg = TFT_WHITE; + TFT_print((char *)" minuten", LASTX, y); + } else { + _fg = TFT_WHITE; + TFT_print((char *)"Geen hop toevoegingen.", 2, y); } - _fg = TFT_WHITE; - TFT_print((char *)" minuten", LASTX, y); - } else { - _fg = TFT_WHITE; - TFT_print((char *)"Geen hop toevoegingen.", 2, y); } y += 16; if (recipe.Whirlpool9) { @@ -1124,7 +1133,7 @@ if (driver_state->mlt_sp < 66.0) driver_state->mlt_sp += 1.0; } else if (Main_Screen == MAIN_AUTO_COOLING_C) { - if (driver_state->mlt_sp < 30.0) + if (driver_state->mlt_sp < 45.0) driver_state->mlt_sp += 1.0; } xSemaphoreGive(xSemaphoreDriver); diff -r cba50f7529d0 -r 224851e81117 main/recipes.c --- a/main/recipes.c Mon Nov 25 21:01:46 2019 +0100 +++ b/main/recipes.c Sun Apr 19 23:28:26 2020 +0200 @@ -571,24 +571,26 @@ y += 16; } } - if (recipe.Additions) { - _fg = TFT_YELLOW; - sprintf(tmp, "%d ", recipe.Additions); - TFT_print(tmp, 2, y); - _fg = TFT_WHITE; - TFT_print((char *)"toevoegingen om", LASTX, y); - _fg = TFT_YELLOW; - for (int i = 1; i <= recipe.Additions; i++) { - sprintf(tmp, " %d", recipe.Addition[i-1].Time); - TFT_print(tmp, LASTX, y); - } - _fg = TFT_WHITE; - TFT_print((char *)" minuten", LASTX, y); - } else { - _fg = TFT_WHITE; - TFT_print((char *)"Geen hop toevoegingen.", 2, y); + if (recipe.BoilTime) { + if (recipe.Additions) { + _fg = TFT_YELLOW; + sprintf(tmp, "%d ", recipe.Additions); + TFT_print(tmp, 2, y); + _fg = TFT_WHITE; + TFT_print((char *)"toevoegingen om", LASTX, y); + _fg = TFT_YELLOW; + for (int i = 1; i <= recipe.Additions; i++) { + sprintf(tmp, " %d", recipe.Addition[i-1].Time); + TFT_print(tmp, LASTX, y); + } + _fg = TFT_WHITE; + TFT_print((char *)" minuten", LASTX, y); + } else { + _fg = TFT_WHITE; + TFT_print((char *)"Geen hop toevoegingen.", 2, y); + } + y += 16; } - y += 16; if (recipe.Whirlpool9 || recipe.Whirlpool7 || recipe.Whirlpool6 || recipe.Whirlpool2) { _fg = TFT_WHITE; TFT_print((char *)"Whirlpool ", 2, y); @@ -759,21 +761,23 @@ for (int i = (mashsteps + 1); i < 7; i++) recipe.MashStep[i].Resttime = 0; - EditUint16((char *)"Kook tijd in minuten", &recipe.BoilTime, 3, 480); - EditUint8((char *)"Hop/kruiden toevoegingen", &recipe.Additions, 1, 10); - for (uint8_t i = 0; i < recipe.Additions; i++) { - sprintf(tmp, "Toevoeging %d naam", i+1); - if (strlen(recipe.Addition[i].Name) == 00) { - sprintf(recipe.Addition[i].Name, "Hop %d", (int)i+1); + EditUint16((char *)"Kook tijd in minuten", &recipe.BoilTime, 0, 480); + if (recipe.BoilTime) { + EditUint8((char *)"Hop/kruiden toevoegingen", &recipe.Additions, 1, 10); + for (uint8_t i = 0; i < recipe.Additions; i++) { + sprintf(tmp, "Toevoeging %d naam", i+1); + if (strlen(recipe.Addition[i].Name) == 00) { + sprintf(recipe.Addition[i].Name, "Hop %d", (int)i+1); + } + EditText(tmp, recipe.Addition[i].Name, 40); + sprintf(tmp, "Toevoeging %d tijd", i+1); + if (i == 0) { + EditUint16(tmp, &recipe.Addition[i].Time, 0, recipe.BoilTime); + } else { + EditUint16(tmp, &recipe.Addition[i].Time, 0, recipe.Addition[i-1].Time - 1); + } + recipe.Addition[i].Type = ADDITION_HOP; } - EditText(tmp, recipe.Addition[i].Name, 40); - sprintf(tmp, "Toevoeging %d tijd", i+1); - if (i == 0) { - EditUint16(tmp, &recipe.Addition[i].Time, 0, recipe.BoilTime); - } else { - EditUint16(tmp, &recipe.Addition[i].Time, 0, recipe.Addition[i-1].Time - 1); - } - recipe.Addition[i].Type = ADDITION_HOP; } EditFloat((char *)"Koel temperatuur", &recipe.CoolTemp, 10, 45, 2);