diff -r 1d2b4358db4b -r 326c38d3681b main/automation.c --- a/main/automation.c Thu Jul 04 21:48:53 2019 +0200 +++ b/main/automation.c Fri Jul 05 16:11:55 2019 +0200 @@ -74,6 +74,24 @@ +void change_tl(int max) +{ + if (max) { + if (TimeLeft < max) + TimeLeft += 60; + else + TimeLeft = max; + } else { + if (TimeLeft > 60) + TimeLeft -= 60; + else + TimeLeft = 0; + } + log_msg(TAG, "Changed timeleft to %d", TimeLeft / 60); +} + + + /* * Automation init function that only runs once when a * new screen is entered. @@ -300,6 +318,7 @@ Main_Screen = MAIN_AUTO_COOLING_C; return true; //goto startover; } + log_msg(TAG, "Prompt start cooling"); TopMessage((char *)"Start koelen?"); Buttons_Add( 40, 100, 80, 40, (char *)"Start", 0); Buttons_Add(200, 100, 80, 40, (char *)"Stop", 1); @@ -337,6 +356,7 @@ return true; //goto startover; } + log_msg(TAG, "Prompt start whirlpool"); TopMessage((char *)"Start Whirlpool?"); Buttons_Add( 40, 100, 80, 40, (char *)"Start", 0); Buttons_Add(200, 100, 80, 40, (char *)"Stop", 1); @@ -706,21 +726,19 @@ Resume = false; runtime.StageTimeLeft = TimeLeft / 60; updateRuntime = true; - log_msg(TAG, "Mash step %d temperature reached, rest time %d", Main_Screen - MAIN_AUTO_MASH_IN, TimeLeft / 60); + log_msg(TAG, "Mash step %d temperature reached, rest %d minutes", Main_Screen - MAIN_AUTO_MASH_IN, TimeLeft / 60); Buttons_Clear(); Buttons_Add( 0, 120, 60, 40, (char *)"+1m", 0); Buttons_Add(260, 120, 60, 40, (char *)"-1m", 1); Buttons_Show(); } switch (Buttons_Scan()) { - case 0: if (stageTemp < MaxMash) { + case 0: if (stageTemp < MaxMash) change_sp(true); - } break; - case 1: if (stageTemp > MinMash) { + case 1: if (stageTemp > MinMash) change_sp(false); - } break; default: @@ -742,7 +760,7 @@ if (pumpTime >= equipment.PumpCycle) { if (! pumpRest) { pumpRest = true; - log_msg(TAG, "Pump rest"); + log_msg(TAG, "Pump stop"); } } else { if (pumpRest) { @@ -753,19 +771,14 @@ } if (TimeLeft) { switch (Buttons_Scan()) { - case 0: TimeLeft += 60; + case 0: change_tl(21600); runtime.StageTimeLeft = TimeLeft / 60; updateRuntime = true; - log_msg(TAG, "Changed resttime to %d", runtime.StageTimeLeft); break; - case 1: if (TimeLeft < 60) - TimeLeft = 0; - else - TimeLeft -= 60; + case 1: change_tl(0); runtime.StageTimeLeft = TimeLeft / 60; updateRuntime = true; - log_msg(TAG, "Changed resttime to %d", runtime.StageTimeLeft); break; default: break; @@ -773,7 +786,7 @@ } if (TimeLeft == 0) { - runtime.StageTimeLeft = TimeLeft / 60; + runtime.StageTimeLeft = 0; updateRuntime = true; if ((Main_Screen == MAIN_AUTO_MASH_IN) && config.AskAdd) { /* @@ -852,22 +865,16 @@ updateRuntime = true; } } - } else if (MashState == MASH_ADD) { - switch (Buttons_Scan()) { - case 0: Main_Screen = MAIN_AUTO_ABORT; - break; - case 1: Main_Screen++; - break; - default: break; - } - } else if (MashState == MASH_IODINE) { - if (TimeSpent % 45 == 0) { - if (! beeped) { - SoundPlay(SOUND_Warn); - beeped = true; - } - } else { - beeped = false; + } else if (MashState == MASH_ADD || MashState == MASH_IODINE || MashState == MASH_REMOVE) { + if (MashState == MASH_IODINE) { + if (TimeSpent % 45 == 0) { + if (! beeped) { + SoundPlay(SOUND_Warn); + beeped = true; + } + } else { + beeped = false; + } } switch (Buttons_Scan()) { case 0: Main_Screen = MAIN_AUTO_ABORT; @@ -876,17 +883,9 @@ break; default: break; } - if (TimeLeft == 0) { + if (MashState == MASH_IODINE && TimeLeft == 0) { Main_Screen++; } - } else if (MashState == MASH_REMOVE) { - switch (Buttons_Scan()) { - case 0: Main_Screen = MAIN_AUTO_ABORT; - break; - case 1: Main_Screen++; - break; - default: break; - } } else if (MashState == MASH_INFUSE) { switch (Buttons_Scan()) { case 0: Main_Screen = MAIN_AUTO_ABORT; @@ -1006,15 +1005,10 @@ } break; - case 2: TimeLeft += 60; - log_msg(TAG, "Increase boiltime to %d minutes", TimeLeft / 60); + case 2: change_tl(21600); break; - case 3: if (TimeLeft > 60) - TimeLeft -= 60; - else - TimeLeft = 0; - log_msg(TAG, "Decrease boiltime to %d minutes", TimeLeft / 60); + case 3: change_tl(0); break; case 4: if (BoilPower < 100) @@ -1307,19 +1301,17 @@ MLT_info(71, 26, true); TimerShow(TimeLeft, 65, 122); switch (Buttons_Scan()) { - case 0: TimeLeft += 60; + case 0: change_tl(7200); break; - case 1: if (TimeLeft > 60) - TimeLeft -= 60; - else - TimeLeft = 0; + case 1: change_tl(0); break; - case 2: if (xSemaphoreTake(xSemaphoreDriver, 10) == pdTRUE) { + case 2: if (xSemaphoreTake(xSemaphoreDriver, 10) == pdTRUE) { if (driver_state->mlt_pv < equipment.PumpMaxTemp) { if (driver_state->pump_run) driver_state->pump_run = 0; else driver_state->pump_run = 1; + log_msg(TAG, "Pump switched %s", (driver_state->pump_run)?"on":"off"); } else { driver_state->pump_run = 0; }