main/automation.c

changeset 64
326c38d3681b
parent 62
2e90ada37476
child 75
224851e81117
--- 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;
                                     }

mercurial